Wie mache ich ein Suchformular in Access?

Guten Tag, ich möchte eine Suche machen, habe den code, aber kriege ihn nicht korrekt angewendet. Kann mir jemand Schritt für Schritt erklären, wie ich mit diesem Code Korrekt ein Suchformular erstellen kann?

Code:

Option Compare Database

Private myCriteria As String

Public Sub SQLString(FieldValue As Variant, FieldName As String, _
Criteria As String, ArgCount As Integer, _
Typ As Integer, Optional Operator As String = „=“, _
Optional bAnd As Boolean = True)
'*************************************************************************
'In dieser Prozedur (Sub) mu? und darf nichts ge?ndert werden
'*************************************************************************
’ Erstelle Kriterien für die WHERE-Klausel.
If Nz(FieldValue, „“) „“ Then
If bAnd Then
’ Füge „Und“ hinzu, falls andere Kriterien vorhanden sind.
If ArgCount > 0 Then Criteria = Criteria & " AND "
Else
’ Füge „Oder“ hinzu, falls andere Kriterien vorhanden sind.
If ArgCount > 0 Then Criteria = Criteria & " OR "
End If
Select Case Typ
Case 1 'Datum
Criteria = Criteria & FieldName & " " & Operator & " #" & _
Format(CDate(FieldValue), „mm-dd-yyyy“) & „#“
Case 2 'String Like
Criteria = Criteria & FieldName & " Like ‚" & FieldValue & "‘"
Case 3 ’ Zahl
Criteria = Criteria & FieldName & " " & Operator & Str(FieldValue)
'Fehlendes Str(…) eingefuegt Willi Wipp 2007.08.07
Case 4 'String =
Criteria = Criteria & FieldName & " = ‚" & FieldValue & "‘"
Case 5 'Ja/nein
If FieldValue = „Ja“ Or FieldValue = „True“ Or _
FieldValue = True Then
Criteria = Criteria & FieldName & " = -1"
Else
Criteria = Criteria & FieldName & " = 0"
End If
Case 6
Criteria = Criteria & „(“ & FieldName & „) Is Null“
End Select
’ Inkrementiere die Zahl der Argumente.
ArgCount = ArgCount + 1
End If
End Sub

Private Function Filterbedingung() As String
Dim ArgCount As Integer
’ ############ Ergaenzung fuer Bereichseingrenzungen! (Anfang) ###############
Dim tmpCount As Integer
Dim tmpCriteria As String
’ ############ Ergaenzung fuer Bereichseingrenzungen! (Ende) #################

’ Initialisiere die Argumentenzahl.
ArgCount = 0
myCriteria = „“

SQLString Me!name_search, „work_family_name“, myCriteria, ArgCount, 2
If Me!selectSO = True Then
SQLString 0, „SO“, myCriteria, ArgCount, 3, „>“
End If
’ ############ Ergaenzung fuer Bereichseingrenzungen! (Anfang) ###############
tmpCriteria = „“
tmpCount = 0
SQLString Me!Beginn, „Beginn“, tmpCriteria, tmpCount, 1, „>=“
SQLString Me!Ende, „Ende“, tmpCriteria, tmpCount, 1, " „“ Then
myCriteria = myCriteria & IIf(myCriteria „“, " AND (", „(“) & _
tmpCriteria & „)“
tmpCriteria = „“
ArgCount = ArgCount + tmpCount
tmpCount = 0
End If
’ ############ Ergaenzung fuer Bereichseingrenzungen! (Ende) #################
’ Falls kein Kriterium spezifiziert wurde, gebe alle Datens?tze zurück
If myCriteria = „“ Then myCriteria = „True“
Filterbedingung = myCriteria
End Function

Private Sub Command25_Click()
Me.Filter = Filterbedingung()
Me.FilterOn = True
End Sub

Hallo,

auch Vielfach-Postings in mehreren Foren werden es Dir nicht abnehmen können, sich selber mit den Grundlagen von Access zu beschäftigen. Und nur Copy & Paste von Code bringt Dir nicht viel…

Moin, cocteau,

Kann mir jemand Schritt für Schritt erklären

da ist ja schon das Zauberwort: Schritt für Schritt, dafür gibt es eine Extrataste im VBA, nämlich die F8.

Nach jedem Schritt guckst Du, was das Programm getan hat und wie die Variablen stehen, dann wird sich Dir auch erschließen, wo der Wurm drinsitzt.

Gruß Ralf

Im Formular in der Bearbeitungsform auf das Icon Kombinationsfeld klicken, dann in das Formular gehen und ein Feld ziehen. Bei dem geöffneten Menue "Einen Datensatz im Formular basierend auf…anklicken. Bei dem neu geöffneten Menue aussuchen, aus welchem Feld ich suchen will, auf die andere Seite bringen. Dann 2X auf weiter klicken. Dann die Bezeichnung des Feldes eingeben und auf fertigstellen klicken. Das war es schon.
mfG
Olli2