Hallo,
leider habe ich ein VBA-Problem, für dessen Lösung ich Eure Hilfe brauche.
Ich habe eine Tabelle, die sieht wie folgt aus:
Name Vorname Kontostand Passwort
Meier Paul 1.000,00 € Paul
Müller Liesel 2.000,00 € Liesel
Schmidt Hans 1,00 € Hans
In einem Formular gebe ich über eine Inputbox mein Passwort ein.
Jetzt soll eine Abfrage generiert werden, die nur die Datensätze auflistet, die das Passwort haben.
In einer „klassischen“ Abfrage ist dies die SQL Anweisung "HAVING ((Passwort=„Hans“)).
Meier Paul 1.000,00 € Paul
Müller Liesel 2.000,00 € Liesel
Schmidt Hans 1,00 € Hans
In einem Formular gebe ich über eine Inputbox mein Passwort
ein.
Nimm besser ein ungebundenes Textfeld. Dem kannst Du dann auch gleich das Eingabeformat „Kennwort“ verpassen.
Jetzt soll eine Abfrage generiert werden, die nur die
Datensätze auflistet, die das Passwort haben.
In einer „klassischen“ Abfrage ist dies die SQL Anweisung
"HAVING ((Passwort=„Hans“)).
in einer klassischen (nicht gruppierenden) Abfrage wäre es „Where“
Wie löse ich mein Problem in VBA?
so:
Sub btnKonto_Click()
Dim strSQL as String, strInp as String
strInp =Inputbox („bitte PW eingeben“)
If strInp „“ then
strSQL = "Select * from tblDeineTabelle where [Passwort} = ’ " & strInp & „’“
End if
’ und hier den SQL_String zur Anzeige der Daten z. B. einem Listenfeld zuweisen
Me!lstKonto.Rowsource=strSQL
'oder stattdessen (nicht empfohlen ! ), wenn es eine gespeicherte Abfrage sein soll:
Currentdb.Querydefs(„abf_Kontostände“).SQL =strSQl
Docmd.Openquery „abf_Kontostände“
Hallo,
mit dem Listenfeld klappt es schon ganz gut. Es taucht jetzt nur ein weiteres Problem auf, bei dem ich 'n Brett vorm Kopp habe:
Mein Listenfeld (mit genau den gewünschten Angaben!!!) erscheint in meinem Formular so oft, wie Zeiten in der Abfrage vorhanden waren.
Wie reduziere ich dies auf ein einziges Mal, dasss das Listenfeld (lstKonto) in meinem Formular frm_Kontoangaben auftauscht?