Office: (Office 2016) Laufzeitfehler 3022

Helfe beim Thema Laufzeitfehler 3022 in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, kann ich diesen Laufzeitfehler (3022) unterdrücken und durch eine MsgBox ersetzen? Den Code nehme ich zum übertragen eines Textfeldes... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Isabell, 29. Februar 2020.

  1. Laufzeitfehler 3022


    Hallo zusammen,
    kann ich diesen Laufzeitfehler (3022) unterdrücken und durch eine MsgBox ersetzen?
    Den Code nehme ich zum übertragen eines Textfeldes (Tab1) in eine andere Textfeld (Tab2). Ist auch Funktionsfähig!

    PHP:
             Private Sub Befehl284_Click()
    Dim db As DAO.Database
    Dim rs 
    As DAO.Recordset

    Set db 
    CurrentDb()
    Set rs db.OpenRecordset("tabAuswahlG_Gruppe"dbOpenDynaset)
    rs.AddNew ' An dieser Stelle wird ein neuer Datensatz initiert
    rs!Bereitschaftsgruppe = Me!Bereitschaftsgruppe ' 
    Hier wird der Wert
    übergeben
    rs
    .Update  Hier wird der Datensatz erst geschrieben
    rs
    .Close
    Set rs 
    Nothing
    db
    .Close
    End Sub
    :)
     
    Isabell, 29. Februar 2020
    #1
  2. Hi,
    so:

    Code:
     
    ReginaR, 2. März 2020
    #2
  3. Hallo Isabell,

    hier eine Variante für eine Fehlerbehandlung:
    Code:
    Ich habe mal die Variable DB herausgeworfen, weil das hier nicht unbedingt nötigt ist. Außerdem solltest du niemals ein Objekt mit Close schließen, welches du nicht selber geöffnet hast. Also db.close in deinem Beispiel sollte man so nicht machen! Es hätte gereicht, die Referenz einfach auf Nothing zu setzen, um klarzustellen, daß diese Referenz nicht mehr benötigt wird, was du aber auch nicht gemacht hast.

    Gruß Ulrich
     
    knobbi38, 2. März 2020
    #3
  4. Laufzeitfehler 3022

    Danke euch zwei für die schnelle Hilfe!!!
    Der Code von Ulrich funktioniert einwandfrei, danke!!
    Bei der Ergänzung von Regina taucht der Fehler weiterhin auf, trotzdem ein Dankeschön!!
     
    Isabell, 2. März 2020
    #4
  5. Hallo Isabell,,
    ...wenn man einen Fehler ausblendet ist schon klar, dass du keine Feetback davon bekommst.
    Den Fehler kannst genauso in ReginaR ihrem Code unterdrücken und auch in deinem Code *wink.gif*
    Somit könntest auch gleich "On Error Resume Next" schreiben, das hat die gleiche Wirkung.

    PS: man sollte aber schon vorher dafür Sorge tragen, dass kein Fehler auftreten kann.
     
    Kyron9000, 2. März 2020
    #5
  6. \@Alfred:
    die Laufzeitfehlermeldung soll nicht unterdrückt, sondern durch eine eigene Meldung ersetzt werden. Mit "On Error Resume Next" hat das nichts zu tun.

    Gruß Ulrich
     
    knobbi38, 2. März 2020
    #6
  7. Nein!
    Einen Fehler sollte man untersuchen und vermeiden!!!
    Ich habe mir bisher Deinen/Euren Code nich angeschaut.

    Eine Fehler-Unterdrückung spiegelt immer eine falsche Programmierung wieder!

    Hab diese Woche keine Zeit - schaue mir das aber danach gerne an.
     
    fraeser, 2. März 2020
    #7
  8. Laufzeitfehler 3022

    Eben noch mal mit einem Auge drübergeschaut....

    Das ist doch alles völliger Humbuk!

    Erkläre mal genau, was Du machen willst - und von wo aus!
     
    fraeser, 2. März 2020
    #8
  9. \@Ulrich,

    also das ist mir auch klar, das machst du aber nicht...
    Code:
    Das was ReginaR zeigt ist doch ok!
    Er verwendet jetzt deinen Code und es wird kein Fehler mehr angezeigt...
    was ja auch logisch ist.
     
    Kyron9000, 2. März 2020
    #9
  10. Hallo,
    dann mach es doch so:
    Code:
    Da muss die Error Routine gar nicht angesprochen werden.
    Gruß
    Jo
     
  11. Hallo,

    @Alfred:
    in der Fehlerbehandlung steht extra TODO. Ich gehe mal davon aus, daß Isabell duchauch in der Lage ist, eine entsprechende Ausgabe nach Ihren Wünschen dort einzufügen. Wie gesagt, von Fehlermeldung unterdrücken kann keine Rede sein.

    @Jo:
    Im Prinzip hast du natürlich Recht, wenn zunächst eine Fehlervermeidung versucht wird, was in deinem Beispiel auch klar wird. Aber nicht immer ist das so gewünscht, z.B. wenn der Umstand eher selten auftritt, die Tabellen viele Datensätze enthalten, die Netzanbindung langsam ist usw. Dann kann ein FindFirst durchaus "teuer" werden und die andere Lösung mit einer Fehlerbehandlung wird interessant und ist genauso legitim. Hier muß abgewogen werden.

    Interessanter wäre jetzt gewesen, die Fehlerbehandlung noch mit einem .CancelUpdate() zu ergänzen und die Aktualisierung des Recordsets wirklich sauber abzubrechen.

    Gruß Ulrich
     
    knobbi38, 3. März 2020
    #11
  12. Ich bin auch dafür, Fehler zu vermeiden (fehlerfrei zu programmieren?!) statt Fehler zu behandeln und zu melden. Mein Auto freut sich darüber jedes Mal, wenn ich in die Garage einfahre.
    Code:
    Ein Filter ist effizienter als ein FindFirst und zuverlässig für eine Prüfung.
    Ein gefilterte Abfrage in das Recordset zu laden ist effizienter als die ganze Tabelle zu laden. Bei Vorhandensein und Nutzung eines Index auf den Filter würde es tatsächlich stattfinden, dass nur die gefilterten Datensätze geladen werden.

    Also prüfen und nur handeln, wenn kein Duplikat erzeugt wird.
    Eine Fehlerbehandlung sollte sich UNERWARTETEN Fehlern widmen oder solchen Fehlern, die man zwar erwarten, aber technisch nicht prüfen kann.

    Daneben kann ein versuchtes Neuanlegen eines Datensatzes mit Fehler trotzdem einen Autowert "verbrauchen" und somit eine "Lücke" hinterlassen. Wer das nicht alles als bleibenden Fehler werten wird ...

    @Ulrich:
    Eine Fehlerbehandlung, die nur genau einen Fehler berücksichtigt, ist hinsichtlich des Kontextes zu unerwarteten Fehlern etwas unglücklich.
     
  13. Laufzeitfehler 3022

    \@Eberhard:
    Manchmal sieht man den Wald vor lauter Bäumen nicht... aber du hast es auf den Punkt gebracht. *cool.gif*

    Güße Ulrich
     
    knobbi38, 3. März 2020
    #13
