Hallo,
Wie kann ich erreichen, dass Textfelder mit Inhalt gefüllt werden?
Die Textfelder befinden sich auf einem neuen Formular, welches durch eine VBA Prozedur geöffnet wird.
Der Inhalt für die jeweiligen Textfelder ist das Ergebnis einer SQL Abfrage und anschließendem Recordset.
Danke sehr,
Gruß,
Allen Walker
Hallo,
warum so kompliziert und dabei Neuerfinden von Funktionalitäten, die Access schon von Haus aus mitbringt...
Binde das Form an die Abfrage/Tabelle (SQL-String oder Abfrage/Tabellenname in der Form-Eigenschaft "Datenherkunft".
Die Steuerelemente bekommen sodann in deren Steuerelementinhalt dasjenige Tabellenfeld zugewiesen, dessen Inhalt angezeigt werden soll.
Es handelt sich nicht um eine alleinstehende Abfrage.
Hier nochmal mein Problem:
Das Ausgangsformular übergibt dem VBA Code einen Parameter aus dem eine SQL-Abfrage generiert wird.
Mit dieser Abfrage werden Werte aus einer Tabelle heraus gelesen. Mittels VBA Code wird ein neues Formular
geöffnet und auf dem Formular befinden sich die Felder die mit den Ergebnissen der Abfrage gefüllt werden
sollen.
Hallo,
prinzipiell funktioniert's so, dass du mit Hilfe deines SQL-Statements ein Recordset erzeugst.
Den Inhalt des Recordsets weist du dann den Formularfeldern zu.
Ich gehe davon aus, dass dein SQL-Statement nur einen Datensatz finden wird.
Hallo,
"Es handelt sich nicht um eine alleinstehende Abfrage."
es ist völlig egal, um was für eine Abfrage es sich handelt..
Dein Problem habe ich schon verstanden... 8) und ändert nichts an meinem vorhergehenden Tipp.
Weise per VBA-Code den Form-Steuerelementen die Werte der Felder aus dem "anschließendem Recordset" zu...
Zitat
Weise per VBA-Code den Form-Steuerelementen die Werte der Felder aus dem "anschließendem Recordset" zu...
Das ist mir schon klar aber weiß halt nicht wie ;)
z :b:
Me!txtFeld1= rs!FeldXY
Bzw. wenn dein Code ein anderes Formular aufruft und dort Felder befüllen soll...
Forms!DeinFormular!txtFeld1 = rs!FeldXY
Hallo,
ich halte die ganze Recorsetgeschichte für überflüssig.
Die Abfrage ja auch nur Felder der zu Grunde liegenden Tabelle hat, kann man die Formularfelder alle an die entsprechenden Tabellenfelder (bzw. dann Abfragefelder) binden.
Die Datenquelle des Formulars lässt man leer.
Im Ereignis "Beim Laden" weist man dem Formular dann den SQL Code zu.
Private Sub Form_Load()
Me.RecordSource = "Select ....."
End Sub
Mehr ist nicht zu tun.
Hallo,
und wie immer gibt es natürlich auch verschiedene Möglichkeiten beim Verwenden einer Abfrage als Datenherkunft des Formulars.
Wenn es sich dabei um eine gespeicherte Abfrage handeln sollte - ist ja auch möglich, dass diese mehrfach verwendet werden soll,
kann diese Abfrage VOR dem Aufruf des Formulars an der Stelle geändert werden, an der du die SQL zusammenstellst:
Dim strSQL As String
...
..
.
strSQL = "SELECT ..."
CurrentDb.QueryDefs("NameDeineAbfrage").SQL = strSQL
Die Abfrage ist als Datenherkunft des aufzurufenden Formulars fix eingetragen.