Verständnisfrage zur Code-Schreibweise

Hallo,

kann mir jemand mit einfachen Worten erklären, wann man z.B. bei dem Befehl Me.Feldname im Code den Punkt und wann das Ausrufezeichen benutzen sollte?

Gruß Matthias

Mahlzeit,

kann mir jemand mit einfachen Worten erklären, wann man z.B.
bei dem Befehl Me.Feldname im Code den Punkt und wann das
Ausrufezeichen benutzen sollte?

ganz einfach: bei Eigenschaften eines Objektes den Punkt, bei enthaltenen Verweise auf ein Unterobjekt das Ausrufezeichen.

Und man sollte nicht, man muß!

Gruß

Sancho

Warum funktioniert dann der Me. Befehl in Acc97 sogar mit Auswahlmöglichkeit und warum muß bei forms!tab1.form!tab2!feldname der Punkt dazwischen sitzen?

Gruß Matthias

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

Hi,

ganz einfach: bei Eigenschaften eines Objektes den Punkt, bei
enthaltenen Verweise auf ein Unterobjekt das Ausrufezeichen.

Warum funktioniert dann der Me. Befehl in Acc97 sogar mit
Auswahlmöglichkeit

OK, das mit dem Muß ist zu relativieren. Die ganze Objektstruktur in Access ist historisch zusammengewachsen. Aus früher unlogischen, inkonsistenten Vorgaben wurde das, was ich oben geschrieben habe, herausdestilliert. Die Access-Hilfe schreibt dazu:

_Verwenden der Operatoren ! (Ausrufezeichen) und . (Punkt) in Ausdrücken

Sie können die Operatoren ! und . (Punkt) in einem Bezeichner verwenden, um den Elementtyp, der unmittelbar folgt, zu kennzeichnen.
Der Operator ! zeigt an, daß das folgende Element ein benutzerdefiniertes Element ist (ein Element einer Auflistung). Verwenden Sie z.B. den Operator !, um auf ein geöffnetes Formular, einen geöffneten Bericht oder auf ein Steuerelement in einem geöffneten Formular oder Bericht zu verweisen.

Bezeichner Verweist auf
Formulare![Bestellungen] das geöffnete Formular Bestellungen.
Berichte![Rechnung] den geöffneten Bericht Rechnung.
Formulare![Bestellungen]![Bestell-Nr] das Steuerelement Bestell-Nr im geöffneten Formular Bestellungen.
Der Operator . (Punkt) zeigt normalerweise an, daß das folgende Element ein von Microsoft Access definiertes Element ist. Verwenden Sie den Operator . (Punkt) z.B., um auf eine Eigenschaft eines Formulars, Berichts oder Steuerelements zu verweisen.

Anmerkung Sie können den Operator . (Punkt) auch verwenden, um auf einen Feldwert in einer SQL-Anweisung, eine Methode in Visual Basic für Applikationen oder auf eine Auflistung zu verweisen. Der Bezeichner
Formulare![Bestellungen].Steuerelemente
verweist z.B. auf die Auflistung Controls des Formulars Bestellungen. Da die Auflistung Controls die Standardauflistung für Formulare und Berichte ist, ist es jedoch normalerweise nicht erforderlich, explizit auf diese zu verweisen._
Dummerweise ist der Editor noch nicht soweit, er bietet beim Me-Objekt die Auswahl nur beim Punkt (was nach der og. Definition eigentlich nur beim Ausrufezeichen gehen sollte).

und warum muß bei
forms!tab1.form!tab2!feldname der Punkt dazwischen sitzen?

Das ist leichter zu erklären: aus der Auflistung forms wähle den Eintrag tab1 ( -> !)
dieser hat eine Eigenschaft form ( -> .)
Aus der Auflistung Controls (die implizit aufgerufen wird) wähle tab2 ( -> !)
Wieder aus Controls wähle feldname ( -> !)

Dein Ausdruck müßte eigentlich lauten:
forms!tab1.form.controls!tab2.controls!feldname
oder
forms(„tab1“).form.controls(„tab2“).controls(„feldname“)
lauten.

Alles klar? :smile:

Gruß

Sancho

Danke

Es ist zumindest etwas deutlicher geworden und es kann ja nicht schaden, wenn man mal die Hintergründe etwas übersetzt bekommt.

Werde versuchen mich in Zukunft dran zu halten. :smile:

Gruß Matthias

Mahlzeit.

Eine recht einfache Veranschaulichung findet man auch unter
http://www.donkarl.com/FAQ/FAQ6VBA.htm#6.3 (FAQ 6.3 Punkt oder Rufzeichen)

1 Like