Oktober 22, 2021, 20:42:45

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Idexfehler in einer Tabelle

Begonnen von yme24, Oktober 08, 2021, 12:04:24

⏪ vorheriges - nächstes ⏩

yme24

Hallo zusammen,

ich hänge gerade an einem Problem, welches ich so nicht erwartet habe.

Ich habe eine "Hilfs"-Tabelle in der ich einzelnen Kunden bestimmte Grenzwerte eines bestimmten chem. Stoffs zuweise. Nach dem PS wird einem Fremdschlüssel KundenID, ein Fremdschlüssel StoffID mit den entsprechenden Werten zugewiesen.
Jetzt ist es zum ersten mal passiert, dass ich einem Kunden einen veränderten Wert zuweisen muss. Dafür habe ich eine simple "gültig von/bis" Routine eingebaut und dachte, dass das Thema damit durch ist.

Wenn ich nun per Formular einem vorhandenem Kunden einen neuen Grenzwert für einen vorhandenen chem. Stoff zuweise, schreit mich Access mit der Fehlermeldung an, dass ich doppelte Werte verwenden würde. (s.Bild)

Da ich den Primärschlüssel als Autowert habe (welcher auch generiert wird) und die Kunden bzw. chem. Stoffdaten über Fremdschlüssel in die Tabelle hole, verstehe ich die Fehlermeldung nicht und hoffe, ihr könnt mir helfen.

Im Bild anbei habe ich mal händisch einen neuen Datensatz in der Tabelle angelegt, damit zu sehen ist, was passiert. Für meine Begriffe habe ich keine doppelten Werte, da der Primärschlüssel hochzählt. Alles danach müsste Access doch egal sein. Außer dem PS sind keine Felder indiziert.

VG,
Martin


Sie dürfen in diesem Board keine Dateianhänge sehen.



MzKlMu

Hallo,
auch andere Felder können "Ohne Duplikate" indiziert sein, nicht nur der PS.
Kannst Du im Indizefenster prüfen.
Gruß
Klaus

yme24

Ah jetzt, Danke Klaus.

Der Kunden Fremdschlüssel war auf PrIndex... keine Ahnung warum.
Hat das was mit den Tabellen-Beziehungen zu tun?

Interessant, dass das bisher nicht zu Reibereien gekommen ist.

Grüße,
Martin

Beaker s.a.

Hallo Martin,
Das kann nicht sein, sonst hättest du diesen Fehler schon früher
bekommen, denn du hast mehrere Kunden mit mehreren Einträgen.
Also ist entweder die StoffID_F mit einem eindeutigen Index belegt,
was aber auch nicht sein kann. Es gibt da wohl einen Mehrfelderindex
über K- und StoffID_F.
Der reicht in dem Fall nicht, - ich würde da einen der Termine mit
aufnehmen. Das würde dann mehrfaches Vorkommen eines Stoffes für
einen Kunden ermöglichen und gleichzeitig doppelt erfasste Zeiträume
verhindern.

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

MzKlMu

Hallo,
ZitatDer Kunden Fremdschlüssel war auf PrIndex...
Dann hattest Du eine 1:1 Beziehung.
Gruß
Klaus

Beaker s.a.

Hallo Klaus,
Wo? Das ist doch eine n:m.
Das Bild zeigt nur zwei DS, die in den FK-Feldern übereinstimmen, -
der letzte und der neue.

Da kann für mich nur der erwähnte Mehrfelderindex die Fehlermeldung
ausgelöst haben.

Das Ganze ist bis jetzt nicht aufgefallen, da der neue DS der erste mit
einem abweichenden Gültigkeitszeitraum für eine Beziehung Kunde/
Stoff ist.

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

MzKlMu

@ekkehard
hast recht, ich habe nur die beschreibung gelesen, hätte vieleicht doch das Bild ansehen sollen. ::)
Gruß
Klaus

yme24

Vielen Dank für eure Hilfe!

Mit herausnehmen des PrIndex beim Kundenfremdschlüssel, kann ich bisher alles realisieren.
Negative Seiteneffekte habe ich noch keine bemerkt.

Die Gültigkeit als PrIndex schaue ich mir mal an... inzwischen muss ich aber erst einmal ein anderes Formular ändern weil ein Kollege da gerne noch etwas Neues eingeben möchte. Kleiner Finger, ganze Hand... *seufz*

VG,
Martin

MzKlMu

Hallo,
ZitatPrIndex beim Kundenfremdschlüssel,
Das Fremdschlüsselfeld darf bei 1:n kein PS sein.
Gruß
Klaus

Beaker s.a.

ZitatMit herausnehmen des PrIndex beim Kundenfremdschlüssel, kann ich bisher alles realisieren.
Dann kann ich mir nur vorstellen, das die Tabelle einen zusammen-
gesetzten PK hatte (ÜWertID & ÜwKundenID_F). Oder vielleicht sogar
über alle drei Schlüsselfelder.
Der kann aber wiederum auch nicht der Auslöser des Fehlers sein, da
die ÜWertID ein AutoWert ist, und es daher keine Doppelungen mit den
beiden Schlüsseln geben kann.
Besser ist ein einzelner PK aber allemal.
Hast du dir denn die angelegten Indices überhaupt mal angeschaut?
Für mich bleibt der beschriebene Mehrfelderindex weiterhin der
Verursacher des Fehlers.

gruss ekkehard

P.S.
ZitatAußer dem PS sind keine Felder indiziert.
Doch, die FK werden beim Anlegen einer Beziehung automatisch von
Access angelegt. Sie werden jedoch nicht in der Index-Liste der
Entwurfsansicht angezeigt.
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.