Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Mehrfachauswahl in Listenfeld als Abfrageparameter möglich?
zurück: Datumsfeld in einer Abfrage Formatieren weiter: Abfrage Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Bitte Status wählen ! Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
esprene
Neuling


Verfasst am:
26. Aug 2005, 09:20
Rufname:

Mehrfachauswahl in Listenfeld als Abfrageparameter möglich? - Mehrfachauswahl in Listenfeld als Abfrageparameter möglich?

Nach oben
       

Hallo,

ich habe ein Listenfeld in dem ich per Mehrfachauswahl Werte selektiere.

Mein Problem ist, dass ich die Mehrfachauswahl als Parameter für eine
bestehende Abfrage nutzen müsste (möchte).

Gibt es hier eine Möglichkeit?

Normalerweise werte ich Mehrfachauswahlen in Listenfeldern per VBA wie folgt aus:
Code:
    For Each x In Me![Listenfeld].ItemsSelected
        '...
    Next x
Der VBA-Code bringt mich aber nicht weiter, denn ich brauche die
selektierten Werte als Parameter für eine relativ komplexe Abfrage.
Nachtrag: esprene am 26. Aug 2005 um 10:19 hat folgendes geschrieben:
Hallo,

Folgenden Code verwende ich:
Code:
    Dim strSQL As String
    Dim db As DAO.Database
    Dim tb As DAO.Recordset
   
    Set db = CurrentDb
    strSQL = "SELECT * " & _
               "FROM MPADMIN_CHARGEN " & _
              "WHERE CHARGE IN " & _
                      "(fcDatenausListe([Forms]![Frm_Auswahl]![Lst_Chargen]))"
    Set tb = db.OpenRecordset(strSQL)
Funktion ist die hier im Forum beschriebene, die ich unverändert übernommen habe:
Code:
Public Function fcDatenausListe(Ctl0 As Control)
    Dim Itm As Long, Tmp As String, Wert As String
 
    Tmp = ""
    For Itm = 0 To Ctl0.ListCount - 1
        If Ctl0.Selected(Itm) Then
            Wert = Ctl0.ItemData(Itm)
            Tmp = Tmp & ",'" & Wert & "'"
        End If
    Next Itm
    If Tmp <> "" Then fcDatenausListe = Right(Tmp, Len(Tmp) - 1)
End Function
Beim Ausführen der Abfrage erscheint die Fehlermeldung
Zitat:
Laufzeitfehler 3061, To few parameters. Expectet 1
Ich denke der Weg ist der Richtige. Wer kann mir weiterhelfen?

_________________
cu
esprene


Zuletzt bearbeitet von esprene am 26. Aug 2005, 10:22, insgesamt einmal bearbeitet
cablit
VBA- und Access-Kenntnisse vorhanden


Verfasst am:
26. Aug 2005, 10:24
Rufname:


AW: Mehrfachauswahl in Listenfeld als Abfrageparameter mögli - AW: Mehrfachauswahl in Listenfeld als Abfrageparameter mögli

Nach oben
       

Hast du dir mal den Rückgabewert anzeigen lassen, bevor du ihn in das SELECT aufgenommen hast? IMO müsste die Funktion so deklariert sein
Code:
Public Function fcDatenausListe(Ctl0 As Control) As String
und ein Error-Handling innerhalb der Funktion wäre vorteilhaft (vielleicht kommt es bei der Abarbeitung zu einem Fehler??).
esprene
Neuling


Verfasst am:
26. Aug 2005, 13:56
Rufname:

AW: Mehrfachauswahl in Listenfeld als Abfrageparameter mögli - AW: Mehrfachauswahl in Listenfeld als Abfrageparameter mögli

Nach oben
       

@cablit

Danke für deinen Anhaltspunkt, aber ich bin versuche mich noch nicht lange an VBA in Access und bekomm es auch nicht wie oben beschrieben hin.

Jetzt habe ich es so versucht:
Code:
    Dim strSQL As String
    Dim db As DAO.Database
    Dim qd_chargen As DAO.QueryDef
    Dim tb_qd As DAO.Recordset
    Dim para_chargen
    Dim X As Variant
   
    para_chargen = ""
    For Each X In Me![Lst_Chargen].ItemsSelected
        If para_chargen = "" Then
            para_chargen = Me![Lst_Chargen].ItemData(X)
          Else
            para_chargen = para_chargen & " or " & Me![Lst_Chargen].ItemData(X)
        End If
    Next X
    Set db = CurrentDb
    Set qd_chargen = db.QueryDefs("Abfrage1")
    qd_chargen.Parameters("[Para_Charge]") = para_chargen
    Set tb_qd = qd_chargen.OpenRecordset
