Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: trebuh am September 13, 2015, 15:43:20

Titel: Listenfeld Mehrfachauswahl speichern?
Beitrag von: trebuh am September 13, 2015, 15:43:20
Hallo,

wie kann ich die Mehrfachauswahl in einem Listenfeld zwischenspeichern (Variable), damit wenn das Formular mit dem besagten Listenfeld wieder aufgerufen wird, die Mehrfachauswahl wieder angezeigt wird?

Diese Listenfeld dient zur Auswahl (Filter) von Daten für einen Bericht. Somit wäre beim Aufruf des Listenfeldes sofort ersichtlich, das ein Filter gesetzt wurde.
Habe was über Me!MeinListenfeld.selected gelesen, aber wie  gehe ich da bei Mehrfachauswahl vor?

Gruß Hubert
Titel: Re: Listenfeld Mehrfachauswahl speichern?
Beitrag von: DF6GL am September 13, 2015, 18:33:01
Hallo,

z. B. :
in einem Standardmodul:

Public a() as Long

im Formular als Ereignisprozeduren für zwei Schaltflächen (ohne Errorhandling):


Private Sub btnReselect_Click()
Dim i As Long

For i = 0 To Me!lstListe1.ListCount
Me!lstListe1.Selected(i) = False
Next

For i = LBound(a) To UBound(a)
Me!lstListe1.Selected(a(i)) = True
Next

End Sub




 

Private Sub btnSave_Click()
Dim itm, i As Long
ReDim a(0)
For Each itm In Me!lstListe1.ItemsSelected
ReDim Preserve a(i)
a(i) = itm
i = i + 1
Next
End Sub

Titel: Re: Listenfeld Mehrfachauswahl speichern?
Beitrag von: trebuh am September 13, 2015, 19:37:55
Hallo Franz,

Danke für den Code. :)

Dachte schon, das ich um das anlegen einer extra Tabelle -  wo die Daten gespeichert werden - nicht drumherum komme.

Gruß Hubert
Titel: Re: Listenfeld Mehrfachauswahl speichern?
Beitrag von: MaggieMay am September 13, 2015, 19:47:32
Hi,

nun, wenn du die Auswahl auch beim nächsten Start der DB noch sehen willst, wirst du sie tatsächlich in einer Tabelle speichern müssen.
Titel: Re: Listenfeld Mehrfachauswahl speichern?
Beitrag von: trebuh am September 13, 2015, 22:00:27
Hallo MaggieMay,

nein, das will ich nicht. Zumindest bis jetzt nicht.  ;)
Gruß
Titel: Re: Listenfeld Mehrfachauswahl speichern?
Beitrag von: trebuh am September 13, 2015, 23:54:26
Jetzt hät ich doch noch eine Frage:

Wie kann ich ein Arrey auf "Null" prüfen?
Der Code von Franz läuft einwandfrei. Problem ist jetzt nur noch, dass wenn keine Auswahl im Listenfeld stattgefunden hat, und ich klicke den Button Private Sub btnReselect_Click()
Dim i As Long

For i = 0 To Me!lstListe1.ListCount
Me!lstListe1.Selected(i) = False
Next

For i = LBound(a) To UBound(a)
Me!lstListe1.Selected(a(i)) = True
Next

End Sub


dann bekomme ich eine Fehlermeldung.
"Error 9. Index auserhalb des Bereichs".

Die Variable a ist ja sozusagen leer (oder Null). Wie kann ich das jetzt abfangen? (Mal vom abfangen der Error-Nummer abgesehen)

Gruß Hubert
Titel: Re: Listenfeld Mehrfachauswahl speichern?
Beitrag von: MaggieMay am September 14, 2015, 00:29:19
Hi,

was du dabei wohl bedenken solltest: ohne btnSave_Click gibt es keinen Array "a".

Mit der (nicht) vorhandenen Auswahl im Listenfeld hat das eher weniger zu tun.

Titel: Re: Listenfeld Mehrfachauswahl speichern?
Beitrag von: trebuh am September 14, 2015, 08:33:14
Hallo MaggieMay,

Danke für den Hinweis. Ich seh schon, ich habe noch viel zu lernen. :D

Habe jetzt eine zusätzliche boolean-Variable eingebaut, wo ich gespeichert "ja" bzw. "Nein" abfragen kann.

Gruß
Hubert