Ganze Tabelle durchsuchen

Hallo…

auf einem Formular mit Unterform möchte ich in ein Textfeld einen Wert eingeben und mit diesem dann eine Tabelle mit mehreren Spalten duchsuchen. Die gefundenen Datensätze sollen in dem Unterformular angezeigt werden…

Ich hab mir nun eine Parameter-Abfrage erstellt, die auch funktioniert.

Dim db As Database
Dim qry As QueryDef
Dim rs As Recordset
Set db = CurrentDb
Set qry = db.QueryDefs("qryParameter")
qry.Parameters("param1") = txtSuchbegriff.Value
Set rs = qry.OpenRecordset

Wie weise ich nun aber meinem Unterform in der Eigenschaft Recordsource das Ergebnis zu???

Danke für Eure Mühe

lg Micha

Zweiter Ansatz
Ich hab nun eine zweite Lösung, bei der zumindest die Abfrage utner Access funktioniert. Allerdings hab ich noch ein Problem bei der Umsetzung der Access-SQL Abfrage nach VBA…
So sieht mein Code in der SQL-Ansicht bei Access aus…

SELECT DateiID, KatID, DateiPath, DateiSize, DateiDate, Lang, Thema, Titel, Author, Kommentar
FROM tbl\_Datei
WHERE (((tbl\_Datei.DateiID) Like [Formulare]![frmSuche]![txtSuchbegriffe] & "\*"));

Ich weise den SQLString meinem Unterformular zu …

Form\_USuche.RecordSource = "SELECT DateiID, KatID, DateiPath, DateiSize, DateiDate, Lang, Thema, Titel, Author, Kommentar FROM tbl\_Datei WHERE DateiID Like [Formulare]![frmSuche]![txtSuchbegriff] & '\*';"

Aber er bringt mir die Ergebnisse nicht zur Anzeige… was läuft da falsch?

Lg Micha

Hallo Micha,

ich bin mir nicht sicher was du eigentlich machen willst, aber theoretisch sollte ein simples:

Form_USuche.RecordSource = „SELECT DateiID, KatID, DateiPath, DateiSize,
DateiDate, Lang, Thema, Titel, Author, Kommentar FROM tbl_Datei WHERE DateiID
Like [Formulare]![frmSuche]![txtSuchbegriff] & ‚*‘;“

Form_USuche.Requery
reichen.

Micha

Hallo Micha,

Danke für den Hinweis… theoretisch mag das klappen, praktisch wird bei mir im UForm aber kein Datensatz angezeigt…

Dem Formular wird der String zugewiesen in der Eigenschaft Recordsource, aber er findet nix…

Nochmal zur Erläuterung:

Ich hab eine Tabelle in der ich über ein Formular nach Textfolgen in allen Feldern suchen möchte.
Das Formular hat ein Textfeld, indem der Suchbegriff reinkommt, einen button zum Starten über den ich dem UForm die Recordsource-Eigenschaft setze, und das UForm selber…

Ich suche auch nach anderen Daten in nur einer Spalte, da funktioniert es Problemlos

Form\_USuche.RecordSource = "SELECT \* FROM tbl\_Datei WHERE Author='" & txtSuchbegriff.Value & "'"

Nur mit der - ich nenn es mal Volltextsuche - tut sich das UForm schwer…

Wenn ich das ganze wie oben im Ersten Ansatz per recordset Abfrage starte, funktionierts auch, nur ich weiss nicht, ob ich das Ergebnis (also das Recordset) direkt einem UForm zuweisen kann…

mennno, immer voll die blöden Aufträge die ich hab :frowning:

Vielleicht hat ja noch jemand einen Lösungsansatz…

lg micha

Hallo Michael,

wenn DAS deine Bedingung sein sollte:

WHERE (((tbl_Datei.DateiID) Like
[Formulare]![frmSuche]![txtSuchbegriffe] & „*“));

suchst du in der ID nach deinem Suchbegriff!! Mehr nicht! Das ist KEINE Volltextsuche!!

Ich weise den SQLString meinem Unterformular zu …

Form_USuche.RecordSource = „SELECT DateiID, KatID, DateiPath,
DateiSize, DateiDate, Lang, Thema, Titel, Author, Kommentar
FROM tbl_Datei WHERE DateiID Like
[Formulare]![frmSuche]![txtSuchbegriff] & ‚*‘;“

