Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: AllenWalker am August 10, 2013, 12:26:01

Titel: Textfelder mittels SQL füllen
Beitrag von: AllenWalker am August 10, 2013, 12:26:01
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
Titel: Re: Textfelder mittels SQL füllen
Beitrag von: DF6GL am August 10, 2013, 13:31:01
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.
Titel: Re: Textfelder mittels SQL füllen
Beitrag von: AllenWalker am August 10, 2013, 13:39:12
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.
Titel: Re: Textfelder mittels SQL füllen
Beitrag von: database am August 10, 2013, 14:03:56
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.


Titel: Re: Textfelder mittels SQL füllen
Beitrag von: DF6GL am August 10, 2013, 14:04:42
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...


Titel: Re: Textfelder mittels SQL füllen
Beitrag von: AllenWalker am August 10, 2013, 14:06:40
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 ;)
Titel: Re: Textfelder mittels SQL füllen
Beitrag von: DF6GL am August 10, 2013, 14:09:12
z :b:


Me!txtFeld1= rs!FeldXY
Titel: Re: Textfelder mittels SQL füllen
Beitrag von: database am August 10, 2013, 14:13:52
Bzw. wenn dein Code ein anderes Formular aufruft und dort Felder befüllen soll...


Forms!DeinFormular!txtFeld1 = rs!FeldXY
Titel: Re: Textfelder mittels SQL füllen
Beitrag von: MzKlMu am August 10, 2013, 18:59:05
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.
Titel: Re: Textfelder mittels SQL füllen
Beitrag von: database am August 11, 2013, 14:13:49
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.