Guten Tag,
Folgendes ist vorhanden: Tabelle, Abfrage, Formular
Formular (Endlosformular) Gebunden mit der Abfrage.
In dem Formular gibt es einen Button mit on cklick funktion
msgbox Vorname
so.. wenn ich einen Neuen Fled hinzufüge und bei msgbox "neues Feld" schreibe dann sagt vba editor nicht defenierte Variable.
wenn ich aber ein neues Access Datei erstelle und dort die Tabelle, Abfrage, Formular mit neuem Feld exportiere
dann geht alles..
ich weiß...ist ein bisschen verwirrend vielleicht mit einem Beispiel unten könnt ihr mich mehr verstehen
[Anhang gelöscht durch Administrator]
Hallo!
ZitatNeuen Fled hinzufüge und bei msgbox "neues Feld" schreibe dann sagt vba editor nicht defenierte Variable.
Verstehe ich dich richtig: du erstellst zur Laufzeit ein neues Datenfeld in der Tabelle, welches du anschließend im Formular über Me.Datenfeld (nur Me. lässt du weg) ansprechen willst.
Das wird nicht funktionieren, da zu diesem Zeitpunkt die Eigenschaft "neuer Feldname" noch nicht angelegt wurde. Diese Eigenschaft wird erst beim erneuten Auswerten der Datenherkunft (z. B. nach Aktualisierung der Eigenschaft "RecordSource" in der Entwurfsansicht) angelegt. Sobald das Feld in der Datenherkunft des Formulars verfügbar ist, könntest du allerdings über die Auflistungsklasse gehen (Me!Datenfeld bzw. me.Controls("Datenfeld")).
BTW: Die angehängte Datei ist aus meiner Sicht ziemlich umsonst. Es hätte auch ausgereicht, wenn du folgende Zeile gezeigt hättest:
Private Sub Details_Click()
MsgBox Vorname
End Sub
.. mehr gibt das Beispiel auch nicht her.
Sinnvoller wäre es gewesen, wenn du mit dem Beispiel den Code gezeigt hättest, der das Problem auslöst.
mfg
Josef
ich mache es noch einfacher.
Ein Formular wird mit einer Tabelle verbunden Über Eigenschaften.
Formular hat nur einen Button mit onclick Ereigniss, sonst nichts.
Private Sub Details_Click()
MsgBox Vorname
End Sub
ich erstelle ein neue Spalte in der Tabelle Nachname
schreibe in onclick ereigniss
Private Sub Details_Click()
MsgBox Nachname
End Sub
dann sagt mir vba editor Nicht deklarierte Varieable
Wenn das Formular auf einer Abfrage basiert, muss die Abfrage natürlich auch das neue Feld beinhalten.
Falls das bereits der Fall ist, kannst du einmal versuchen die Datenherkunft des Formulars zu löschen und anschließend neu einzustellen (Strg+X, Strg+C). Damit werden die Eigenschaften für die Datenfelder neu aufgebaut.
Immer funktionieren sollte allerdings der Zugriff auf das neu erstellte Steuerelement, dessen Eigenschaft wird sofort nach Erstellung des Steuerelements angelegt - das bei dir einen anderen Namen haben wird.
Die Alternative zum Zugriff über die Formular-Eigenschaft wäre der Weg über die Controls-Auflistung (Late binding).
was mir geholfen hat ist folgendes.
in Formulareigenschaft Recordsettyp auf Snapshot und dann wieder auf Dynaset umstellen.
Dann wird das betrofene Feld auch erkannt