November 23, 2020, 17:06:33

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Suchfilter

Begonnen von katharina_eckert, November 16, 2020, 14:51:31

⏪ vorheriges - nächstes ⏩

katharina_eckert

Hallo

Ich habe durch den folgenden Link die Suchmaske erstellt.

http://www.office-loesung.de/ftopic13271_0_0_asc.php

Jedoch weiß ich bis jetzt nicht wie ich in der Entwurfsansicht die Tabelle erstellen kann, womit ich die Datensätzte bei der Suche gefiltert bekomme. Am besten tabellarisch...

Bei mir funktioniert die Suche leider nicht. Kann mir bitte jemand dabei helfen. Danke im Voraus !

Option Compare Database
Option Explicit

Private myCriteria As String

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 = ""
    '*************************************************************************
    ' Nur hier muß man die Zeilen anpassen:
    ' Variable1 = Feldname im Formular in dem das Suchwort eingegeben wird
    ' Variable2 = Feldname im Formular der gefiltert werden soll
    '                                                 (Feld aus der Datenbank)
    ' Variable3 = Typ zum Angeben des Datenfeldes
    '             1 = Datum
    '             2 = String, alle die das Suchwort entahlten, egal wo
    '             3 = Zahl
    '             4 = String, findet nur die die genau übereinstimmen
    '             5 = ja/nein vom Typ Boolen
    '             6 = Nach NULL suchen
    ' Optional Operator = Standart "=" Eingabe: ">", "<", "<>", "<=", ">="
    ' Optional bAnd = Hier kann man dann noch angeben ob man die Kriterien mit
    '                 AND (True) oder OR (False) verknüpfen möchte.
    '                 Wenn Argument bAnd weggelassen => mit AND verküpft.
    ' Beispiel:
    ' SQLString Me!Sucheingabefeld, "Datenfeld", mycriteria, ArgCount, _
    '           2, False
    ' => Hier wird mit OR (Oder) verknuept.
    ' Beliebig erweiterbar, wenn man beispielsweise 5 Felder filtern
    ' will muß man die folgende Zeile gerade 5 mal kopieren und anpassen
    '*************************************************************************
    ' SQLString Variable1, Variable2, mycriteria, ArgCount, Variable3
    SQLString Me!txtBohrung_Blech, "[Bohrung_Blech]", myCriteria, ArgCount, 3
    SQLString Me!txtNutzahl, "[Nutzahl]", myCriteria, ArgCount, 3
    SQLString Me!txtNutschlitz_im_Blech, "[Nutschlitz_im_Blech]", myCriteria, ArgCount, 3
    SQLString Me!txtPakethöhe_Max, "[Pakethöhe_Max]", myCriteria, ArgCount, 3
    SQLString Me!txtPakethöhe_Min, "[Pakethöhe_Min]", myCriteria, ArgCount, 3
   
    ' Falls kein Kriterium spezifiziert wurde, gebe alle Datensätze zurück.
    If myCriteria = "" Then myCriteria = "True"
    Filterbedingung = myCriteria
End Function

Private Sub ButtonReset_Click()
    Me.FilterOn = False
    myCriteria = "" 'Nur wenn ihr die Variable Global speichert
    Me!txtBohrung_Blech = Null
    Me!txtNutzahl = Null
    Me!txtNutschlitz_im_Blech = Null
    Me!txtPakethöhe_Max = Null
    Me!txtPakethöhe_Min = Null
   
End Sub

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

Private Sub Form_Open(Cancel As Integer)
    DoCmd.Maximize
End Sub










Option Compare Database
Option Explicit

Private myCriteria As String

Public Sub SQLString(FieldValue As Variant, FieldName As String, _
                     Criteria As String, ArgCount As Integer, _
                     Typ As Integer, 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 & "= #" & _
                       Format(CDate(FieldValue), "mm-dd-yyyy") & "#"
          Case 2 'String Like
            Criteria = Criteria & FieldName & " Like '*" & FieldValue & "*'"
          Case 3 ' Zahl
            Criteria = Criteria & FieldName & " = " & Str(FieldValue)
                                 'Fehlendes = eingefuegt Willi Wipp 2004.10.07
                          '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

DF6GL

Hallo,

eierst Du immer noch an dem Suchproblem vom letzten Threat herum?

Bevor Du Dir so "komplexe" Sachen wie das Suchform antust, das Du dann nicht zum Laufen bekommst, zeige doch mal die Tabelle mit ein paar Beispieldaten, die wie auch immer gefiltert werden sollen und ein paar Beispiele, wie die Suchkriterien aussehen, die Du eingeben willst und nach denen gefiltert werden soll.


Eine vorbereitete Beispiel-DB hier hochzuladen, wäre auch keine schlechte Idee.


ZitatJedoch weiß ich bis jetzt nicht wie ich in der Entwurfsansicht die Tabelle erstellen kann, womit ich die Datensätzte bei der Suche gefiltert bekomme. Am besten tabellarisch...

unverständlich...