News & Tipps zu Microsoft Access

Lesen Sie hier einige der besten Beiträge aus SmartTools Access Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Access.

Beitrag aus SmartTools Access Weekly

Adresse per Kombinationsfeld im Formular auswählen und übertragen

Access 365 2021 2019 2016 2013 2010

FRAGE Aus einer Tabelle "Kunden" in meiner Access-Datenbank soll eine ausgewählte Kundenadresse in eine andere Tabelle mit dem Namen "Rechnungen" übertragen werden. Ich habe dazu im entsprechenden Rechnungsformular ein Kombinationsfeld erstellt und kann auch den Kundennamen auswählen. Wie aber bekomme ich nun die entsprechenden Feldinhalte Firma, Straße Postleitzahl und Ort in das Rechnungsformular?

H. Krieger

ANTWORT Dem Kombinationsfeld muss zunächst eine Abfrage zugrunde liegen, die alle benötigten Felder liefert, also z.B. Anrede, Vorname, Nachname, Straße, PLZOrt und so weiter. Dazu können Sie unter "Datensatzherkunft" z.B. eine SQL-Abfrage eintragen, die gleich nach Nachname sortiert:

select Anrede, Vorname, Nachname, Strasse,
PLZOrt from Adressen order by Nachname;

Unter "Spaltenanzahl" tragen Sie dann ein, wie viele Felder geliefert werden und unter "Spaltenbreite" geben Sie an, wie breit die einzelnen Felder angezeigt werden sollen, wobei "0cm" ein Feld ausblendet und die Angaben per Semikolon getrennt werden. "2cm;3cm;3cm;0cm;5cm" steht z.B. für fünf Spalten Anrede, Vorname, Nachname, Strasse und PLZOrt, von denen die vierte Spalte "Strasse" ausgeblendet wird.

Wenn eine Auswahl getroffen wurde, wird die Ereignisprozedur "Nach Aktualisierung" aufgerufen. Über "Kombinationsfeld.Column(x)" können Sie dann auf die einzelnen Felder zugreifen und den Inhalt in Textfelder im Formular übertragen. Jedes Feld der Abfrage entspricht einer Spalte im Kombinationsfeld, nummeriert von "0" bis "Anzahl Spalten -1". Die VBA-Routine könnte dann z.B. so aussehen:

'1. Feld aus Abfrage= Anrede
Me.Anrede = Kombinationsfeld.Column(0)
'2. Feld aus Abfrage= Vorname
Me.Vorname = Kombinationsfeld.Column(1)
'3. Feld aus Abfrage= Nachname
Me.Nachname = Kombinationsfeld.Column(2)
'4. Feld aus Abfrage= Strasse
Me.Strasse = Kombinationsfeld.Column(3)
'5. Feld aus Abfrage= PLZ und Ort
Me.PLZOrt = Kombinationsfeld.Column(4)