Neuigkeiten:

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

Mobiles Hauptmenü

Kombinationsfeld Suchen eines Teil eines Wortes

Begonnen von Aloster, November 09, 2012, 11:31:11

⏪ vorheriges - nächstes ⏩

Aloster

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?


database

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

Aloster

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



database

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

Aloster