Wenn ich in der Abfrage als Kriterium "348 Oder 350 Oder 351" angebe
bringt er mir die Werte genau dieser Chargen.
Übergebe ich die Variable [para_chargen] als Kriterium per VBA sagt er mir: "Datatype mismatch in criteria expression".
Ich denke mir es liegt daran, dass das Feld Charge vom Type "Double" ist und meine Parameterübergabe als String in "" steht.
Hmm???
Ich wäre für einen Tipp echt dankbar. Mach mir schon den ganzen Tag
mit dem Problem einen Kopf.
Danke vorab.

_________________
cu
esprene
cablit
VBA- und Access-Kenntnisse vorhanden


Verfasst am:
26. Aug 2005, 14:25
Rufname:


AW: Mehrfachauswahl in Listenfeld als Abfrageparameter mögli - AW: Mehrfachauswahl in Listenfeld als Abfrageparameter mögli

Nach oben
       

Passe mal den Code so an:
Code:
        If para_chargen = "" Then
            para_chargen = CDbl(Me![Lst_Chargen].ItemData(X))
          Else
            para_chargen = para_chargen & " OR " & _
                           CDbl(Me![Lst_Chargen].ItemData(X))
        End If
Dadurch wird der Datentyp geändert.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Ersetzen eines leeren Abfrage-Parameter durch heutiges Datum 3 Byte-Catcher 1114 21. Apr 2007, 15:34
Thomas2007 Ersetzen eines leeren Abfrage-Parameter durch heutiges Datum
Keine neuen Beiträge Access Tabellen & Abfragen: Dateneigabe im Pop-Up Formular nicht möglich 4 Bernd Schlögel 581 25. Jan 2007, 00:01
Bernd Schlögel Dateneigabe im Pop-Up Formular nicht möglich
Keine neuen Beiträge Access Tabellen & Abfragen: Eintrag in Listenfeld bei klick an abfrage übergeben? 5 Zamp 1013 07. Dez 2006, 07:58
derArb Eintrag in Listenfeld bei klick an abfrage übergeben?
Keine neuen Beiträge Access Tabellen & Abfragen: Listenfeld als Parameterquelle für Abfrage funzt nicht 6 dornsat23 981 07. Sep 2006, 14:18
Highlander Listenfeld als Parameterquelle für Abfrage funzt nicht
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage nicht öffnen - trotzdem Abfragen - möglich? 3 mikase 600 01. Sep 2006, 12:50
mikase Abfrage nicht öffnen - trotzdem Abfragen - möglich?
Keine neuen Beiträge Access Tabellen & Abfragen: Eingabe in gruppierter Abfrage nicht möglich 6 lukretu 992 11. Mai 2006, 15:17
lukretu Eingabe in gruppierter Abfrage nicht möglich
Keine neuen Beiträge Access Tabellen & Abfragen: Eingabe nicht möglich! 8 turbochris 804 04. Mai 2006, 20:51
stpimi Eingabe nicht möglich!
Keine neuen Beiträge Access Tabellen & Abfragen: Konstruktion einer Zufallsgeneratorabfrage möglich? 4 JohnM 795 04. Mai 2006, 17:45
Nouba Konstruktion einer Zufallsgeneratorabfrage möglich?
Keine neuen Beiträge Access Tabellen & Abfragen: Session in Access einbinden, ist das Möglich? 0 crunchips 574 12. Apr 2006, 10:04
crunchips Session in Access einbinden, ist das Möglich?
Keine neuen Beiträge Access Tabellen & Abfragen: Ist das möglich??? 1 Iceman1981 504 24. März 2006, 21:44
stpimi Ist das möglich???
Keine neuen Beiträge Access Tabellen & Abfragen: Datenzugriffseiten auch auf Basis von Oracle DB's möglich? 0 LaSweeta 803 17. Feb 2006, 12:44
LaSweeta Datenzugriffseiten auch auf Basis von Oracle DB's möglich?
Keine neuen Beiträge Access Tabellen & Abfragen: Berechnung im Listenfeld anzeigen? 3 Schnoop 805 20. Okt 2005, 08:24
Timbo Berechnung im Listenfeld anzeigen?
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Word Serienbriefe