In Access aus VBA-Code Wert eines Feldes setzen

Hallo,

mit welchem Befehl in VBA kann man den Wert eines angezeigten Formulares setzen?

der Umweg, ein Makro mit „Setzen Wert“ zu erstellen und dieses dann aus VBA mit „DoCmd.RunMacro“ auszuführen ist mir irgendwie ein wenig zu umständlich.

Gruß

Thomas

Normalerweise weist man einfach dem Feldnamen den Wert zu.

Im Formular selbst referenziert man Feldnamen zweckmäßigerweise mit „Me!“, wenn du dich also aus dem Formular-Klassenmodul auf das Formularfeld „MeinFeld“ beziehen willst, sieht das so aus:

Me!MeinFeld = "wasauchimmer"

Wenn du dich aus anderen Modulen auf Formularfelder beziehen willst, musst du dich über die Forms-Auflistung auf das Feld beziehen:

Forms!MeinFormular!MeinFeld = "was auch immer"

Wenn es um Unterformulare geht, wird es komplizierter (http://www.donkarl.com/FAQ/FAQ4Formulare.htm#4.2 - FAQ 4.2).

Nach Möglichkeit sollte man aber solche Formularbezüge von ausserhalb vermeiden, denn sie sind fehlerträchtig. Auf jeden Fall muss man vorher sicherstellen, dass das jeweilige Formular geladen ist. (Mit Syscmd prüfen!)

Besser, als Daten zwischen Formularen zu kopieren, ist allemal, die entsprechenden Operationen auf den zugrundeliegenden Tabellen zu machen.

Gruß aus dem Norden
Reinhard Kraasch
(http://www.kraasch.de - Access Tipps & Tricks)

Danke Reinhard,

das mit normalerweise dachte ich auch, aber wenn man natürlich eine falsche Schreibweise wählt, dann funktioniert das logischerweise nicht. Die Idee, die Daten direkt in der Tabelle zu ändern hatte ich auch, aber das ist dann an dem einfachen Problem gescheitert, daß ich schon zweimal nicht weiß, wie man in einer Tabelle das Feld genau eines bestimmten Datensatzes ändert. Aber wenn wir schon dran sind, im selben Projekt habe ich eine Aktualisierungsabfrage drin, die bestimmte Merker löscht. Nun habe ich wieder genau diesen blöden Effekt, ich schalte in VBA die Systemmeldungen aus, rufe dann aus VBA die Aktualisierungsabfrage auf, und schalte zum Schluß die Meldungen wieder ein. Hier wäre mir eine Lösung direkt in VBA auch lieber.

Gruß

Thomas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Nun - zum Thema „wie führe ich SQL per VBA aus“ hab ich dir ja weiter unten geantwortet - das geht für Anfügeabfragen ja genauso wie für Aktualisierungsabfragen.

Ansonsten kannst du Tabellendaten natürlich auch über die Datenzugriffsobjekte ändern (siehe in der Hilfe unter „Recordset“, „OpenRecordset“ usw.)

Gruß aus dem Norden
Reinhard Kraasch
(http://www.kraasch.de - Access Tipps & Tricks)

1 Like