Neuigkeiten:

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

Mobiles Hauptmenü

Suchfunktion, mit Teilangaben

Begonnen von jeep_66, September 15, 2010, 13:58:35

⏪ vorheriges - nächstes ⏩

oma

Hallo Bernie,

und warum bei einem Feld mit einem krit-String arbeiten, ein AND zufügen,  und dann wieder abziehen ;D
und ein End IF zuviel


Gruß Oma
nichts ist fertig!

jeep_66

Erstmal vielen dank an alle die mir sooo viel geholfen haben und geduld haben.
Es funktioniert !
ich habe do gemacht wie es Franz beschrieben hat.
Jetzt noch 2 Fragen
Wenn ich das bestehende Formular, in den Formularkopf ein zweites Textfeld mache und genauso vorgehe wie beim ersten ( wie es Franz ) beschrieben hat,
müßte es doch eigentlich auch mit anderes Suchkriterien funktionieren-oder? Es geht nämlich nicht.
Ich wollte mir eine ganze Suchmaske machen mit Ort und Telefonnummer und so.
Wenn es nicht geht ist es auch nicht schlimm.

Als ich das Suchfeld mit dem Assistenten erstellt habe, war der aktuelle DS angezeigt. Jetzt natürlich nicht... welcher soll es auch sein.
Kann ich das mit einem Doppelklick oder einem Button noch lösen?

Dann wäre meine DB schon fast perfekt.

LG
aus dem verregnetem Norden
Markus

oma

Hallo,

natürlich geht die Sache auch mit mehreren Suchfeldern, dann muss aber der Code u. die Vorgehensweise etwas geändert werden.

1. Mache im Formularkopf mehrere Suchfelder z.B SuchfeldKunde, SuchfeldOrt (wenn Kundenname und Ort in der Tabelle Kunden vorhanden ist)

2. Mache ein Button Suchen im Formularkopf mit :

Private Sub Suchen()
Dim krit As String, strSQL As String

krit = "": strSQL = ""

    If Not IsNull(Me!SuchfeldFirma) Then krit = krit & " And Firma Like '*" & Me!SuchfeldFirma & "*'"
    If Not IsNull(Me!SuchfelOrt) Then krit = krit & " And Ort Like '*" & Me!SuchfeldOrt & "*'"
 
    strSQL = "SELECT * FROM DeineTabelle"
    If krit <> "" Then strSQL = strSQL & "WHERE" & Mid(krit, 5)

Me.RecordSource = strSQL
End Sub


So werden die 2 Suchbegriffe (oder auch mehrerem , wenn du willst) zu einem Suchstring zusammengefügt.

wenn du die Suchbegriffe aus den Feldern entfernst u. den Button Suchen betätigst, bekommst du dann alle Datensätze.
Natürlich brauchst du auch nur mit einem Feld selektieren.

3. Damit der User leichter die jeweilige Selektion wieder aufhebt, ist ein Button Alle im Kopf zweckmäßig mit:

Private Sub Alle_Click()
     Me.RecordSource = "Select * from DeineTabelle"
End Sub


Gruß Oma
nichts ist fertig!

jeep_66

Hallo Oma,
Ich sage es nur ungern.. aber es geht nicht. :-[
Ich habe den Code so abgeändert. Bei mir ist der Firmenname Name1. Heißt es nicht Privat Sub suchen_click()   ?
Das geht aber auch nicht.


Private Sub suchen()
Dim krit As String, strSQL As String

krit = "": strSQL = ""

    If Not IsNull(Me!suchfeldname1) Then krit = krit & " And name1 Like '*" & Me!suchfeldname1 & "*''
    If Not IsNull(Me!suchfeldort) Then krit = krit & " And Ort Like '*" & Me!suchfeldort & "*'"
 
    strSQL = "SELECT * FROM tbl_adresse"
    If krit <> "" Then strSQL = strSQL & "WHERE" & Mid(krit, 5)

Me.RecordSource = strSQL
End Sub


Gruß
Markus

oma

Hallo,

natürlich mit Click ;D

diese Zeile ist bei dir falsch:

If Not IsNull(Me!suchfeldname1) Then krit = krit & " And name1 Like '*" & Me!suchfeldname1 & "*''

Mit meinem Beispiel, wenn die Suchfelder SuchfeldFirma u. SuchfeldOrt heissen!

If Not IsNull(Me!SuchfeldFirma) Then krit = krit & " And name1 Like '*" & Me!SuchfeldFirma & "*'"

du musst die Namen der Suchfelder u. die Namen der Tabellenfelder unterscheiden!

Gruß Oma


nichts ist fertig!

Bernie110

Off Topic

@ Oma , ich wollt doch auch mal helfen  ;D den Code gabst du mir vor ein paar Monaten bzw jahren  ;D

oma

Hallo Bernie,

das du auch helfen willst - dagegen ist ja auch nichts zu sagen.

Inzwischen hast du dir ja auch schon etliches angeignet.
Der Code-Ausschnitt ist nur nicht so optimal, war aber auch nur ein spaßiger Hinweis ;D

Weiter so mit dem Helfen!

Gruß Oma
nichts ist fertig!

jeep_66

Hallo...,
ich finde´es auch schön, dass mir alle helfen möchten :-)
Aber ich bekomme es nicht hin.
Den Button habe ich B_suchen benannt, in name1 ist der Firmenname, Ort ist Ort.
Die Textfelder heißen, suchfeldort und suchfeldfirma.
Ich mache doch alles richtig-oder?
Gruß Markus

Private Sub b_suchen_click()
Dim krit As String, strSQL As String

krit = "": strSQL = ""

    If Not IsNull(Me!suchfeldfima) Then krit = krit & " And name1 Like '*" & Me!suchfeldfirma & "*''"
    If Not IsNull(Me!suchfeldort) Then krit = krit & " And Ort Like '*" & Me!suchfeldort & "*'"
 
    strSQL = "SELECT * FROM tbl_adresse"
    If krit <> "" Then strSQL = strSQL & "WHERE" & Mid(krit, 5)

Me.RecordSource = strSQL
End Sub

oma

Hallo,

Ohne Worte ein kleines Beispiel....


Gruß Oma

[Anhang gelöscht durch Administrator]
nichts ist fertig!

DF6GL

Hallo,



@jeep_66:

nein, Du machst nicht alles richtig, zumindest stimmt der Code  nicht:



Private Sub b_suchen_click()
Dim krit As String, strSQL As String

krit = "": strSQL = ""

   If Not IsNull(Me!suchfeldfima) Then krit = krit & " And name1 Like '*" & Me!suchfeldfirma & "*''"   ---> "*'" nur ein Hochkomma
   If Not IsNull(Me!suchfeldort) Then krit = krit & " And Ort Like '*" & Me!suchfeldort & "*'"
 
   strSQL = "SELECT * FROM tbl_adresse"
   If krit <> "" Then strSQL = strSQL & "WHERE" & Mid(krit, 5)  --->& "  WHERE" &  Leerzeichen vor Where

Me.RecordSource = strSQL
End Sub

jeep_66

DANK an alle die mir sooo viel geholfen haben !
Gruß
markus