Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Fizzo361 am Juli 28, 2014, 11:51:55

Titel: Fehler 3022, Error DB Access 2010 Unklarheit
Beitrag von: Fizzo361 am Juli 28, 2014, 11:51:55
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
Titel: Re: Fehler 3022, Error DB Access 2010 Unklarheit
Beitrag von: MaggieMay am Juli 28, 2014, 12:47:43
Hallo,

die Antwort auf deine Frage dürfte in der Tabellendefinition zu finden sein.
Titel: Re: Fehler 3022, Error DB Access 2010 Unklarheit
Beitrag von: Fizzo361 am Juli 28, 2014, 12:55:30
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?
Titel: Re: Fehler 3022, Error DB Access 2010 Unklarheit
Beitrag von: MaggieMay am Juli 28, 2014, 13:39:03
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.
Titel: Re: Fehler 3022, Error DB Access 2010 Unklarheit
Beitrag von: Fizzo361 am Juli 28, 2014, 13:53:33
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.
Titel: Re: Fehler 3022, Error DB Access 2010 Unklarheit
Beitrag von: MaggieMay am Juli 28, 2014, 14:35:09
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.
Titel: Re: Fehler 3022, Error DB Access 2010 Unklarheit
Beitrag von: DF6GL am Juli 28, 2014, 14:50:29
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...
Titel: Re: Fehler 3022, Error DB Access 2010 Unklarheit
Beitrag von: Fizzo361 am Juli 29, 2014, 08:50:19
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
Titel: Re: Fehler 3022, Error DB Access 2010 Unklarheit
Beitrag von: MaggieMay am Juli 29, 2014, 11:28:07
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)
Titel: Re: Fehler 3022, Error DB Access 2010 Unklarheit
Beitrag von: Fizzo361 am Juli 29, 2014, 11:56:40
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?
Titel: Re: Fehler 3022, Error DB Access 2010 Unklarheit
Beitrag von: MaggieMay am Juli 29, 2014, 12:56:04
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?
Titel: Re: Fehler 3022, Error DB Access 2010 Unklarheit
Beitrag von: Fizzo361 am Juli 29, 2014, 13:13:01
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
Titel: Re: Fehler 3022, Error DB Access 2010 Unklarheit
Beitrag von: MaggieMay am Juli 29, 2014, 13:52:11
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.
Titel: Re: Fehler 3022, Error DB Access 2010 Unklarheit
Beitrag von: Fizzo361 am Juli 29, 2014, 14:32:30
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