Hallo!
Wie kann ich in Access 97 eine Abfrage
realisieren, bei der die zu durchsuchende
Spalte vom Benutzer in einer Listbox
ausgewählt wird (Benutzer legt z.B. in
einem Formular fest, ob er Autor, Titel
oder Stichwort nach einem Suchbegriff
durchsuchen will)? …wenn möglich ohne
VBA, da ich darin nicht bewandert bin,
wenns aber nicht anders geht, ist mir
auch eine solche Lösung willkommen.
Ich habe mal ein Literaturverwaltungssystem geschrieben, daß genau die Funktionalität bietet, die Du suchst, allerdings in VB mit Zugriff auf eine Access-DB über ODBC.
Die Suche läuft folgendermaßen ab:
1.) Private Sub Form_Load()
’ Für jeden Suchkriterium ein Recordset öffnen
Set datSchlwort.Recordset = G_dbSuche.OpenRecordset( _
„SELECT DISTINCT tblLiteratur.Schluesselwort FROM tblLiteratur ORDER BY tblLiteratur.Schluesselwort;“)
2.) Ermittlung, welche Suchkriterien ausgewählt wurden, also welche DBCombobox „“
2.) Fehlerprüfung, auf evtl. falsch eingegebene Werte
4.) Erzeugung dynamischer SQL-Queries, je nachdem was ausgewählt wurde
Dim strQuery As String
’ Suchkriterium ist Schlagwort
If frmSuche.dbcSchlwort „“ Then
strQuery = „SELECT tblLiteratur.Titel, tblLiteratur.Nachname, tblLiteratur.Vorname, tblLiteratur.Ablageort, tblLiteratur.Ablageverzeichnis, tblLiteratur.Schluesselwort, tblLiteratur.Kategorie, tblLiteratur.Verlagname FROM tblLiteratur WHERE (((tblLiteratur.Schluesselwort)=“"" & frmSuche.dbcSchlwort.Text & „“"));"
End If
Set datErgebnis.Recordset = G_dbSuche.OpenRecordset(strQuery)
5.) Das Ergebnis wird in einem DBGrid angezeigt. Falls es sich um Dokumente in digitaler Form handelt, läßt sich das Dokument durch Klick öffnen, ansonsten wird der Ablageort angezeigt.
So etwas Ähnliches wie Du möchtest habe ich auch schon in Access realisiert, wobei ich die ausgewählten Werte einfach einem Report übergeben habe. Ich glaube aber nicht, daß sich das ohne VBA machen läßt.
Tanja