Access - im Formular Daten suchen und ergänzen

Hallo,
ich habe eine Kunden-DB. Wenn nun ein Werkstatt-Auftrag reinkommt, soll eine Kd-nummer und Kd-name eingegeben werden. Nun möchte ich, wenn die Kd.Nr schon einmal eingetragen wurde, der kd-Name im entsprechenden Textfeld angezeigt wird. Kann man das machen?

Steffi

hiho,

ok ich habe eine Lösung, möglich das es noch einfach geht aber so sollte es laufen. :smile:
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 :smile:
hoffe das ganze läuft einigermassen :smile:

mfg und ein schönes WE

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

wow, okay, das hab ich jetzt gemacht…und bekomme natürlich Fehlermelgungen
Nachdem ich unter Extras --> Verweise das DAO 3.6 Object Library angeklick hatte, war schon der erste Fehler weg. Nun bekomme ich aber noch folgenden:

Fehler beim kompilieren: Methode oder Datenobject nicht gefunden.
RECkunden.FindFirst
RECkunden.NoMatch

Idee?

Steffi

hiho,

ok ich habe eine Lösung, möglich das es noch einfach geht aber
so sollte es laufen. :smile:
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 :smile:
hoffe das ganze läuft einigermassen :smile:

mfg und ein schönes WE