Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: asiat am März 22, 2011, 10:21:23

Titel: Problem nach hinzufügen eines neuen Feldes
Beitrag von: asiat am März 22, 2011, 10:21:23
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]
Titel: Re: Problem nach hinzufügen eines neuen Feldes
Beitrag von: Josef P. am März 22, 2011, 10:56:02
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
Titel: Re: Problem nach hinzufügen eines neuen Feldes
Beitrag von: asiat am März 22, 2011, 11:30:25
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
Titel: Re: Problem nach hinzufügen eines neuen Feldes
Beitrag von: Josef P. am März 22, 2011, 11:35:50
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).
Titel: Re: Problem nach hinzufügen eines neuen Feldes
Beitrag von: asiat am März 22, 2011, 11:53:33
was mir geholfen hat ist folgendes.
in Formulareigenschaft Recordsettyp auf Snapshot und dann wieder auf Dynaset umstellen.
Dann wird das betrofene Feld auch erkannt