Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Carl am November 01, 2017, 19:26:50

Titel: Kann Datensatz nicht ändern oder löschen
Beitrag von: Carl am November 01, 2017, 19:26:50
Mal ne Frage

Ich arbeite allein in einer Datenbank.

Ab und zu bekomme ich scheinbar spontan bei einem bestimmten Feld die Meldung, dass der DS von jemandem anderen zwischenzeitlich geändert wurde und ob ich das überschreiben möchte. Wenn ich ja wähle:

Erhalte ich in einem Formular scheinbar die Nachricht, dass der DS jetzt nicht geändert werden kann, weil andere Datensätze sich noch darauf beziehen. Danach kommen mehrfach Fehlermeldungen und schließlich bekomme ich die Option, das Formular zu schließen.

Wenn ich das schließe, dann das Formular erneu öffne, funktioniert alles ganz wieder normal, auch in diesem Datensatz.

Auf welchen Fehler könnte so ein Phänomen hindeuten?

Carl

Titel: Re: Kann Datensatz nicht ändern oder löschen
Beitrag von: MzKlMu am November 01, 2017, 19:32:17
Hallo,
das kann vorkommen, wenn ein gebundenes Formular verwendet und trotzdem versucht außerhalb des Formulars Daten zu ändern.
Oder bei einem gebundenen Formular wenn man versucht über ein Recordset zu speichern, es gibt viele Fehlerquellen.
Titel: Re: Kann Datensatz nicht ändern oder löschen
Beitrag von: Carl am November 01, 2017, 19:49:34
Meine erste Idee wäre, alle diese Fehlermeldungen zu unterdrücken und einfach so zu tun, als hätte es niemand bemerkt.

Gibt es da einen Code dazu, der sowas sehr zuverlässig unterdrückt? Eventuell schließt und gleich wieder öffnet?

Carl
Titel: Re: Kann Datensatz nicht ändern oder löschen
Beitrag von: Carl am November 01, 2017, 20:00:40
Ich habe jetzt heraus bekommen, dass ich die Fehler nicht bekomme, wenn ich die Option wähle: "Eigene Änderungen verwerfen" und dann nochmal eingebe. Das würde ich gern automatisieren und ne Meldung ausgeben: "Änderungen mussten verworfen werden, bitte erneut eingeben."

Kann man sowas machen in VBA?

Bei Fehler: Änderung verwerfen und msgbox ausgeben?

Als dem gesamten Formular zugrundeliegender Befehl?
Titel: Re: Kann Datensatz nicht ändern oder löschen
Beitrag von: ebs17 am November 01, 2017, 20:08:56
ZitatGibt es da einen Code dazu, der sowas sehr zuverlässig unterdrückt?
On Error Application.Quit
Titel: Re: Kann Datensatz nicht ändern oder löschen
Beitrag von: MzKlMu am November 01, 2017, 20:10:09
Hallo,
Du machst in der Programmierung bzw. im Steuerungsablauf einen Fehler. Es ist ganz sicher der falsche Weg die Änderungen zu verwerfen und die Daten noch mal einzugeben.
Du musst die Ursache bekämpfen, nicht die Symptome.
Titel: Re: Kann Datensatz nicht ändern oder löschen
Beitrag von: Carl am November 01, 2017, 20:14:11
Da stimme ich Dir zu.

Ich kann es nur nicht. Und ich weiß auch nicht, wo der Fehler liegt. Ich kriegs nicht raus.
Titel: Re: Kann Datensatz nicht ändern oder löschen
Beitrag von: MzKlMu am November 01, 2017, 20:20:53
Hallo,
wie speicherst Du Datensätze ?
Verwendest Du gebundene Formulare ?
Titel: Re: Kann Datensatz nicht ändern oder löschen
Beitrag von: Carl am November 01, 2017, 20:36:04
Nein, die Formulare sind nicht untereinander gebunden. Nur an ihre Quelle eben, Abfragen.

Ich hatte ein UFO auf der selben Abfrage basierend gehabt wir das HF, das habe ich jetzt mal geändert. Mal sehen obs besser wird.

Ich wäre Dir aber wirklich Dankbar über einen Schnipsel, der Fehlermeldungen aller Art unterdrückt und statt dessen das Formular kurz kommentarlos schließt und wieder öffnet.
Titel: Re: Kann Datensatz nicht ändern oder löschen
Beitrag von: MzKlMu am November 01, 2017, 23:01:10
Hallo,
ZitatIch wäre Dir aber wirklich Dankbar über einen Schnipsel, der Fehlermeldungen aller Art unterdrückt
habe ich leider keinen.
Titel: Re: Kann Datensatz nicht ändern oder löschen
Beitrag von: Frithjiof am November 02, 2017, 11:46:04
ZitatIch wäre Dir aber wirklich Dankbar über einen Schnipsel, ....
Mit diesem kleinen Sub sollte das gehen.
Private Sub Form_AfterUpdate()
    On Error GoTo suberr
    Exit Sub
