VB 6.0 Fehlermeldung bei datenbankzugriff

hallo,

ich habe eine kleine VB-anwendung die auf eine MS Access datenbank zugreift. ich bekomme aber bei der ausführung einer „speichern“-aktion immer eine fehlermeldung und weiß nicht warum.

ich geben in ein formular daten ein, die bei klick auf den „Speichern“-button in die DB geschrieben werden sollen.
Aber immer wenn ich das machen möchte kommt folgende fehlermeldung:

Laufzeitfehler ‚3201‘:
Der Datensatz kann nicht hinzugefügt oder geändert werden, da ein datensatz in der Tabelle ‚FAHRER‘ mit diesem Datensatz in Beziehung stehen muss.

in meiner DB habe ich zwei tabellen:

tabelle „FAHRER“

  • FahrerID (

Laufzeitfehler ‚3201‘:
Der Datensatz kann nicht hinzugefügt oder geändert werden, da
ein datensatz in der Tabelle ‚FAHRER‘ mit diesem Datensatz in
Beziehung stehen muss.

Ich würde mal sagen, dass der Fahrer den du zum Tag speichern willst nicht in der Fahrertabelle vorhanden ist. Das sagt zumindest die Fehlermeldung. Warum er nicht vorhanden ist, obwohl du ihn möglicherweise siehst kann man ohne das Programm näher zu begutachten on hier aus nicht sagen.

Hallo, Axl!

Laufzeitfehler ‚3201‘:
Der Datensatz kann nicht hinzugefügt oder geändert werden, da
ein datensatz in der Tabelle ‚FAHRER‘ mit diesem Datensatz in
Beziehung stehen muss.

Wie Quaser schrieb: Wenn Du einen Datensatz in „ARBEITSTAG“ speichern willst, muss das Feld „FahrerId“ einen Datensatz aus der Tabelle „FAHRER“ referenzieren. Heißt auch im Klartext: Bevor nicht wenigstens ein Datensatz in „FAHRER“ vorhanden ist, kannst Du keine „ARBEITSTAGE“ speichern. Oder (das weicht allerdings das Datenbankschema auf) Du entfernst die referentielle Integrität zwischen beiden Tabellen (was ich alelrdings nicht machen würde).

Bau also eine Kombobox zur Fahrerauswahl in Dein Formular, oder (wenn es ein Unterformular ist, welches die Arbeitstage zu einen gegebenem Fahrer darstellt) setze die FahrerId per Code vorm Abspeichern.

Gruß, Manfred

hi

erstmal danke für deine hilfe.

Bau also eine Kombobox zur Fahrerauswahl in Dein Formular,
oder (wenn es ein Unterformular ist, welches die Arbeitstage
zu einen gegebenem Fahrer darstellt) setze die FahrerId per
Code vorm Abspeichern.

als ich grad deine antwort gelesen hab, ist mir schlgartig eingefallen woran es liegen könnte (kann es erst heut abend testen):
wenn ich auf den button „speichern“ klicke, dann speichert er die daten in die tabelle ARBEITSTAG. aber ich habe vergessen ihm einen wert mitzugeben den er in das feld FahrerID schreiben soll.
ich denk mal, ich muss erst eine abfrage starten in der gefragt wird, welcher mitarbeiter momentan aktiv ist (abfrage aus der tab FAHRER). aus dieser abfrage nehme ich nun die FahrerID un speicher sie dann mit in die tab ARBEITSTAG.
oder habe ichmich zu früh gefreut und hier einen denkfehler??

axl

Hi, Axl!

wenn ich auf den button „speichern“ klicke, dann speichert er
die daten in die tabelle ARBEITSTAG. aber ich habe vergessen
ihm einen wert mitzugeben den er in das feld FahrerID
schreiben soll.

Si. Genau das ist der Fehler.

ich denk mal, ich muss erst eine abfrage starten in der
gefragt wird, welcher mitarbeiter momentan aktiv ist (abfrage

Oder eben als Kombobox, in der alle Fahrer drin sind und welches die ID liefert.

aus der tab FAHRER). aus dieser abfrage nehme ich nun die
FahrerID un speicher sie dann mit in die tab ARBEITSTAG.
oder habe ichmich zu früh gefreut

Sehr wahrscheinlich nicht. Genau das wird die Lösung sein.

und hier einen denkfehler??

Jetzt nicht mehr.

Gruß, Manfred