Listenelement Markieren/Entmarkieren

Hallo,
ich hoffe jemand von Euch kann mir helfen.
Ich habe das Problem, dass ich Listenelemente in einem Formular verwenden möchte für die Suche.
Ich baue eine Adressdatei wo Kontakte und Firmen festgehalten werden können und deren Beziehungen in MS Access 2000.
Kontakte haben Funktionen und Firmen Branchen als Kategorisierung. Im finalen Ausbau möchte ich dann eine Suche anbieten, die über beide Kategorisierungen (Listen) ein Ergebnis filtert.

Nun baue ich erst das Formular (das query - an das denk ich noch gar nicht ;(…
Hier habe ich bereits eine Frage. Ich möchte, dass der User durch Klick mehrere Listenelemente z.B. Funktionen auswählen kann. (durch Mehrfachauswahl).

Um eine Auswahl wieder rückgängig zu machen möchte ich dem Benutzer anbieten, dass durch Klicken auf ein markiertes Listenelement das ganze wieder entmarkiert wird.

D.h. ich müßte prüfen „bin ich Element markiert wenn ja entmarkiere mich sonst markiere mich“

Ich weiss hier aber nicht den VBA Code…
Sollte jemand auch gleich eine Idee wegen dem späteren Query würde ich mich sehr freuen.
Danke
Nicole

Hallo Nicole,

ich hoffe jemand von Euch kann mir helfen.

ich hoffe auch :smile:

Ich habe das Problem, dass ich Listenelemente in einem
Formular verwenden möchte für die Suche.

das ist kein Problem, nimm einfach die Pulldownfelder…

Ich baue eine Adressdatei wo Kontakte und Firmen festgehalten
werden können und deren Beziehungen in MS Access 2000.

Kontakte als Adressen, oder Kontakte als Termine?

Kontakte haben Funktionen und Firmen Branchen als
Kategorisierung. Im finalen Ausbau möchte ich dann eine Suche
anbieten, die über beide Kategorisierungen (Listen) ein
Ergebnis filtert.

Angenommen die Pulldownfelder heißen: WAHL_Branche und WAHL_Funktion
beim Ereignis = „bei Fokusverlust“ eines jeden Feldes den folgenden Code eingeben:

Me.Filter = „[BRANCHE] = '“ & Me.WAHL_Branche & „’ and [Funktion]= '“ & Me.WAHL_Funktion & „’“
Me.FilterON = true
Me.requery

Natürlich kann man das Ganze noch verfeinern, aber so hast du erst mal die Basis in der ein Filter erstellt wird und dieser eingeschaltet dann genutzt werden kann.
Sollte deine Datenbasis für das Formular eine Abfrage sein, könnte man auch darüber eine Filterfunktion bewerkstelligen.

Nun baue ich erst das Formular (das query - an das denk ich
noch gar nicht ;(…
Hier habe ich bereits eine Frage. Ich möchte, dass der User
durch Klick mehrere Listenelemente z.B. Funktionen auswählen
kann. (durch Mehrfachauswahl).

dazu wurde schon reichlich geschrieben, ich muß es hier nicht nochmal wiederholen:
http://www.google.de/search?hl=de&q=mehrfachauswahl+…

Um eine Auswahl wieder rückgängig zu machen möchte ich dem
Benutzer anbieten, dass durch Klicken auf ein markiertes
Listenelement das ganze wieder entmarkiert wird.
D.h. ich müßte prüfen „bin ich Element markiert wenn ja
entmarkiere mich sonst markiere mich“

nein nicht nötig, diese Fuktionalität ist breits im Listenfeld drin.

Grüße aus Essen
Wolfgang
(Netwolf)

Hallo Wolfgang,
hm, ganz geholfen hat es mir nicht…
Ich verwende Listen und kein Kombinationsfeld. Mehrfachauswahl kenne ich … Frage ist nur, wie kann User das ausgewählte … bei mir funktioniert das nicht. Wie finde ich das im Standard? Wenn ich einmal eines ausgewählt habe, kann ich es nicht mehr entmarkieren…bzw. markiere ich drei kann ich zwei entmarkieren aber das letzte nicht mehr…

Den Filter kann ich nicht so einfach setzen, da ich ja von einem Listenfeld mit Mehrfachauswahl komme.
ich habe eine Tabelle VOR_ADRESSEN diese beinahltet Kontaktadressen (Privat). Eine VOR_FIRMA die beinhaltet Firmenadressen und eine VOR_BEZIEHUNG hält Beziehung zw. Kontakt und Unternehmen…mehr als ein Kontakt pro Firma und umgekehrt möglich.

In Vor_beziehung wird die Funktion festgehalten (nach der kann man suchen) und in VOR_BRANCHE die FirmenID plus die Branche für Firma.
Suchen möcht ich aber nach Funktion und möglicherweise nach Firmabranche eingeschränkt.
Z.B. Funktion: Abteilungleiter, Vorstand (VOR_BEZIEHUNG)
Z.B. Branche: Entsorgung, Banken (VOR_BRANCHE)
Filterung nach Funktion ergibt alle Abteilungsleiter und Vorstände…
nach Branche zusätzlich ergibt Abteilungleiter und Vorstände von Firmen mit Branche Entsorgung und Banken…
Das ist sehr schwierig oder?
Grüße Nicole
aus Linz Österreich

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Nicole,

du mußt das von mir Geschriebene nicht immer nochmal mit aufführen.

Wenn ich einmal eines ausgewählt habe, kann ich es
nicht mehr entmarkieren…bzw. markiere ich drei kann ich zwei
entmarkieren aber das letzte nicht mehr…

richtig, das ist bei Listenfeldern so. Wenn du sie aktiviert hast, ist ein Element immer ausgewählt. Mit der Esc-Taste könntest du aus dem Listenfeld wieder zurückspringen, ohne das was ausgewählt ist.

Den Filter kann ich nicht so einfach setzen, da ich ja von
einem Listenfeld mit Mehrfachauswahl komme.

logisch, es war ja auch nur ein Beispiel, der Filter muß natürlich von dir per VBA zusammengesetzt werden, in Abhängigkeit der ausgewählten Punkte.

Das ist sehr schwierig oder?

ich habe schon verstanden, was du machen willst. Allerdings solltest du gut VBA programmieren können, da der Code für deine Mehrfachauswahl nicht so einfach ist.

hier ein kurzes Codeschnipsel. Hier werden alle ausgewählten Einträge der Listbox QListe im Testfenster ausgegeben.

Dim i as integer
For i = 0 To Me!QListe.ListCount - 1
If Me!QListe.Selected(i) Then
debug.print Me!QListe.ItemData(i)
End If
Next i

Lade dir mal die Knowhow-DB runter, da sind auch Beispiele drin.
http://www.freeaccess.de/downloads.asp

Grüße aus Essen
Wolfgang
(Netwolf)