Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Kombination von Textfeld und Kontrollkästchen zur Suche mit Hilfe eines Formular

Begonnen von hilflosinush, November 13, 2015, 12:29:32

⏪ vorheriges - nächstes ⏩

hilflosinush

Hallo zusammen,
ich brauche mal bitte Eure Hilfe.
Ich habe mir eine DB mit 4 Tabellen zusammengeschustert. Die vier Tabellen sind:
Auswahl (1x Autowert(=Primärschlüssel), 5x Kontrollkästchen, 7x Textfeld)
Geografie (1x Autowert(=Primärschlüssel), 7x Textfeld)
Organisationen (1x Autowert(=Primärschlüssel), 11x Kontrollkästchen, 1x Textfeld)
tblBildVerknüpft1 (1x Autowert(=Primärschlüssel), 6x Textfeld)

ich habe mir ein Suchformular gebastelt, bei dem ich über die Eingabe in ein Textfeld alle Textfelder durchsuchen kann. Das funktioniert.
Ebenso hab ich die 16 Kontrollkästchen in das Suchformular mit eingebaut. Wenn ich 2 Kästchen zur Suche anhake, funktioniert dies auch noch, sobald ich aber mehr als zwei Kästchen anhake gibt es kein Ergebnis mehr. Wenn ich nun nach einem Text und nach angehakten Kontrollkästchen suche, wird nur nach dem Text im Textsuchfeld gefiltert, die Kästchen bleiben unberücksichtigt.
Wie man an meinem Anhang sicherlich bemerken wird, hab ich mir die ganzen Codes aus verschiedenen Foren zusammen gesucht und versucht für meine Zwecke zu ändern, aber mit dem o.g. Problem komm ich leider nicht weiter.
Vielen herzlichen Dank schon mal im Voraus für Eure Hilfe.

Viele Grüße

Matthias

MaggieMay

Hallo,

wenn du AND und OR-Verknüpfungen mischst, musst du Klammern setzen, damit das logisch korrekt interpretiert wird - so wie man es auch aus der Mathematik kennt. Um das umsetzen zu können, musst du mehrere (in deinem Fall zwei) Kriterienstrings erstellen, die du am Ende unter Hinzufügung der Klammern zusammensetzt.

Ein Beispiel wie man so etwas angehen kann findest du in dem Thread zum Thema "Suchformular in 10 Min..." unter Punkt 3 "Erweiterter Code".
Freundliche Grüße
MaggieMay

hilflosinush

Hallo MaggieMay,
ich hab da mal nachgeschaut. Immerhin funktioniert jetzt, dass ich entweder nach einem Suchbegriff oder mehreren Kontrollkästchen suchen kann.
Wie ich aber diese Verbinde weiß ich immer noch nicht. Ich bin bei Punkt 3 nicht weiter durchgestiegen.
Könntest Du mir bitte auf die Sprünge helfen.

Vielen Dank schon mal

MaggieMay

Na, dann will ich dir mal ein wenig auf die Sprünge helfen:
Private Function Filterbedingung() As String   (nicht nötig, siehe unten)
Dim ArgCount As Integer
[color=blue]' Dim myCriteria2 As String[/color]
[color=green]' Initialisiere die Argumentenzahl.[/color]
ArgCount = 0
myCriteria = ""
[color=green]' Oder- Verknüpfungen[/color]
SQLString Me!txtSuche, "Kontinente", myCriteria, ArgCount, 2, False
SQLString Me!txtSuche, "Länder", myCriteria, ArgCount, 2, False
SQLString Me!txtSuche, "Bundesländer", myCriteria, ArgCount, 2, False
SQLString Me!txtSuche, "Landkreise", myCriteria, ArgCount, 2, False
SQLString Me!txtSuche, "Gemeinden", myCriteria, ArgCount, 2, False
SQLString Me!txtSuche, "Ortsteile", myCriteria, ArgCount, 2, False
SQLString Me!txtSuche, "Name_AZ", myCriteria, ArgCount, 2, False
SQLString Me!txtSuche, "Kommentar", myCriteria, ArgCount, 2, False
SQLString Me!txtSuche, "Material", myCriteria, ArgCount, 2, False
SQLString Me!txtSuche, "Art", myCriteria, ArgCount, 2, False
SQLString Me!txtSuche, "Farbe", myCriteria, ArgCount, 2, False
SQLString Me!txtSuche, "Form", myCriteria, ArgCount, 2, False
SQLString Me!txtSuche, "Wachbezeichnung", myCriteria, ArgCount, 2, False
SQLString Me!txtSuche, "TSK", myCriteria, ArgCount, 2, False
[color=green]' UND-Verknüpfungen[/color]
' es geht auch ohne 2. Variable, wenn es so einfach zu trennen ist wie hier
[color=blue]If Len(myCriteria) > 0 Then myCriteria = "(" & myCriteria & ")"[/color]
SQLString Me!KK1, "BFw", myCriteria, ArgCount, 5, True
SQLString Me!KK2, "FFw", myCriteria, ArgCount, 5, True
SQLString Me!KK3, "BtFw", myCriteria, ArgCount, 5, True
SQLString Me!KK4, "WFw", myCriteria, ArgCount, 5, True
SQLString Me!KK5, "FhFw", myCriteria, ArgCount, 5, True
SQLString Me!KK6, "FwS", myCriteria, ArgCount, 5, True
SQLString Me!KK7, "POL", myCriteria, ArgCount, 5, True
SQLString Me!KK8, "ReD", myCriteria, ArgCount, 5, True
SQLString Me!KK9, "RTH", myCriteria, ArgCount, 5, True
SQLString Me!KK10, "Sontiges", myCriteria, ArgCount, 5, True
SQLString Me!KK11, "BuW", myCriteria, ArgCount, 5, True
SQLString Me!KK12, "Schriftband", myCriteria, ArgCount, 5, True
SQLString Me!KK13, "Staatswappen", myCriteria, ArgCount, 5, True
SQLString Me!KK14, "Landkreiswappen", myCriteria, ArgCount, 5, True
SQLString Me!KK15, "Gemeindewappen", myCriteria, ArgCount, 5, True
SQLString Me!KK16, "Wachwappen", myCriteria, ArgCount, 5, True
' Falls kein Kriterium spezifiziert wurde, gebe alle Datensätze zurück.
If myCriteria = "" Then myCriteria = "TRUE"
Filterbedingung = myCriteria
End Function

Zitat' Falls kein Kriterium spezifiziert wurde, gebe alle Datensätze zurück.
Wenn das zutreffen soll, so musst du das Kriterium auf TRUE einstellen!
Freundliche Grüße
MaggieMay

hilflosinush