Neuigkeiten:

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

Mobiles Hauptmenü

Ungebundenes Textfeld als Suche für mehrere Optionen nutzen

Begonnen von Piotor04, Mai 15, 2014, 15:56:39

⏪ vorheriges - nächstes ⏩

Piotor04

Huhu,
ich versuche gerade ein ungebundenes Textfeld so zu programmieren, dass ich dort nach 2 verschiedenen Dingen suchen kann: Vorname und Eintrittsjahr. Dies soll passieren, wenn ich auf den Button btnS benutze.
Es funktioniert schon einwandfrei mit NUR Vorname oder NUR Eintrittsjahr aber die Kombination bekomm ich noch nicht hin und weiß auch nicht genau wie.
Ich nutze Folgenden Code dafür:

ZitatPrivate Function Suche() As String
    Dim ArgCount As Integer
   
    ' 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
    ' 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!TxSuche, "Vorname", myCriteria, ArgCount, 4, False
    SQLString Me!TxSuche, "Eintrittsdatum", myCriteria, ArgCount, 2

   
    ' Falls kein Kriterium spezifiziert wurde, gebe alle Datensätze zurück.
    If myCriteria = "" Then myCriteria = "True"
    Suche= myCriteria
End Function

Ich muss da glaub ich irgendwas beim Verknüpfen nicht verstanden haben oder hab ichs ganz falsch verstandenund man braucht 2 Felder zum Suchen?

Grüße und Danke

DF6GL

Hallo,

mit der angegebenen Funktion geht das wohl nicht.... Zudem ist eher unlogisch, um nicht zu sagen Quatsch , denselben Wert (Sinn) in zwei unterschiedlich definierten Feldern zu suchen.... (Was hat ein Datum mit einem Vornamen zu tun?)


So könnte es allerdings gehen:

Sub btnS_Click()
Me.Filter= "[Vorname] & Format([Datum],'dd.mm.yyyy')" Like "*" & Me!TxSuche & "*" 
Me.FilterOn =true
End Sub

Piotor04

Huhu,

es soll ja nicht "zusammenhängen".
Ich will einfach in einem Textfeld TxSuchen, mehrere Sachen suchen können. Wie z.B. Nach Vorname (Dieter) und er gibt mir alle Dieter, oder nach Eintrittsjahr (2013) und er gibt mir alle die 2013 eingetreten sind aus.
Und das sollte über einen Button gehen. Sprich, dass er erkennt ob nach vorname oder Jahr gesucht wurde.

Geht sowas?

DF6GL

Hallo,

Ja, habe es doch gezeigt....


Wenn Du mit EINEM Suchfeld nach ZWEI unterschiedlichen Feldern (bzw. unterschiedliche Spalten durch-)suchen willst, dann müssen die beiden Spalten "zusammengehängt werden.


Bei Suche nach (nur) der Jahreszahl sollte das (allerdings) so lauten:

Sub btnS_Click()
Me.Filter= "[Vorname] & Year([Datum])" Like "*" & Me!TxSuche & "*" 
Me.FilterOn =true
End Sub

Piotor04

Okay ich werds nachher mal versuchen ob ich es hinbekomme :-)

Danke Franz

Jonny

Hallo,
so wie ich piotor verstanden habe will er entweder nach Datum oder nach Vorname suchen.
Dann muss das Feld auf isNumeric geprüft werden (suchen nach Jahr) sonst suchen nach Vorname.
Wäre eventuell ein Lösung aber ich würde zwei Suchfelder nehmen.
Beide als Kombifeld und es gibt dann doch eine viel bessere Suche.

Gruß

Johann