Ein Wunderschön liebes Forum,
ich habe aktuell ein Problem in meiner Datenbank, diese Funktion ging eigentlich immer einwandfrei, doch seit 1-2 Tagen spinnt Sie rum...
Mein Problem:
Ich hab ein Formular in dem ich Daten(Mitarbeiter,Schulung,schulen-bis, ist&soll-Status) eintrage anschließend werden diese mittel DirtyCheck geprüft.
Private Function dirtyCheck() As Boolean
If Not IsNull(Me.cbo_schulung) And Not _
IsNull(Me.cbo_mitarbeiter) And Not _
IsNull(Me.txt_planungsdatum) And Not _
IsNull(Me.cbo_ist) And Not _
IsNull(Me.cbo_soll) Then
If Me.Dirty Then Me.Dirty = False
dirtyCheck = True
Else
dirtyCheck = False
End If
End Function
dann erscheint bei folgender Prozedur die Meldung 3022 Änderung an der gewünschten TBL kann nicht...
Private Sub btn_Checkliste_Click()
On Error GoTo Err_btn_checkliste_Click
If dirtyCheck Then
subCheckTrainer 1
Else
MsgBox "Daten nicht vollständig!"
End If
Exit_btn_checkliste_click:
Exit Sub
Err_btn_checkliste_Click:
MsgBox Err.Number & " " & Err.Description
Resume Exit_btn_checkliste_click
End Sub
MsgBox Err.Number & " " & Err.Description hier springt er dann immer hin... ich kann mir nicht erklären warum aufeinmal keine Doppelten Einträge möglich sein sollen, hoffe ich könnt mir irgendwelche Tipps oder Anregungen geben.
Warum und wie kann ich prüfen ob Daten Doppelt angelegt werden können?
Bis dahin viel erfolg und vielen dank
Fizzo361
Hallo,
die Antwort auf deine Frage dürfte in der Tabellendefinition zu finden sein.
Vielen Dank MaggieMay ;)
Folgendes:
habe das gleiche FE auf unterschiedliche BE verlinkt und in BE1 war die TBL_conn_mitarbeiter_schulung noch voll und ich könnte keine Datensätze mehr anlegen.
Bei dem BE2 wo ich die tbl_conn... kompellt geleert habe kann ich nun mit dem selben FE beliebig oft und viele DS erzeugen und anlegen.
In den Tabellendefis hab ich keinerlei unterschied feststellen können
hast du evtl dafür eine Erklärung?
Zitat von: Fehler 3022Die von Ihnen vorgenommenen Änderungen an der Tabelle konnten nicht vorgenommen werden, da der Index, Primärschlüssel oder die Beziehung mehrfach vorkommende Werte enthalten würde. Ändern Sie die Daten in den Feldern, die gleiche Daten enthalten, entfernen Sie den Index, oder definieren Sie den Index neu, damit doppelte Einträge möglich sind, und versuchen Sie es erneut.
Ich halte die Fehlermeldung für deutlich genug und glaube weiterhin, dass die Erklärung in den Tabellendefinitionen und/oder Beziehungen im Backend zu finden sein dürfte.
Hey danke dir für deine Unterstüzung,
also ich hab jetzt nochmal genau im Backend bei der tbl_conn_mitarbeiter_schulung nach der Defi geschaut,
ich hab alle Felder als "Nicht Indiziert" angegeben, bis auf das Feld nr das hat einen AutoWert und ist mit "Ja (Ohne Duplikate)" eingestellt.
Also hat jetzt Access ein Problem mit der Fortlaufendenen Nummer?
Weil dort hab ich datensätze wo in der LFDNR lücken duch löschungen vorkommen.
und alle anderen Daten wie Mitarbeiter und Schulung dürfen alle mehrfach in der Tabelle vorkommen nur die LFDNR muss eindeutig bleiben.
Weiß jetzt leider nicht weiter...
im anhang hab ich mal ein screen von der defi erstellt also alle unteren felder haben die gleichen einstellungen wie auf dem Bild zusehen ist nur
der AutoWert ist mit "Ja (Ohne Duplikate)" eingestellt.
Es wäre möglich, dass die Tabelle "defekt" ist, d.h. dass es tatsächlich nur am Autowert liegt und Access versucht, bereits bestehende Schlüssel einzufügen. Reparieren und Komprimieren hilft hier in der Regel nicht, sondern die Tabelle muss neu erstellt und die alten Datensätze per Anfügeabfrage übernommen werden - inkl. Autowert, sofern dieser für Beziehungen zu anderen Tabellen benötigt wird.
Hallo,
falls tatsächlich ein interner Fehler am Autowert vorliegt, könnte auch ein Import aller Tabellen und sonstiger Objekte in eine neue leere DB helfen...
Hallo und vielen Dank für eure Antworten (Y), ich hoffe und vermute auch das es an dem AutoWert liegt.
Allerdings hab ich jetzt ein kleines Problemchen, ich weiß nicht genau wie ich alles in eine neue Datenbank Importiere, also ich weiß nicht genau wie ich das mit dem Frontend & dem Backend machen soll.
Erstmal alles Tabellen aus dem BE und alle Berichte,Forms etc aus dem Fe in eine gemeinsame neue DB importieren und dann anschließend wieder in Backend & Frontend aufteilen?
Sorry für die etwas lächerliche frage aber ich habs noch nie gemacht ;D
Könnt ihr da nochmal so nett sein und mir eine kleine Hilfestellung geben ob ich mit meinem "plan" auf dem richtigen weg bin ?
Vielen dank euch und ich wünsche euch noch ein super Tag
Grüße
Fizzo361
Hi,
wenn es ein Problem mit der Tabelle gibt, so hat das Frontend damit nichts zu tun und die Reparatur sollte direkt auf dem Backend stattfinden.
Ich würde allerdings die Tabelle neu erstellen, von einem Import würde ich mir keine Reparatur erhoffen, aber du kannst es ja mal ausprobieren.
Ansonsten:
- Backend umbenennen
- neue DB mit dem Namen des alten BE anlegen
- alle Tabellen importieren (inkl. Beziehungen, wenn möglich)
Huhu,
Danke Danke Danke ;)
habs wie im Post zuvor Realisert bekommen und die Datenbank läuft jetzt wieder 1A.
Vielen dank für eure Hilfe, habt mir super geholfen danke
Nur noch eine frage zu dem Fehler kann man sich das so in etwa vorstellen wie bei "C"-Programmierung wenn man bei Strukts den Zeiger auf ein Element verliert.
Oder warum gab es probleme im dem AutoWert?
Wie es konkret dazu kommt, kann ich nicht beantworten, den genauen Zeitpunkt bekommt man ja kaum mit, die Auswirkungen bemerkt man vermutlich erst später.
Ich wüsste aber noch gern, was genau dir geholfen hat. Wird der Fehler tatsächlich durchs Importieren behoben?
Ahh okay verständlich, das erklärt zumindest schon mal das Verhalten des Fehlers.
Ahhm ja also ich habe einfach eine neue DB erstellt dann alle Tabellen vom Backend Importiert, dann noch den rest ausm FE wie Berichte, Forms und Co. anschließend habe ich die DB neu geteilet in BE & FE, nachdem ich dann die Startoption und die Verknüpfung zueinander erstellt habe, leift die Datenbank wieder einwandfrei und ich kann nun wieder beliebig viele Datensatz anlegen.
Also ja das Importieren hat den Fehler behoben.
Und MaggieMay dir wollte ich auch nochmal persönlich danken, warst eine super Unterstüzung - Danke (Y)
So wenn es jetzt nicht noch mehr fragenu nd unklarheiten gibt würde ich mal sagen der Thread ist geschlossen :D
Zitatdann noch den rest ausm FE wie Berichte, Forms und Co. anschließend habe ich die DB neu geteilet in BE & FE
Was hast du dir denn eigentlich dabei gedacht?! Ich sagte doch, dass die Fehlerbereinigung ausschließlich das Backend betrifft. Und wenn du die neue Backend-DB unter dem alten Namen an den alten Speicherort legst, merkt das Frontend gar nichts von der Aktualisierung.
Ahhm ja klar hätte ich das auch so machen können aber, so konnte ich wenigsten auch mal den Assisten für Datenteilung ausprobieren, hab halt einfach etwas rumgespielt und naja es hat geklappt :D