Thema:

Laufzeitfehler 3022

Die Seite wird geladen...
  1. Laufzeitfehler 3022 - Similar Threads - Laufzeitfehler 3022

  2. VBA:Laufzeitfehler beim Einlesen in Variable

    in Microsoft Excel Hilfe
    VBA:Laufzeitfehler beim Einlesen in Variable: Hallo Excel Freaks, ich habe eine Frage, ein Problem wo ich nicht mehr weiter weis.... In eine Exceldatei kopiere ich mir über Makro auf ein Tabellenblatt von anderen Exceldateien das...
  3. Datenbank bleibt gesperrt - laccdb wird nicht gelöscht

    in Microsoft Access Hilfe
    Datenbank bleibt gesperrt - laccdb wird nicht gelöscht: Hallo zusammen, ich betreue eine Datenbank mit getrenntem Back- und Frontend, die in einem Firmennetzwerk auf dem Netzlaufwerk liegt. Ich entwickle sie lokal weiter, ohne vor Ort zu sein, wobei...
  4. Access Laufzeitfehler 3048

    in Microsoft Access Hilfe
    Access Laufzeitfehler 3048: Bevor ihr Euren Code durchrackert, weil Access plötzlich Probleme macht: Die Version 2408 (Build 17928.20114) dürfte ein wenig misslungen sein! Access bleibt nach dem Schließen im Taskmanager...
  5. Laufzeitfehler 9 VBA

    in Microsoft Excel Hilfe
    Laufzeitfehler 9 VBA: Nschdem ich die Office Version von 2010 auf 2019 aktualisiert habe wird mir der Laufzeitfehler 9 ausgegeben. Das ist der Code Sub FiberCollect() Dim NumRows As Long 'letzte celle Dim Counter As...
  6. VBA Laufzeitfehler 9

    in Microsoft Excel Hilfe
    VBA Laufzeitfehler 9: Guten Abende an alle VBA Profi, Ich lerne gerade Programmierung mit VBA und habe fast null Ahnung von Fehlern ich habe folgenden Probleme. ich einen xlsm Datei versuche eine Tabelle mit codename...
  7. [VBA] .Documents.Open -> Laufzeitfehler 91

    in Microsoft Excel Hilfe
    [VBA] .Documents.Open -> Laufzeitfehler 91: Hallo zusammen, bekomme aktuell den Laufzeitfehler 91 an der Codestelle, wo ich versuche ein Word Dokument zu öffnen (Set wdDoc = wdApp.Documents.Open(wbBook.Path & "\" & stWordDocument)), das...
  8. MS Access Lauftzeitfehler "2501"

    in Microsoft Access Hilfe
    MS Access Lauftzeitfehler "2501": Hallo Liebe Office Gemeinde, Ich habe ein Problem mit meinem MS Access, wir haben unsere MA Liste in einer Access DB. Wenn man in unserem Formular auf "Drucken MA" klickt dann wird eine PDF...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden