Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: Daneli am Juni 28, 2020, 11:43:06

Titel: Systemabsturz beim ausführen von VBA code
Beitrag von: Daneli am Juni 28, 2020, 11:43:06
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
Titel: Re: Systemabsturz beim ausführen von VBA code
Beitrag von: PhilS am Juni 28, 2020, 13:45:45
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 (https://support.microsoft.com/en-us/office/access-vba-dao-code-may-crash-or-report-incorrect-data-for-decimal-columns-9311f0ab-ac34-40b4-abd7-2aaa01e07fc7?ui=en-us&rs=en-us&ad=us) verursacht. Wie in dem verlinkten Text nachzulesen ist, gibt es seit letzter Woche ein Bugfix für dieses Problem.
Titel: Re: Systemabsturz beim ausführen von VBA code
Beitrag von: Daneli am Juni 28, 2020, 16:01:39
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
Titel: Re: Systemabsturz beim ausführen von VBA code
Beitrag von: NeuerMann1978 am Juni 28, 2020, 16:57:37
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.
Titel: Re: Systemabsturz beim ausführen von VBA code
Beitrag von: Beaker s.a. am Juni 29, 2020, 10:04:57
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