Ein Beispielformular

Wir erinnern uns an das Beispiel, das uns durch das Access-Tutorial hindurch verfolgt: Wir wollen nun Orte und Bundesländer in einem Formular erfassen. Zur Erinnerung, wir haben zwei Tabellen:

Beziehungen
tblLänder 1 tblOrte
IDLand IDOrt
txtLand txtOrt
lngLand

Wir erstellen ein neues Formular und wählen tblOrte als Datenherkunft. In den Formulareigenschaften (Register „Daten“, Eigenschaft „Datenherkunft“) kann man jede vorhandene Tabelle oder Abfrage als Datenquelle auswählen. Man könnte sogar eine neue Abfrage kreieren, die nicht als Abfrage, sondern im Formular selbst gespeichert wird. Davon ist aber abzuraten! So eine Abfrage ist stets langsamer als eine Abfrage, die auch als Abfrage gespeichert ist.

In der Entwurfsansicht sollte der AssistentSteuerelement-Assistent ausgeschaltet sein. Das ist zwar u.U. eine nützliche Hilfe, aber für den Lerneffekt eines Tutorials kontraproduktiv. Man findet ihn in älteren Accessversionen in der Toolbox Toolbox, in neueren Versionen etwas versteckt im Menüband bei den Steuerelementen, wenn man sie ganz aufklappt.

Zuerst ziehen wir txtOrt aus der Feldliste in den Formularentwurf. Wir sehen dort jetzt ein Textfeld, in dem txtOrt steht, und davor ein Bezeichnungsfeld, das mit txtOrt: beschriftet ist. Die Beschriftung ändern wir, indem wir darauf klicken, um es auszuwählen, und dann im Eigenschaftenfenster das Register „Format“ wählen. Dort findet sich die Eigenschaft „Beschriftung“, die wir von txtOrt: auf &Ort: (mit einem „&“ am Anfang) ändern.

Nun klicken wir in der Toolbox auf Kombinationsfeld, und ziehen aus der Feldliste lngLand ins Formular. Auch hier ändern wir die Bezeichnung, nämlich auf &Land:. Außerdem ändern wir den Namen des Kombinationsfeldes im Register „Andere“ auf cboLand. Dann legen wir fest, was das Kombinationsfeld eigentlich anzeigen soll. Dazu wählen wir im Eigenschaftenfenster das Register „Daten“. Der Steuerelementinhalt lngLand stimmt ja schon (das haben wir schließlich ins Formular gezogen), die Eigenschaft „Herkunftstyp“ muss auf Tabelle/Abfrage stehen, die Datensatzherkunft auf tblLänder, und „gebundene Spalte“ auf 1. Jetzt schalten wir probeweise in die Formularansicht.

Formular1

Datensatz: von 5

Jetzt ist der Buchstabe „O“ im Wort „Ort“ und das „L“ im Wort „Land“ unterstrichen. Wir können also mit den Tastenkombinationen [ALT]-O bzw. [ALT]-L zwischen den beiden Steuerelementen hin- und herspringen.

Für das Kombinationsfeld cboLand stehen die Zahlen von 1 bis 16 zur Verfügung. Das sind die Nummern der Bundesländer aus tblLänder. Das ist natürlich unbefriedigend; man erwartet ja deren Namen. Daher gehen wir wieder in die Entwurfsansicht, wählen das Kombinationsfeld aus und im Eigenschaftsfenster das Register „Format“. Dort stellen wir „Spaltenanzahl“ auf 2 und geben in „Spaltenbreiten“ 1cm; 3cm ein. Außerdem sollte „Breite“ auf mindestens 4cm stehen. Dann gehen wir zurück in die Formularansicht.

Auf den ersten Blick hat sich nichts geändert. Öffnen wir jetzt aber das Kombinationsfeld, sehen wir neben den Nummern der Bundesländer auch deren Namen. Wir haben nämlich festgelegt, dass das Kombinationsfeld die ersten zwei Spalten der Tabelle tblLänder anzeigen soll. Gebunden ist die Erste (es wird also der Wert der ersten Spalte eingetragen). Bei dieser Einstellung ist es meistens sinnvoll, die Eigenschaft „Spaltenbreiten“ auf Werte wie 0cm; 3cm zu stellen. So wird die Nummer ausgeblendet, zu sehen ist nur noch der Name des Bundeslandes.

Was das Formular nicht anzeigt, ist der ID des Ortes. Und wozu auch? Das Feld ist vom Typ Autowert und füllt sich selbst. Meistens kann auf derartige Angaben in Formularen getrost verzichtet werden. Unser Formular ist also fertig, und wir speichern es unter frmOrte ab.

frmOrte

Datensatz: von 5

Das soll aber niemanden davon abhalten, noch etwas mit dem Formular zu spielen. Bei Formularen führen meistens viele Wege zum Ziel. So kann man z. B. testen, ob man für die Bundesländer eine Optionsgruppe statt eines Kombinationsfeldes nutzen möchte.