suberr:
    If Err.Number = ??? Then
        Me.Undo
    Else
        MsgBox Err.Number & " " &  Err.Description
    End If
    Err.Clear
End Sub



Titel: Re: Kann Datensatz nicht ändern oder löschen
Beitrag von: MzKlMu am November 02, 2017, 11:56:30
@Frithjiof
Bitte keine vollständigen Beiträge zitieren.
Und verwende für Codedarstellungen die Codetags nicht die Tags für Hoch/Tief gestellt.
Die Codetags verhindern Textverfälschungen (wie z.B. Smileys).
Ich habe es oben geändert.
Titel: Re: Kann Datensatz nicht ändern oder löschen
Beitrag von: Lachtaube am November 02, 2017, 12:21:29
@Frithjiof,

Dein Code-Fragment ist leider völlig sinnfrei.
Titel: Re: Kann Datensatz nicht ändern oder löschen
Beitrag von: Frithjiof am November 02, 2017, 12:40:57
@Lachtaube
Richtig, aber so sollte es gehen

Ein Button <btnOK> ins Formular einfügen und:


Private Sub btnOK_Click()
    On Error GoTo suberr
    DoCmd.RunCommand acCmdSaveRecord
    Exit Sub
suberr:
    If Err.Number = ??? Then
        Me.Undo
    Else
        MsgBox Err.Number & " " &  Err.Description
    End If
    Err.Clear
End Sub


oder so versuchen


Private Sub Form_Error(DataErr As Integer, Response As Integer)
   If  DataErr = ???
        Response = acDataErrContinue
        Me.Undo
    endif
End Sub


Alternativ könnte auch noch sowas versucht werden


Private Sub Form_Dirty(Cancel As Integer)
        on error goto suberr           
        DoCmd.RunCommand acCmdSaveRecord
     exit sub
suberr:
    Cancel = True
End Sub

Titel: Re: Kann Datensatz nicht ändern oder löschen
Beitrag von: Lachtaube am November 02, 2017, 14:15:00
Frithjiof, Du stocherst im Nebel. Ich würde ja einmal abwarten, und Carl die genaue Ausgangslage nebst Code (der vermutlich für die Ungereimtheiten sorgt) berichten lassen.

PS: Bei mehr als einem Pflichtfeld wäre auch der zuletzt gezeigte Code nicht von Erfolg gekrönt.
Titel: Re: Kann Datensatz nicht ändern oder löschen
Beitrag von: Frithjiof am November 02, 2017, 14:49:00
@Lachtaube
Ich wollte zeigen, dass es doch einige Möglichkeiten gibt solche Fehlermeldungen abzufangen. Die Fehlerursache zu finden ist selbstverständlich immer die beste Lösung.

Weiter mit im Nebelstochern: 
Möglicherweise ist die die Datenbank die Carl nutzt auch ODBC-Verknüpft.
Titel: Re: Kann Datensatz nicht ändern oder löschen
Beitrag von: Carl am November 02, 2017, 16:15:14
Zitat von: MzKlMu am November 01, 2017, 23:01:10habe ich leider keinen.

Aber Du bist doch genial. Du könntest einen erfinden, oder? Carl
Titel: Re: Kann Datensatz nicht ändern oder löschen
Beitrag von: ebs17 am November 02, 2017, 17:21:27
Zitateinen Schnipsel, der Fehlermeldungen aller Art unterdrückt
Das ist ein Totschlagargument. Auch wenn man gegen eine Wand gefahren ist, soll ein Neustart erfolgen, als wäre nichts gewesen.

Wenn man das Gleiche tut und wiederholt, werden sich auch die Probleme und Fehler wiederholen. Wenn man das automatisiert, kommt man dann ganz schnell in eine Endlosschleife. Es ist also nicht genial, beliebige Gedanken umzusetzen.

Daher (bisher unkommentiert):
On Error Application.Quit
In Worten: Es wird besser sein, nichts zu tun.
Titel: Re: Kann Datensatz nicht ändern oder löschen
Beitrag von: Carl am November 07, 2017, 17:53:43
Ich habe jetzt erstmal nur noch ein Feld mit "Eingabe erforderlich" eingerichtet, mal sehen ob der Fehler noch auftritt. Kann sein, dass es das schon war.