Office: (Office 2016) On Error wird immer ausgeführt

Helfe beim Thema On Error wird immer ausgeführt in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; von LWetzold Achso es handelt sich um eine Combobox. Wieso braucht es in einer Combobox eine Fehlerbehandlung zur Vermeidung der Eingabe doppelter... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von User, 22. August 2020.

  1. On Error wird immer ausgeführt


    Wieso braucht es in einer Combobox eine Fehlerbehandlung zur Vermeidung der Eingabe doppelter Werte?

    Biete in der Abfrage, die der Combobox zugrunde liegt, die bereits vorhandenen (also zu vermeidenden) Werte gar nicht erst zur Auswahl an.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  2. Du hast aber auch (bisher) NICHT den Code verfolgt, der hier geboten wurde!
    Vergleich doch mal selber!!!

    Also erzähle hier keinen Käse!
     
    fraeser, 24. August 2020
    #17
  3. Schau doch Deinen Code aus #9!!!!!!!!!
     
    fraeser, 24. August 2020
    #18
  4. On Error wird immer ausgeführt

    Hallo LWetzold,

    ist es wirklich so schwer? Oder nur einer der sprichwörtlichen Momente mit den Bäumen, die den Blick auf den Wald verdecken *Smilie
    Bitte schau Dir #4 und #7 nochmals genau an.
    Die zweite Zeile lautet stets "On Error Goto SprungAdresseBeiError". Die sorgt dafür, daß bei Auftreten eines Fehlers (innerhalb der Prozedur) zu dieser Adresse gesprungen wird. Die Sprungadresse ist in der Regel im Endbereich der Prozedur und beinhaltet den Codeabschnitt, der als Errorhandler bezeichnet wird. Das häufigste Element dort ist eine MsgBox, die über den Error informiert.

    Ist die Prozedur so aufgebaut, wie in Deinem Beispiel in #1, dann wird der Codeabschnitt mit dem Errorhandler aber auch ohne Error irgendwann erreicht - und natürlich auch ausgeführt. Es liegt jedoch in der Natur der Sache, daß dies nicht beabsichtigt ist. Daher findest Du jeweils vor der Sprungadresse des Errorhandlers das Commando "Exit Sub". Dann endet die Ausführung an dieser Stelle.
    Ich hoffe, es ist nun etwas klarer?
    Übrigens, die Empfehlung, sich über den Resume-Befehl zu informieren, kann ich nur unterstreichen.

    Am Rande:
    Ich empfehle Dir, im Setup Deines Forumaccounts eine Signatur hinzuzufügen, in der Du Deinen Vornamen oder irgend einen Nickname unter den Grüßen anführst. Wir sprechen uns hier nur ungern mit dem Familiennamen an.
     
    Frank200, 24. August 2020
    #19
  5. Deine Lektüre nich nur Lesen und Abschreiben!
    Du musst das auch Verstehen!

    Erst dann kannst Du es Anwenden!!!

    Verurteile deshalb nicht gleich dieses Forum!
     
    fraeser, 24. August 2020
    #20
  6. Guten Morgen,

    ich versuche es jetzt nochmal und stelle euch den ganzen Code zur Verfügung. Zur Ausgangslage: Zur Darstellung habe ich das einfachere Formular gewählt, in dem der neue Wert angelegt wird. (Im "größeren" Formular ist das Feld eine Combobox zum Auswählen. Beim einfachen Formular habe ich drei Felder. Das erste ist ein Textfeld mit Index ohne Doppelung. Hier soll ein neues Kürzel vergeben werden. Das zweite ist das Auswahlfeld zur Auswahl der Adresse. Das dritte ist zur Information und optional.

    Die Speichern Schaltfläche ist mit Makro programmiert (weil es für mich als Anfänger (ich habe bisher vielleicht insgesamt 300 Stunden mit Access und VBA gearbeitet, daher vielleicht auch mein fehlendes Verständnis)

    Das ist der vollständige Code für das Formular:

    Code:
    Im Anhang ist die Meldung, die beim Speichern ausgelöst wird. Also die, die ich auch möchte. Der Fehler bei der EIngabe im Feld Mandantenkürzel wird allerdings nicht ausgeführt, trotz Exit Sub vor dem ErrHandler (ich habe es so verstanden, dass es VOR dem Error Handler stehen muss, damit der Fehler nicht kontinuierlich ausgeführt wird.

    Lösche ich allerdings das Makro beim Speichern und gebe stattdessen
    Code:
    kriege ich die Standardmeldung von Access statt meiner eigenen.

    Nehme ich beim Mandantenkürzel das "Exit Sub" vor dem Error Handler raus, wird der Fehler immer angezeigt (warum habe ich verstanden da der Code durchläuft).

    Meine Frage ist,
    a)
    wieso wird die richtige Meldung beim Makrospeichern angezeigt beim vba-code aber nicht?
    b)
    wo muss ich Exit sub richtig positionieren, damit der Fehler nur bei Auftritt angezeigt wird und warum? Vielleicht kann es mir jemand in einfachen Worten erklären, offensichtlich verstehe ich die Ausführen meiner Lektüre nämlich nicht.

    PS: Danke für den Hinweis, hatte es gestern schon kurz gesucht aber nicht auf die Schnelle gefunden *Smilie
     
  7. Ich habe es so verstanden, dass Resume bedeutet, die Anweisung wird nach der Fehlerauslösenden Prozedur weiter ausgeführt. Next bedeutet, dass die Anweisung direkt nach der fehlerauslösenden Prozedur weiter ausgeführt wird. Es scheitert jedoch daran, dass ich das nicht praktisch umsetzen kann, da ich schlichtweg nicht weiß, was den Fehler auslöst. Nochmal: ich bin Anfänger und mache das nur nebenbei eigentlich bin ich Wirtschaftsberaterin und habe mir ALLES selbst beigebracht, also habt bitte Nachsicht, wenn ich die Dinge, die für ein einfach erscheinen, nicht auf Anhieb verstehe. und nein, ich verurteile nicht das gesamte Forum, da es mir schon viel geholen hat.
     
  8. On Error wird immer ausgeführt

    Das habe ich mir auch schon überlegt, aber damit bin ich heillos überfordert und habe gar keine Ahnung, wie ich das realsieren kann. In einem Formular (zur Anlage) ist es ein Textfeld, in einem anderen Formular (zur Auswahl für einen neuen Datensatz) ist es ein Combofeld zur besseren Anwendbarkeit für die Nutzer. wie würde man das denn realisieren, meine einzige Idee wäre über eine Abfrage..?
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  9. Als Umsetzung dazu würde man eine Inkonsistenzprüfung vornehmen.
    A wäre die vollständige Menge, vermutlich Deine bisherige Tabelle/Abfrage. B wäre die Menge der bereits in der Zieltabelle vorhandenen Einträge.

    Ansonsten: Programmsteuerung über Fehler (wie oben) lasse ich gerne links liegen. Tendenziell bemühe ich mich, fehlerfrei zu programmieren, also schauen und prüfen und dann erst abgeleitet handeln (das ist auch beim Autofahren günstiger als eine Fehlerbehandlung).
    Eine Fehlerbehandlung dient dann "nur" der Begegnung mit unerwarteten (unvorhersehbaren) Fehlern.

    Man könnte also mit Aktualisierung des Feldinhaltes prüfen, ob es diesen Wert schon in der Zieltabelle gibt und somit ein Speichern zu einem ungewünschten Duplikat führen würde:
    Code:
    Wenn im Form_BeforeUpdate sowieso Prüfungen erfolgen, könnte man auch die Duplikatprüfung dort, also vor dem unmittelbaren Speichern des Datensatzes, vornehmen und somit das Speichern ggf. abbrechen.
     
  10. Also ich habe mittlerweile den Fehler gefunden und es lag daran, dass beim Speichern mittels vba-Code der Fehler über "Form_Error" nicht abgefangen werden kann. Dieser Code fängt keine Laufzeitfehler von vba ab (https://docs.microsoft.com/de-de/off...ss.form.error).
    Deswegen funktionierte die Fehlerüberprüfung, wenn über Makro gespeichert wurde. Der code

    Code:
    ist also immer nur dann anzuwenden, wenn der Fehler nicht durch VBA erzeugt wird sondern durch Makros.

    Wenn die Prüfung dennoch stattfinden soll (wie in meinem Fall) muss der Fehler mittels On Error Goto abgefangen werden und zwar genau in der Prozedur, wo der Fehler erzeugt wird. In dem Fall beim speichern. Richtig ist also der Code

    Code:
    Hier war also der Code auch richtig, aber nicht im richtigen Ereignis eingestellt, da bei AfterUpdate noch nicht in der Tabelle geprüft wird, ob der Datensatz den Indexregeln entspricht.

    Also vielen Dank an alle, die mir wirklich versucht haben zu helfen.
     
  11. Hallo,
    oder man prüft mittels DCount ob es die Nummer schon gibt, dann kommt es erst gar nicht zum Fehler.
    Steht schon in #24 von Eberhard.
     
    gpswanderer, 25. August 2020
    #26
  12. Wenn man verschiedene Welten (Objekte) durcheinander mischt und quasi parallel arbeiten lässt, braucht man sich nicht wundern, wenn die eine Welt von der anderen Welt nicht weiß, was sie gerade tut.
     
  13. On Error wird immer ausgeführt

    Genau in dieser Situation hatte es ja funktioniert..nur nicht bei reiner vba-programmierung..
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
Thema:

On Error wird immer ausgeführt

Die Seite wird geladen...
  1. On Error wird immer ausgeführt - Similar Threads - Error ausgeführt

  2. Excel Powerquery: Nach Schließen & Laden Fehlermeldung [DataFormat.Error]

    in Microsoft Excel Hilfe
    Excel Powerquery: Nach Schließen & Laden Fehlermeldung [DataFormat.Error]: Hallo zusammen! Ich bin gerade dabei von einem Teams-Sharepoint-Ordner Daten mit Power-Query abzurufen. Ich lade die Daten über "Daten Abrufen -> Datei -> Sharepoint-Ordner" und gebe dann den...
  3. #WERT! error + Formula Issue (horizontal vs vertikal)

    in Microsoft Excel Hilfe
    #WERT! error + Formula Issue (horizontal vs vertikal): Hallo zusammen, ich bräuchte bitte Hilfe bei einer summenprodukt formel. Ich möchte im angefügten xls in zelle x2 den Wert wiedergeben der sich ergibt, wenn ich im jeweiligen Zeitslot mich...
  4. Gmail Synchronisation: IMAP Error 78754

    in Microsoft Outlook Hilfe
    Gmail Synchronisation: IMAP Error 78754: Hallo zusammen, bin total verzweifelt. Mein Gmail Mail Konto war bisher problemlos in meinem Oulook 2016 eingebunden. Urplötzlich, ohne dass ich was geändert hab, hat das Konto nicht mehr...
  5. Error-Funktion (FMeldung)

    in Microsoft Access Tutorials
    Error-Funktion (FMeldung): Error-Funktion (FMeldung) Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  6. Bei meinen Teams wird statt meinen Gruppen der Error {{::buttonText}} angezeigt.

    in Microsoft Teams Hilfe
    Bei meinen Teams wird statt meinen Gruppen der Error {{::buttonText}} angezeigt.: Ich kann nicht auf Teams Gruppen zugreifen, weil dort wo sie normalerweise angezeigt werden nur folgendes steht: {{::buttonText}} Wie kann ich das beheben? 1845df93-2721-49eb-8c6f-b6ffa6ed9a4b
  7. Teams for private use error

    in Microsoft Teams Hilfe
    Teams for private use error: Hello, when i want to use the Teams app for private use, i have to verify my phone umber twice or more. It pops up a Messeage "Coudn´t switch organization! Please try again."...
  8. MS Teams (Planner App) "Error loading user settings. Please try again. If this continues ...

    in Microsoft Teams Hilfe
    MS Teams (Planner App) "Error loading user settings. Please try again. If this continues ...: Hallo Community/Support Team, Ich folgendes Problem: MS Teams (64 Bit) auf einem RDS (Server 2019) installiert Öffnet man die Registerkarte Planner in Teams erhält man die Fehlermeldung "Error...
  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