Supportnet / Forum / Datenbanken
Dynamische Abfrage in Access
Frage
Hallo,
Ich habe folgendes Problem:
Ich möchte in einem Formular bestimmte Kriterien über ein Optionsfeld eingeben.
Diese eingegebenen bzw. ausgewählten Kriterien sollen nun automatisch in die Kriterien einer Abfrage geschrieben werden.
So dass ich all Datensätze angezeigt bekomme, welche den Kriterien meines Eingabeformulars entsprechen.
Kann mir jemand Helfen?
Antwort 1 von Teddy7
So macht man das nicht.
Üblicherweise zeigt man die Suchergebnisse in einem Endlos-Formular an.
Man kann z.B. die Kriterien in einem Selektions-Formular eingeben und mit Klick auf einen Befehlsbutton das Endlosformular aufrufen.
Beim Öffnen-Befehl kann man die Selektionskriterien mitgeben.
Das kann dann so aussehen:
SKunde und SName seien die Selektionsfelder auf der Form. Die zugehörigen Datensatzfelder in der Datenquelle des Endlosformulars frmÜbersicht seien KdNr und KdName. Dann hinterlegt man in dem Klick-Ereignis des Befehlsbutton diesen Code:
Dim suche As String
suche = ""
if not isnull(SKunde) and Skunde <> 0 then
suche = "KdNr = " & SKunde
endif
if not isnull(SName) and Sname <> "" and SName <> " " then
if suche <> "" then
suche = suche & " and "
endif
suche = suche & " KdName like ´" & SName & "´"
endif
DoCmd.OpenForm "frmÜbersicht", acNormal, , suche
Gruß
Teddy
Üblicherweise zeigt man die Suchergebnisse in einem Endlos-Formular an.
Man kann z.B. die Kriterien in einem Selektions-Formular eingeben und mit Klick auf einen Befehlsbutton das Endlosformular aufrufen.
Beim Öffnen-Befehl kann man die Selektionskriterien mitgeben.
Das kann dann so aussehen:
SKunde und SName seien die Selektionsfelder auf der Form. Die zugehörigen Datensatzfelder in der Datenquelle des Endlosformulars frmÜbersicht seien KdNr und KdName. Dann hinterlegt man in dem Klick-Ereignis des Befehlsbutton diesen Code:
Dim suche As String
suche = ""
if not isnull(SKunde) and Skunde <> 0 then
suche = "KdNr = " & SKunde
endif
if not isnull(SName) and Sname <> "" and SName <> " " then
if suche <> "" then
suche = suche & " and "
endif
suche = suche & " KdName like ´" & SName & "´"
endif
DoCmd.OpenForm "frmÜbersicht", acNormal, , suche
Gruß
Teddy

