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