PDA

Vollständige Version anzeigen : 1:n Beziehung


se7en
03.08.2001, 13:30
Hallo Leute, irgendwie finde ich das komisch was Access da macht. Vielleicht kann mir das einer erklären:

tbl_Kunde
Kundenummer (Primärschlüssel)
...
...


tbl_Angebot
Angebot_ID (Primärschl.)
Kundenummer
...
...

So die Kdn.Nr. in tbl_Kunde mit der Kdn.Nr. in tbl_angebot ist eine 1:n-Beziehung.
Aber wenn ich jetzt daten in tbl_Angebot eingeben will, sagt mir access "Der Datensatz kann nicht hinzugefügt oder geändert werden, da ein Datensatz in der Tabellle tbl_Kunde mit diesem Datensatz in Beziehung stehen muß. (Fehler 3201)

Äh...wieso das? :eek:

Ich hab noch ne andere Tabelle
"tbl_Rechnung"
Rechnungnummer
Kundennummer
...
...

und dort ist das genau dieselbe Beziehung, UND ES FUNKTIONIERT ! Hä Billy, hän deine Programmierer wieder große Sche.... baut :D

Bitte helft mir.

A.S.
03.08.2001, 13:41
Hallo se7en,

ich nehme an das Du in das Feld Kundennummer dann Deine eigene Kundennummer eingegeben hast und keine Nummer aus dem entsprechenden ID-Feld.

Beispiel tblKunden
<font face="Courier"
ID KDNR Name
01 A723815 Meier
02 A723816 Müller
03 D723817 Schulze</font>

Solche Tabellenaufbauten gibt es, leider, immer wieder. In der Regel wird die Normalisierung nicht eingehalten oder das Feld so aus der Vergangenheit übernommen "weil die Anwender so weiterarbeiten möchten, bzw. die GF wünscht das die Thematik so weitergeführt wird". Es gibt auch noch wildere Konstrukte mit mehreren Aufteilungen der Schlüssel.

In der tblAufträge hast Du das ID-Feld aus der tblKunden eingebunden versuchst aber die Kundennummer wie der Kunde sie wünscht einzugeben. Lösung: Das ID-Feld als Nachschlagefeld einbinden, wobei die ID-Spalte selbst ausgeblendet ist und die gewohnte Kundennummer eingegeben werden kann.

Geht's bei Dir in die Richtung oder ist das ganze eher profanerer Natur? ;)

------------------
HTH

Arno

Kurt aus Kienitz
03.08.2001, 13:43
Hallo,

Also wenn Du bei der Erfassung des Angebotes keine Kundennummer angiebst, dann verhält sich Access völlig korrekt.

Wahrscheinlich wird bei der Erfassung der Rechnungen die Kundennummer automatisch (z.B. Formularverknüpfung) eingetragen.

se7en
03.08.2001, 13:45
@Arno

Jau genau so siehts aus.
Woher weißt du das eigentlich?
Ich will kein Autowert nehmen weil der immmer 1, 2, 3, 4, 5.... bla bla ist.
Und meine Kundennummern enthalten keine Buchstaben. Mein Kdn-Nr hat 6 Zeichen: 100001 als Beispiel.
Und die Kunden_ID und die Kundennummer sind in einer Tabelle zusammen ein Primärschlüssel.

@Kurt

Nein ich muss die Kunden immer einzeln erfassen

A.S.
03.08.2001, 13:55
Hallo se7en,

woher ich das Weiß? Man hat so seine Erfahrungen und weiß unter welchen Konstellationen diese Fehler auftreten ;)

Aber den Aufbau Deiner Kundentabelle mußt Du mir einmal näher erläutern.... Normalerweise sollte die Kundennummer alleine schon Eindeutig sein!

Gruß

Arno

se7en
03.08.2001, 13:58
Soll ich dir einen Screenshot meiner Beziehungen schicken?

A.S.
03.08.2001, 14:00
Eine DB mit den beiden Tabellen reicht mir ;)

se7en
03.08.2001, 14:04
ICh möchte dir aber die DB nicht geben :rolleyes:

A.S.
03.08.2001, 14:04
PS A97!!!

se7en
03.08.2001, 14:06
Hab dir eMail geschickt.

A.S.
03.08.2001, 14:12
Schick bitte noch ein Snapshot der tblKunde und der tbl_Angebot im Entwurfsmodus hinterher.

A.S.
03.08.2001, 14:15
Außerdem: Wie sieht das inhaltliche Zusammenspiel der Felder Kunden_ID und Kundennummer aus?

Gib mal bitte ein paar Datensätze an und erläutere mir die Schlüsselzusammensetzung...

se7en
03.08.2001, 14:27
Ok jetzt hab ich dir die DB doch geschickt. :mad: :p

se7en
03.08.2001, 14:49
Vielen Dank - dass du sogar anrufst ;) :D

A.S.
03.08.2001, 15:00
Lösung: Die Felder müßen natürlich an die entsprechende Spalte der Herkunft gebunden sein, mit denen sie Verknüpft werden sollen.

1. Gehe in den Entwurf der tblAngebot.
2. Gehe in das Feld Kundennummer
3. wechsle in das Register "Nachschlagen"
4. Stelle die gebundene Spalte auf 2
5. wechsle in das Feld Interessentennummer
6. verfahre wie unter 2. und 3. für dieses Feld

Danach sollte es mit der Herstellung der Beziehungen und der referentiellen Integrität auch klappen.

Gruß

Arno

se7en
03.08.2001, 15:16
Ich werde es versuchen.
Ich danke dir.
Schönes WE.