Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

?? - Per VBA passende zu eingabe Datensätze suchen und mit doppelklick änderungsformular öffnen!?!?





Frage

Kann mir bitte jemand dabei helfen meine Datenbank mit einer Suchoption zu erweitern. Ich habe eine Tabelle mit meinen Lieferanten und den dazugehörigen Produkten die diese Führen. Nun habe ich ein Formular gemacht mit einem Textfeld für die Sucheingabe und einem Listenfeld für die Suchausgabe. Mir fehlt eben nur noch der passende VBA Code für die operation. Nach der Eingabe ins Textfeld (der Name od. das Produkt,..) soll im Listenfeld die passenden Firmen angezeigt werden. Wenn ich dann im Listenfeld auf den passenden Datensatz doppelklicke soll dieser in meinem Detail Formular(frm_detaileingabe) geöffnet werden. Die Tabellen haben alle ein ID Feld. Danke für eure Hilfe.

Antwort 1 von lleopard

Hallo Billy,

kennst du die KnowHow.mdb? Wenn nicht dann dringend Downloaden und dann schau dir mal an wie die ihr Suchformular programmiert haben. Das sollte ziemlich genau das sein was du brauchst.,...

tja, und wenn du das selber machen willst:

Ein Feld dient also der Eingabe eines Suchbegriffs.

Nun kann man das so wie in der KnowHow.mdb machen und schon während der Eingabe Ergebnisse anzeigen. Dh du filterst schon bei der Eingabe auf gültige Ergebnisse in den Zielfeldern in denen gesucht werden soll. Wie das geht kannst du dir sicher denken, wenn du dich mit Access-Programmierung schon ein wenig auskennst:

Hinter dem Suchfeld ist eine VBA-Routine, die quasi schon während der Eingabe immer wieder ein Listenfeld mit den Ergebnissen des Suchbegriffs füllt:

Hinter den Suchfeld findest du:

Private Sub dfSuche_Change()
sSuche = dfSuche.Text
DoCmd.Hourglass True
lbSuche.Requery
DoCmd.Hourglass False
Me!dfSuche.SetFocus
End Sub

lbsuche ist der Name des Suchfeldes, bzw Listenfeld.

Das Listenfeld hat als Datensatzherkunft Tabelle/Abfrage und der String dazu ist dort:

SELECT qryKnowHowInhalt.Beschreibung, qryKnowHowInhalt.Modul AS Name, qryKnowHowInhalt.Funktion, qryKnowHowInhalt.Art, qryKnowHowInhalt.FunktionsArt, qryKnowHowInhalt.Version, qryKnowHowInhalt.Herkunft
FROM qryKnowHowInhalt
WHERE (((qryKnowHowInhalt.Beschreibung)<>"") AND (([Beschreibung] & [Modul] & [Funktion] & [Version]) Like "*" & [sSuche] & "*"))
ORDER BY qryKnowHowInhalt.Art, qryKnowHowInhalt.Beschreibung, qryKnowHowInhalt.Version DESC;

Um aus der Tabelle die entsprechenden Einträge zu filtern haben die einfach die Felder mit & Zusammengeführt

[Beschreibung] & [Modul] & [Funktion] & [Version]

und als kriterium eingeben, daß der dieser String nun den Suchbegriff beinhalten soll. Ganz einfach, oder? ;-)

Gruß Leo