Es können keine Datensätze eingefügt werden, ... (Access)

UNIDESOSTENS, Donnerstag, 19.09.2019, 12:10 (vor 62 Tagen)

Hallo Zusammen!

zwar habe ich schon ähnliche Einträge hier im Forum gefunden und die Lösungen mehr oder weniger ausprobiert (soweit verstanden) leider komme ich trotzdem nicht weiter:

Ich soll eine Datenbank zur Verwaltung von Studenten und Dozenten, sowie besuchten und Angebotenen Kursen und Bestandenen Prüfungen erstellen.

Nun wollte ich ein Formular erstellen, um neue Dozenten anzulegen.

Hierfür habe ich eine "Haupt"-Tabelle: tbl_Dozent (Vorname, Nachname, IDStadt_Privat, IDPlz_Privat, IDStraße_Privat; IDHausnummer_Pivat; IDTitel; IDAnrede; IDPlz_Dienst; IDStadt_Dienst; IDStraße_Dienst; IDHausnr_Dienst)

Entsprechend habe ich dann (neben anderen) die Tabellen:
tbl_Anrede
tbl_Titel
tbl_Hausnr
tbl_Str
tbl_Stadt
tbl_Plz

Die Beziehungen zwischen der "Haupt"-Tabelle zu den jeweilen Tabellen habe ich jeweils Unendlichkeits- zu 1 Beziehungen. (Soll heißen tbl_Donzent hat 11 Unendlichkeits-Endungen, da Tabellen teilweise doppelt verknüpft werden z.B. tbl_Stadt:IDStadt_Privat und tbl_Stadt:IDStadt_Dienst)

In den Formular habe ich nun, bis auf die Felde Vorname und Nachname, Kombinationsfelder eingefügt und damit ich auch (noch nicht in den Tabellen vorhandene Werte eintragen kann) mit einem Code hinterlegt (siehe ganz am Ende dieses Posts.)

Leider erscheint, wenn ich ein neuen Datensatz eintragen will, immer wieder die Fehlermeldung: "Es können keine Datensätze eingefügt werden, der Verknüfpungsschlüssel der Tabelle "tbl_Dozent" ist nicht in der Datengruppe enthalten".

Was mach ich falsch? Wie kann ich das ändern?

Nun, dass war nun ein wenig längere Ausführung, ich hoffe es ist so verständliche.
Vielen, vielen Dank schon mal für eure Hilfe. Ich bin grad echt am Verzweifeln.

Liebe Grüße
Die studentische Hilfskraft


Private Sub Hausnr_Privat_NotInList(NewData As String, Response As Integer)
Dim db As DAO.Database
Dim Rs As DAO.Recordset
Dim Msg As String
Dim NewID As String


On Error GoTo Err_NotInList


' Exit this subroutine if the combo box was cleared.
If NewData = "" Then Exit Sub

' Confirm that the user wants to add the new customer.

' If the user chose to add a new customer, open a recordset
' using the Customers table.
Set db = CurrentDb
Set Rs = db.OpenRecordset("tbl_Hausnr", dbOpenDynaset)

' Ask the user to input a new Customer ID.

NewID = NewData



Rs.FindFirst BuildCriteria("Hausnummer", dbText, NewID)


' If the NewID already exists, ask for another new unique
' CustomerID

' Create a new record.
Rs.AddNew
' Assign the NewID to the CustomerID field.


Rs![Hausnummer] = NewID
' Assign the NewData argument to the CompanyName field.


'Rs![Angebot] = NewData
' Save the record.


Rs.Update

' Set Response argument to indicate that new data is being added.
Response = acDataErrAdded

Exit_NotInList:
Exit Sub
Err_NotInList:
' An unexpected error occurred, display the normal error message.
MsgBox Err.Description & "CSTM"
' Set the Response argument to suppress an error message and undo
' changes.
Response = acDataErrContinue

End Sub


Private Sub Plz_Dienst_NotInList(NewData As String, Response As Integer)
Dim db As DAO.Database
Dim Rs As DAO.Recordset
Dim Msg As String
Dim NewID As String

On Error GoTo Err_NotInList
' Exit this subroutine if the combo box was cleared.
If NewData = "" Then Exit Sub

' Confirm that the user wants to add the new customer.

' If the user chose to add a new customer, open a recordset
' using the Customers table.
Set db = CurrentDb
Set Rs = db.OpenRecordset("tbl_Plz", dbOpenDynaset)

' Ask the user to input a new Customer ID.
NewID = NewData
Rs.FindFirst BuildCriteria("PLZ", dbText, NewID)
' If the NewID already exists, ask for another new unique
' CustomerID
' Create a new record.
Rs.AddNew
' Assign the NewID to the CustomerID field.
Rs![PLZ] = NewID
' Assign the NewData argument to the CompanyName field.
'Rs![Angebot] = NewData
' Save the record.
Rs.Update
' Set Response argument to indicate that new data is being added.
Response = acDataErrAdded
Exit_NotInList:
Exit Sub
Err_NotInList:
' An unexpected error occurred, display the normal error message.
MsgBox Err.Description & "CSTM"
' Set the Response argument to suppress an error message and undo
' changes.
Response = acDataErrContinue

End Sub

Es können keine Datensätze eingefügt werden, ...

Martin Asal @, Montag, 23.09.2019, 10:09 (vor 58 Tagen) @ UNIDESOSTENS

Hallo,

zunächst mal frage ich mich, ob du es mit der Normalisierung nicht sogar übertrieben hast - ich glaube nicht, dass ich das jemals zuvor sagen musste ;-)

HausNr und Straße getrennt in zwei getrennten Feldern wird nur selten benötigt. Das macht man z.B., wenn man gezielt Adressen danach sortieren muss. Diese Feldinhalte sogar noch in separate Tabellen abzulegen, erscheint mir kaum noch sinnvoll. Auch Straße, PLZ und Stadt benötigen nur in den seltensten Fällen separate Tabellen.

Dein Problem ist nun einfach, dass du keinen Datensatz zu einem Dozenten eintragen kannst, wenn nicht schon dessen Stadt, PLZ usw. angelegt sind. Ist ja auch logisch: Wenn die N-Seite fehlt, kann auf der 1-Seite noch kein Datensatz angelegt werden.

Martin

Es können keine Datensätze eingefügt werden, ...

UNIDESOSTENS, Mittwoch, 25.09.2019, 13:01 (vor 56 Tagen) @ Martin Asal

Vielen Dank erstmal!!
Es kommen sicherlich noch ein paar Fragen im Laufe der Zeit
Liebe Grüße

RSS-Feed dieser Diskussion
powered by my little forum