Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Teufelchen1985 am Juli 09, 2013, 11:57:46

Titel: Mehrfachnennung Listenfeld in Abfrage verwenden
Beitrag von: Teufelchen1985 am Juli 09, 2013, 11:57:46
Hallo zusammen.

Ich habe ein Listenfeld, in dem Mehrfachnennung möglich ist, d.h. ich kann mit "Strg" mehrere Möglichkeiten auswählen. Wie kann ich dieses nun in einer Abfrage verwenden?

Ich hatte im Internet gefunden, wie man diese Mehrfachnennung an ein anderes Feld weitergibt. Jedoch werden die Einträge durchzunummerieren. Wie kann ich es erzeugen, dass dort die gleiche Ausgabe, wie im Listenfeld erscheint. Folgenden Code benutze ich im Moment:

Private Sub Text12_AfterUpdate()

    Dim var As Variant

    Dim str

    For Each var In Me.Text12.ItemsSelected

        str = str & ";" & var

    Next var

    Me!Text39 = Mid(str, 2)

End Sub


Lieben Dank
Titel: Re: Mehrfachnennung Listenfeld in Abfrage verwenden
Beitrag von: DF6GL am Juli 09, 2013, 12:08:15
Hallo,

und wie lautet die Abfrage/SQL-String (Datensatzherkunft) für das Listenfeld?
Titel: Re: Mehrfachnennung Listenfeld in Abfrage verwenden
Beitrag von: Teufelchen1985 am Juli 09, 2013, 14:05:34
Datensatzherkunft Listenfeld:

SELECT DISTINCT [70_A-open topics].Responsible FROM [70_A-open topics] WHERE (((IIf([Forms]![00_f_Menue].[Region]="ALL","ALL",[Region]))=[Forms]![00_F_Menue].[Region])) ORDER BY [70_A-open topics].Responsible; UNION SELECT "ALL"  FROM [70_A-open topics];
Titel: Re: Mehrfachnennung Listenfeld in Abfrage verwenden
Beitrag von: DF6GL am Juli 09, 2013, 15:15:13
 



Hallo,

was auch immer diese Where-Condition  für Auswirkungen haben soll, so sollte es vermutlich gehen:


Sub btnIrgendein Button_Click()



    Dim var, str as String

    For Each var In Me!lstListe1.ItemsSelected

        str = str & ",'" & var & "'"

    Next var

    Me.Recordsource  = "Select * from  [70_A-open topics]  Where Responsible in (" &  Mid(str, 2) & ")"


End Sub
Titel: Re: Mehrfachnennung Listenfeld in Abfrage verwenden
Beitrag von: Teufelchen1985 am Juli 10, 2013, 15:39:07
habe das jetzt mal ausprobiert. habe nur Recordsource vertauscht mit "Text39". Um zu schauen, was genau passiert. Nun gibt er mir in Text39 folgendes aus:

Select * from  [70_A-open topics]  Where Responsible in ('2','4')

d.h. da steht wieder diese "automatische" Nummerierung und eben nicht der Inhalt des Listenfeldes...  :-\
Titel: Re: Mehrfachnennung Listenfeld in Abfrage verwenden
Beitrag von: DF6GL am Juli 10, 2013, 17:49:33
Hallo,

Ist "Responsible" ein Nachschlagefeld (Kombifeld) in der TABELLE

Wenn so, dann wirf dieses Nachschlagefeld aus der Tabelle  in die Tonne (d. h. ändere es zu einem Textfeld)
Titel: Re: Mehrfachnennung Listenfeld in Abfrage verwenden
Beitrag von: daolix am Juli 10, 2013, 18:03:49
Weil .ItemsSelected nur den Index zurück gibt

...
str = str & ",'" Me.lstListe1.ItemData(var) & "'"
...

Titel: Re: Mehrfachnennung Listenfeld in Abfrage verwenden
Beitrag von: DF6GL am Juli 10, 2013, 20:14:44
Hallo,

tja, da hast Du wohl recht...   :-[