Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Listenfeld mit Mehrfachauswahl

Begonnen von Mykis, Mai 08, 2016, 20:38:56

⏪ vorheriges - nächstes ⏩

Mykis

Hallo,

kann ich in einem Listenfeld mit Mehrfachauswahl die jeweilig angeklickten Datensätze in der hinter diesem Listenfeld liegenden Abfrage im Feld "Auswahl" mit "-1" also True kennzeichnen?  Irgenwie kriege ich das nicht hin. (z.B. ME.[Basis_Listenauswahl].[Auswahl] = "-1") Es kommen ständig Fehlermeldungen.

Beste Grüße
Frank

DF6GL

Hallo,


versteh ich nicht...  ein Listenfeld ist nicht editierbar. Und warum willst Du das Feld in der Abfrage "kennzeichnen"?
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Beaker s.a.

Hallo Frank,
Zugriff auf die ausgewählten Listeneinträge erhältst Du über die
Eigenschaft .ItemsSelected des Listenfeldes.
hth
gruss von ekkehard aus dem sonnigen London
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Mykis

#3
Hallo Franz, hallo Ekkehard,

da hab ich mich wieder laienhaft ausgedrückt.
In meinem Listenfeld kann ich einen angeklickten Wert mit folgenden Code mit -1 kennzeichnen: Sub einzelwertauswahl_Click(listctrlname As String)
Dim i As Long
Dim rs_auswahltab As DAO.Recordset

   Set rs_auswahltab = MykIS_Database.OpenRecordset(auswahltab, dbOpenDynaset)
   For i = 0 To Me.Controls(listctrlname).ListCount - 1
      If Me.Controls(listctrlname).Selected(i) = True Then
         If Me.Controls(listctrlname).Column(0, i) <> Me!wuchsstelle_id Then
            rs_auswahltab.FindFirst "id = '" & Me.Controls(listctrlname).Column(0, i) & "'"
            If rs_auswahltab.NoMatch = False Then
               rs_auswahltab.Edit
               rs_auswahltab.update
               Exit For
            End If
         End If
      End If
   Next
   rs_auswahltab.Close

   qListe.Requery
   zListe.Requery

End Sub


Ich möchte aber mehrere Begriffe des Listenfeldes anklicken und dann diesen Code ausführen. Es wird aber nur der erste ausgewählte Begriff des Listenfeldes verarbeitet.
Bei VBA-Programmierung bin ich eher unbeholfen und der Code stammt nicht von mir.

Frank

Mykis

Hallo,

durch "learning by doing" habe ich jetzt erst mal eine Lösung gefunden, die für mich akzeptabel ist. Ich löse die Ereignisprozedur direkt im Listenfeld durch einfachen Klick aus. Das geht schnell genug. :)
@Franz: die Kennzeichnung mit -1 dient der Pflege von Referenzlisten, wo gleiche Begriffe mit unterschiedlicher Schreibweise in einer weiteren Prozedur vereinigt werden.

Beste Grüße
Frank

Beaker s.a.

Hallo Frank,
Wie gesagt, schleife durch die .ItemsSelected statt durch die ganze
Liste, und schreibe auch zwischen diese beiden Zeilen
rs_auswahltab.Edit
rs_auswahltab.update

eine Zeile mit der gewünschten Änderung. Ansonsten machen die
keinen Sinn.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)