September 19, 2020, 13:39:06

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Systemabsturz beim ausführen von VBA code

Begonnen von Daneli, Juni 28, 2020, 11:43:06

⏪ vorheriges - nächstes ⏩

Daneli

Hallo Leute
Ich habe seit einigen Wochen das Problem, dass ein code in meiner Datenbank einen Fehler auslöst, den ich nicht abfangen kann. Wenn der code ausgeführt wird kommt die Fehlermeldung keine Rückmeldung, und nach einigen sek will Access ein backup erstellen.
Vielleicht weis von euch jemand wo das Priblem liegen könnte
Die Daten bank ist mehrere Jahre problemlos gelaufen, bis ungefähr am 10 Juni.
Ich habe den Code der das Problem auslöst für euch kopiert:
Vielen Dank für euer Hilfe
Gruss Dani

Set rsf = Me.RecordsetClone
rsf.MoveFirst
Do Until rsf.EOF
rsf.Edit
With rsf
    rsf!AnfangsbestandEier = Eieranfang
    rsf!Tagesproduktion = rsf!EndbestandEier - rsf!AnfangsbestandEier + rsf!Fischereier + rsf!Bruteier + rsf!Konsumeier + rsf!WaschUndBrucheier + rsf!DirektVermarktung + rsf!Aufschlageier
    Eieranfang = rsf!EndbestandEier
    rsf!EierImKühlraum = rsf!EndbestandEier
    rsf!EierBeimFörderband = 0
    rsf!EierBeimWaschtisch = 0
    rsf!AnfangsbestandHennen = Hennen1
    rsf!AnfangsbestandHähne = Hähne1
    rsf!EndbestandHennen = rsf!AnfangsbestandHennen - rsf!AbgängeHennen
    rsf!EndbestandHähne = rsf!AnfangsbestandHähne - rsf!AbgängeHähne
    rsf!LegeleistungIstHennen = rsf!Tagesproduktion / rsf!EndbestandHennen
    rsf!LegeleistungAnfangsHennen = rsf!Tagesproduktion / Hennen
    rsf!AlterTage = rsf!ProduktionsdatenDatum - Einstallen + Lebenstage
    rsf!Woche = Int(rsf!AlterTage / 7)
    If IsNull(rsf!Eigewicht) Or rsf!Eigewicht <= 0 Then rsf!Eigewicht = Ei Else rsf!Eigewicht = rsf!Eigewicht
    If BTS1 = -1 Then rsf!AuslaufDauer = 7 Else rsf!AuslaufDauer = 0
    If RAUS1 = -1 Then rsf!Weide = 5 Else rsf!Weide = 0
End With
    rsf.Update
    DoCmd.RunCommand acCmdSaveRecord
    Eieranfang = rsf!EndbestandEier
    Eierende = rsf!EndbestandEier
    Ei = rsf!Eigewicht
    DatumSet = rsf!ProduktionsdatenDatum
    Hennen1 = rsf!EndbestandHennen
    Hähne1 = rsf!EndbestandHähne
    rsf.MoveNext
    Z = Z + 1
Loop

PhilS

Zitat von: Daneli am Juni 28, 2020, 11:43:06Ich habe seit einigen Wochen das Problem, dass ein code in meiner Datenbank einen Fehler auslöst, den ich nicht abfangen kann. Wenn der code ausgeführt wird kommt die Fehlermeldung keine Rückmeldung, und nach einigen sek will Access ein backup erstellen.
[...]
Die Daten bank ist mehrere Jahre problemlos gelaufen, bis ungefähr am 10 Juni.
Ist eines der dort beteiligten Felder vom Datentyp Decimal?

Wenn ja, dann wird der Absturz von einem Bug in Access verursacht. Wie in dem verlinkten Text nachzulesen ist, gibt es seit letzter Woche ein Bugfix für dieses Problem.
Access DevTools - Find and Replace
Komfortables Suchen und Ersetzen in den Entwurfseigenschaften von Access-Objekten. In Abfragen, Formularen, Berichten und VBA-Code - Überall und rasend schnell!

Daneli

Hallo Phils
Danke für deine Hilfe.
Ich habe alle Felder die als dezimal eingerichtet waren in Long integer geändert.
Jetzt läuft die Datenbank wieder einwandfrei.
Herzlichen Dank und einen schönen Sonntag
Druss Dani

NeuerMann1978

Hallo,
ZitatIch habe alle Felder die als dezimal eingerichtet waren in Long integer geändert.
Dann sind aber keine Kommastellen mehr möglich. Und alle bisherigen Kommastellen sind auch weg.
Long Integer ist eine Ganzzahl.

Beaker s.a.

Hallo,
ZitatDann sind aber keine Kommastellen mehr möglich
Ist bei Beständen in diesem Fall auch nicht nötig, - Hühner legen
wohl eher keine halben Eier.
Für die Gewichte würde ich "Währung" (Currency) verwenden, denn 4
Nachkommastellen sind dafür ausreichend.
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.