Du solltest zuerst dafür sorgen, daß nicht der Name, sondern nur die LieferantenID gespeichert wird. Aber step-by-step.
Dem Kombinationsfeld verpaßt Du eine „AfterUpdate“ (Nach
Aktualisierung) - Ereigniseigenschaft. Ich setze im folgenden voraus (ansonsten bitte anpassen!), daß die LieferantenNr der Tabelle der PrimaryKey ist (wichtig! und daß dieser Index „PrimaryKey“ heißt) und das 1. Tabellenfeld ist und daß das Kombifeld an diese Spalte gebunden ist (Gebundene Spalte = 1, denn Du mußt den Schlüsselwert speichern, nicht den Lieferantennamen, was ist sonst mit Namensgleichheiten?).
Ferner, daß Lieferantenname die 2. Spalte ist und PLZ die dritte. Dann stellst Du für das Kombifeld folg. Eigenschaften ein:
Gebundene Spalte = 1
Anzahl Spalten = 3
Spaltenbreiten: 0cm;3cm;2cm (–> 0cm blendet die Schlüsselspalte aus, sodaß Du nur Lieferantenname und PLZ zur Auswahl siehst). Wenn Du da noch andere Spalten hast, einfach alles logisch abzählen und Spalten, die unsichtbar sein sollen, auf 0cm Breite setzen.
Danach dann das „AfterUpdate“-Ereignis.
(Die Feldnamen bzw. Steuerelement-Namen im Code mußt Du natürlich auch entspr. ersetzen).
Gruß
Stephan
www.exata.de
Private Sub NameDeinesKombifeldes_AfterUpdate()
Dim DB As Database
Dim RS As Recordset
Dim LieferantenNr As long
Dim Lieferantenname as string
Dim PLZ as string '(bzw. Datentyp aus dem Tabellenentwurf, es gibt übrigens keinen Grund, PLZ’s als numerisch zu definieren)
Set RS = CurrentDb.OpenRecordset(„DeineLieferantenTabelle“)
LieferantenNr = Me!NameDeinesKombifeldes.Value
RS.Index = „PrimaryKey“
RS.Seek „=“, LieferantenNr
Me!LieferantenName.Value = RS.Fields(„LieferantenName“)
Me!PLZ.Value = RS.Fields(„LieferantenPLZ“)
End Sub