überflüssig, wenn du die Abfrage gleich als Datenquelle angibst!

Aber er bringt mir die Ergebnisse nicht zur Anzeige… was
läuft da falsch?

Suchst du den „Spülbörg“ in der ID? Da ist es logisch, dass nichts gefunden wird!

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallöle Wolfgang,

wenn DAS deine Bedingung sein sollte:

WHERE (((tbl_Datei.DateiID) Like
[Formulare]![frmSuche]![txtSuchbegriffe] & „*“));

suchst du in der ID nach deinem Suchbegriff!! Mehr nicht! Das
ist KEINE Volltextsuche!!

http://home.arcor.de/msregenbogen/abfrage.jpg HIER findest Du ein Bild der Abfrage aus dem Access-Editor, die funktioniert einwandfrei wenn ich sie starte und das Feld txtSuchbegriff gefüllt ist… Es werden Werte in allen Feldern gefunden

Ich weise den SQLString meinem Unterformular zu …

überflüssig, wenn du die Abfrage gleich als Datenquelle
angibst!

Hab ich versucht, aber mal wieder nur Fehler kassiert :frowning:

Form\_USuche.Recordset = CurrentDb.QueryDefs("qryParameter").OpenRecordset

Bekomm dann immer „Ein Parameter erwartet…“ obwohl das Feld txtsuchbegriff gefüllt ist…

Menno… irgendwie muss das doch gehen :frowning:

Hallo Michael,

http://home.arcor.de/msregenbogen/abfrage.jpg HIER findest Du
ein Bild der Abfrage aus dem Access-Editor

da bekomme ich einen Fehler!

Ich weise den SQLString meinem Unterformular zu …

überflüssig, wenn du die Abfrage gleich als Datenquelle
angibst!

Hab ich versucht, aber mal wieder nur Fehler kassiert :frowning:

welche Fehler hast du bekommen?

Form_USuche.Recordset =
CurrentDb.QueryDefs(„qryParameter“).OpenRecordset

nö so macht man das nicht. Übergebe die direkte SQL-Anweisung beim Ereignis: beim öffnen und gehe nicht über die Querydefs! und wie schon gesagt: vergesse das Requery nicht!

BTW wenn du das Formular mit den Ergebnissen öffnest, muss das Suchfenster noch offen sein!!! Schalte es auf unsichtbar und schließe es nicht! Möglicher Weise verursacht das deine Fehler?

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo Wolfgang,

sorry das mit dem Bild sollte jetzt gehen…
http://home.arcor.de/msregenbogen/abfrage.jpg

welche Fehler hast du bekommen?

Laufzeitfehler 3061: 1 Parameter erwartet, aber zu wenig übergeben…

Form_USuche.Recordset =
CurrentDb.QueryDefs(„qryParameter“).OpenRecordset

nö so macht man das nicht. Übergebe die direkte SQL-Anweisung
beim Ereignis: beim öffnen und gehe nicht über die Querydefs!
und wie schon gesagt: vergesse das Requery nicht!

beim Öffnen vom Unterformular? requery mach ich anschliessend…

BTW wenn du das Formular mit den Ergebnissen öffnest, muss das
Suchfenster noch offen sein!!! Schalte es auf unsichtbar und
schließe es nicht! Möglicher Weise verursacht das deine
Fehler?

Ich hab ja nur ein Form, auf dem sint txtsuchbegriff, der suche-starten-button und das Unterformular für die Ergebnisse drauf…

lg micha

Hallo Micha,

Ich hab ja nur ein Form, auf dem sint txtsuchbegriff, der
suche-starten-button und das Unterformular für die Ergebnisse
drauf…

achsoooooo, du hast auf einem Hauptformular noch ein Ufo (Unterformular)…

Ich würde es so machen:

  • nur ein Hauptformular (Endlosformular)
  • Feld für die Suche im Formularkopf
  • Datenquelle für das Formular ist deine Abfrage
  • beim drücken auf den Button = me.requery

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hi Wolfgang…

wie immer, Du bist meine Rettung :smiley:

Danke, habs jetzt mit nur einem Formular gemacht und funktioniert prächtig!!!

Manchmal will mans halt zuu kompliziert machen :smiley:

Schönes WE noch…

Gruss Micha