[Access 97] Neuer Eintrag in Combobox

Hallo!

Ich habe im Moment die undankbare Aufgabe, eine Access-DB zu erweitern. In einer Combobox soll ein weiterer Eintrag als Auswahlmoeglichkeit erscheinen.

Tabelle1 m - 1 Tabelle2
-> enthaelt alle Auswahlmoeglichkeiten

Wenn ich nun den neuen Eintrag auswaehle, kommt die Meldung: :„You can’t add or change a record because a related record is required in Tabelle2“ obwohl ich das neue Element doch dort eingefuegt habe und ich kann den Datensatz nicht speichern. Woran kann das liegen?

Andere Comboboxen, deren Inhalte auch mit einer 1:m-Beziehung verknuepft sind, liessen sich problemlos erweitern. Ich habe die Properties bei allen Comboboxen gleich eingestellt.

Ich waere wirklich sehr dankbar fuer jegliche Tips, da ich schon stundenlang den Fehler suche, alles moegliche ausprobiert habe und einfach nicht weiterkomme.

Tanja

Wenn ich nun den neuen Eintrag auswaehle,
kommt die Meldung: :„You can’t add or
change a record because a related record
is required in Tabelle2“ obwohl ich das
neue Element doch dort eingefuegt habe
und ich kann den Datensatz nicht
speichern. Woran kann das liegen?

Es wird schon genau daran liegen, dass der korrespondierende Datensatz in Tabelle2 fehlt. Manchmal hilft ein Requery an der richtigen Stelle…
Aber poste doch mal den genauen Code deiner NotInList-Ereignisprozedur (um die geht es doch, oder irre ich mich?)

Reinhard

Hallo Reinhard!

Erst mal Danke fuer Deine Hilfe.

Es wird schon genau daran liegen, dass
der korrespondierende Datensatz in
Tabelle2 fehlt.

Aber ich habe ihn doch in Tabelle2 eingefuegt und er wird auch als Auswahlmoeglichkeit in der Combobox angeboten!

Manchmal hilft ein
Requery an der richtigen Stelle…

Wie mache ich das?

Aber poste doch mal den genauen Code
deiner NotInList-Ereignisprozedur (um die
geht es doch, oder irre ich mich?)

In diesem Formular (noch im Subformular) gibt es keine NotInList-Ereignisprozedur. Die Fehlermeldung tritt auf, sobald das Hauptformular den Fokus verliert (z. B. wenn ich auf das Subformular klicke) und der Datensatz normalerweise in die entsprechenden Tabellen geschrieben wird. Eine LostFocus-Ereignisprozedur ist nicht vorhanden.

Tanja

Aber ich habe ihn doch in Tabelle2
eingefuegt und er wird auch als
Auswahlmoeglichkeit in der Combobox
angeboten!

Nun ja - vielleicht ist es nicht der richtige Datensatz - vielleicht findet die Verknüpfung über einen anderen Schlüssel statt, als du meinst, vielleicht sind weitere Verknüpfungen definiert. Oder die Kombobox ist an die falsche Spalte gebunden. Das ganze ist aus der Entfernung schwer zu beurteilen.

Reinhard

Hallo!

Nun ja - vielleicht ist es nicht der
richtige Datensatz - vielleicht findet
die Verknüpfung über einen anderen
Schlüssel statt, als du meinst,
vielleicht sind weitere Verknüpfungen
definiert. Oder die Kombobox ist an die
falsche Spalte gebunden.

Nach meinem Verstaendnis ist eigentlich alles richtig, aber das muss ja nichts heissen…

Fehlermeldung:
You can’t add or change a record because a related record is required in table . (Error 3201)

Beschreibung:
You tried to perform an operation that would have violated referential integrity rules for related tables. For example, this error occurs if you try to change or insert a record in the „many“ table in a one-to-many relationship, and that record doesn’t have a related record in the table on the „one“ side.
If you want to add or change the record, first add a record to the „one“ table that contains the same value for the matching field.

Diese Fehlermeldung duerfte eigentlich gar nicht auftreten, da der Wert im „one“ table ja drin ist. Ich hatte diese Fehlermeldung schon mal, es hat dann funktioniert, als ich die referentielle Integritaet entfernt habe. Dies hat aber hier auch nicht geholfen.

Es treten seltsame Phanomaene auf: Die DB besteht aus zwei Teilen, der Daten-DB mit den Tabellen und der Code-DB mit Forms, Queries, Reports, Code und Verknuepfungen zu den Tabellen in der Daten-DB. In der Daten-DB kann ich den Wert auswaehlen und speichern.

Wenn ich dies jedoch in der Code-DB in der verknuepften Tabelle oder ueber das Formular machen will, kommt die Fehlermeldung! Auch sind die Aenderungen, die ich in der Daten-DB gemacht habe nicht mehr vorhanden, wenn ich die Vernknuepfung zur Tabelle oeffne.

Ausserdem ist mir aufgefallen, dass sich die Beziehungsansicht in der Code-DB nicht mehr oeffnen laesst, Access stuerzt einfach ab, wenn ich den Punkt auswaehle.

Tanja *immer noch mit Access kaempfend

Das sieht sehr nach einer maroden Datenbank aus - am besten importierst du mal die komplette Frontend-Datenbank (ohne Beziehungen!) in eine leere Datenbank, und schaust, ob das Problem weiterhin besteht. Gelegentliches Reparieren / Komprimieren der Datenbank kann auch nicht schaden. Wenn das nicht hilft, würde ich das gleiche mal bei der Backend-Datenbank versuchen (allerdings MIT Beziehungen!). Die Beziehungen sollten nur in der Backend-Datenbank definiert sein! Ansonsten würde ich nochmal schauen, ob es vielleicht ausser dem Primärschlüssel noch weitere eindeutige Indizes auf der Tabelle gibt. (Die Fehlermeldung sollte dann aber eigentlich eine andere sein…)

Reinhard

Hallo!

Das sieht sehr nach einer maroden
Datenbank aus

So war es dann auch. Bevor ich Deine Tips ausprobiert habe, habe ich zunächst in der Frontend-Datenbank sämtliche Links zu den Tabellen der Backend-Datenbank gelöscht und danach neu eingefügt. Dann ließ sich der neue Eintrag problemlos in die Combobox einfügen und auch speichern! Mal wieder typisch M$!

Gelegentliches
Reparieren / Komprimieren der Datenbank
kann auch nicht schaden.

Ja, mache ich regelmäßig.

Die Beziehungen
sollten nur in der Backend-Datenbank
definiert sein!

Das war noch von meinem „Vorgänger“ (ich wußte das aber bis jetzt auch nicht). Die Beziehungstabelle in der Frontend-Datenbank läßt sich nun auch wieder öffnen, ohne dass Access abstürzt.

Vielen Dank noch mal Deine Hilfe.

Tanja