Access 2007
ich habe ein Formular "Adresseneingabe" mit einem Kombinationsfeld mit der Datenherkunft SELECT Adressen.Kennummer, Adressen.Nachname FROM Adressen ORDER BY Adressen.Nachname
Das Kombinationsfeld dient mir einen bestimmten Datensatz mit dem eingegebenen Nachnamen zu suchen. Wenn ich jedoch in das Kombinationsfeld z.B. "Hermann" eingebe, dann schlägt mir das Kombinationsfeld nur alle Nachnamen vor, die mit "Hermann" beginnen, aber nicht die, wo "Hermann" nicht am Anfang eines Nachnamens steht (z.B. "Müller-Hermann").
Wei kann ich aber innerhalb eines Nachnamens suchen?
Die Funktion 'Autovervollständigen' der Kombifelder bewirkt, dass die Eingaben von Links nach Rechts ausgewertet
werden und damit eben der Effekt erzeugt weird, den du beschrieben hast.
Um das zu ändern kannst du ins Change-Ereignis deines Kombifeldes folgenden Code einfügen.
Die bisherige Datenherkunft kannst du löschen.
Private Sub DeinKombifeld_Change()
Dim strSQL As String
strSQL = "SELECT Kennnummer, Nachname FROM Adressen " & _
"WHERE Nachname LIKE '" & Me!DeinKombifeld.Text & "*' OR Nachname LIKE '*" & _
Me!DeinKombifeld.Text & "*'"
Me!DeinKombifeld.RowSource = strSQL
Me!DeinKombifeld.Dropdown
End Sub
Dadurch wird bei jedem eingegebenen Zeichen die RowSource deines Kombis neu aufgebaut und ermöglicht,
dass auch wie in deinem Fall 'Müller-Hermann' bei der Eingabe von 'Hermann' gefunden und angezeigt wird.
HTH
Danke! Das funkioniert! Und wie sieht der Code aus, wenn ich in zwei Spalten ("Nachname", "Unternehmen") der Tabelle "Adressen" suchen möchte und "Unternehmen" in manchen Datensätzen in der Adresse-Tabelle auch mal keine Daten enthält?:
Also in dem Sinne:
Wenn Adressen.Unternehmen ist null dann
SELECT Kennummer, Nachname FROM Adressen
Wenn Adressen.Unternehmen ist nicht null dann
SELECT Kennummer, Unternehmen & " " & Nachname FROM Adressen
Hallo,
ohne das zu probieren könnte es so gehen:
Private Sub DeinKombifeld_Change()
Dim strSQL As String
strSQL = "SELECT Kennnummer, Nachname, Unternehmen FROM Adressen " & _
"WHERE Nachname LIKE '" & Me!DeinKombifeld.Text & "*' OR Nachname LIKE '*" & _
Me!DeinKombifeld.Text & "*' OR Unternehmen LIKE '" & Me!DeinKombifeld.Text & "*' OR Unternehmen LIKE '*" & _
Me!DeinKombifeld.Text & "*'"
Me!DeinKombifeld.RowSource = strSQL
Me!DeinKombifeld.Dropdown
End Sub
oder du teilst die Sache gleich auf 2 Kombis auf
Danke. Funktioniert!