hiho,
ok ich habe eine Lösung, möglich das es noch einfach geht aber so sollte es laufen. 
ich benutzte Access 2000 sollte aber auch mit den andern Versionen funktionieren.
ok du öffnest dein Formular und klickst das kd-Nummer feld an. rechte Maustaste, Eigenschaften.
Bei den Eigenschaften, gehst du auf das Register „ereignis“, nun gehst du auf die Zeile „Bei Änderung“, sobald angewählt erscheint hinten auf der gleichen zeile ein Knopf mit drei punkten. den klicken und Code Editor anwählen. ok du bist nun im VB Editor (sollte ein neues fenster aufgehen).
Ok dort schreibst du nun folgenden Code
dim cur_db as Database
dim RECkunden as Recordset
Set cur_db = CurrentDb()
Set RECkunden = cur_db.OpenRecordset(„tabellen_name_kunden_tabelle“, DB_OPEN_DYNASET)
'tabellen_name_kunden_tabelle selbstverständlich mit
'deinem tabellen namen ersetzen
'sollte das kd-nummer feld einen Inhalt haben,
'wird dieser Code ausgeführt.
if field_Kd-nummer.value = „“ then
RECkunden.findfirst "[id_kunden] = " & field_Kd-nummer.value
'wen die eingegeben nummer gefunden wird, wird
'das Feld kd-name mit dem entsprechende namen
'ausgefüllt.
if RECkunden.nomatch then
else
field_kd-name.value = RECkunden![kd-name]
end if
RECkunden.close
end if
zur übersicht. die felder namen sind immer mit field gekenzeichnet, da ich nicht weiss wie sie bei dir heissen.
sollten die Felder in [] sind die namen der Datenbankfelder, die müssten im Code natürlich auch entsprechend angepasst werden.
ok ich hab mir das ganze nochmals überlegt, ev. solltes du das ganze nicht bei jeder veränderung überprüfen, sondern einfach beim verlassen des feldes field_kd-name. dazu müsstes du nochmals von vorne beginnen mit den schritten und bei den eigenschaften anstelle von „Bei Änderung“ die Zeile „Beim Verlassen“ anwählen.
kannst machen wie du willst 
hoffe das ganze läuft einigermassen 
mfg und ein schönes WE
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]