Office: (Office 2003) Haltemodus fallweise unterdrücken

Helfe beim Thema Haltemodus fallweise unterdrücken in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Leute, ich hab öfters schon den Fall gehabt, dass sich bestimmte Prüfungen scheinbar nur über das abfangen einer Fehlernummer realisieren.... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Storch, 3. April 2013.

  1. Haltemodus fallweise unterdrücken


    Hallo Leute,

    ich hab öfters schon den Fall gehabt, dass sich bestimmte Prüfungen scheinbar nur über das abfangen einer Fehlernummer realisieren. Aktuelles Beispiel wäre:
    Code:
    Ist der Modus der Fehlerbehandlung auf 'bei jedem Fehler' bleibt der Code logischerweise in der orangen Zeile hängen, da dort der Fehler hervorgerufen wird, sofern Word nicht geöffnet ist.

    Nun kann man den Modus auf 'Bei nicht verarbeiteten Fehlern' setzen. Das ist IMHO aber nur dann sinnvoll, wenn man die DB zur Nutzung frei gibt, weil es während der Entwicklung der DB IMHO praktischer ist, bei einem Fehler gleich in die entsprechende Zeile zu gelangen. Andererseits sollten Prüfungen wie z.B. die obige eben nicht in den Haltemodus gehen, weil da der Fehler ja gewollt ist.

    Meine Überlegung ist nun, den Modus der Fehlerbehandlung fallweise zu ändern, wie die violetten Zeilen es andeuten.

    Meine Fragen:
    1. Ist das machbar und vor allem wie komme ich per VBA an die Optionen des VBA-Editors ???
    2. gibt es andere Wege um das Ziel zu erreichen?

    Danke im Voraus

    :)
     
    Storch, 3. April 2013
    #1
  2. Hallo,
    diesen Modus benutze ich nur in äußerst seltenen Extremfällen, Standard ist 'bei nicht behandelten Fehlern' und damit komme ich gut zurecht.
    Die Einstellung im Code je nach Belieben hin und her zu switchen halte ich für keine gute Idee.
     
    Anne Berg, 4. April 2013
    #2
  3. Hallo Anne,

    wie hangelst Du Dich denn da zum Fehlerort?

    Ist es nicht praktischer, wenn man über Debuggen-Button direkt dort hingeleitet wird?

    Und nach Belieben finde ich nicht. Mir würde es belieben, Prüfungen wie mein Beispiel so zu vollziehen, das man das Abfangen von Fehlernummern nicht dazu verwendet, dann würde sich auch meine Thematik nicht stellen.
     
    Storch, 4. April 2013
    #3
  4. Haltemodus fallweise unterdrücken

    Ich würde Deinen konkreten Fall nicht über GetObject lösen wenn Dich der mögliche Fehler stört sondern über einen anderen Weg ermitteln ob Word offen ist oder mir gleich eine eigene Instanz mit CreateObject erzeugen.

    Wenn es keinen Grund gibt, eine bereits bestehende Instanz zu verwenden, finde ich die 2te Variante auch eleganter/sauberer, da ich nicht in einem "fremden" Wordobjekt arbeite sondern dann für mich/meinen Code explizit eine eigene Instanz habe.
     
    CptChaos, 4. April 2013
    #4
  5. Hallo Benny,

    als andere Lösung fiele mir im Moment nur ein, über WMI die offenen Prozesse auszulesen oder gibt es Alternativen?

    Es soll übrigens die Möglichkeit bestehen, bei einer geöffneten Wordinstanz die offenen Dokumente einzubeziehen. Und in diesem Fall arbeite ich dann mit der offenen Word-Instanz. Ist keine geöffnet, wird eine eigene erzeugt. Bisher hab ich keine Probleme aber ich lasse mich gerne belehren.
     
    Storch, 5. April 2013
    #5
  6. Wie gesagt, es kann notwendig/sinnvoll sein eine bestehende Instanz zu verwenden.
    So einen Fall hatte ich bisher noch nicht. Was ich aber schon hatte, waren diverse Probleme (falsches Dokument im Zugriff, offene Dialoge, User "pfuscht" mir in den Ablauf (z.B. wird meine Instanz ggf. erst sichtbar wenn mein Code fertig ist um sowas zu verhindern), etc.) beim Zugriff auf eine bestehende Instanz.

    Als Alternative fiele mir adHoc auch nur WMI ein.
    Ansonsten sehe ich auch keinen "groben" Fehler das so wie Du zu lösen.
    Grundsätzlich ist es natürlich nicht schön sowas über eine Fehlerbehandlung zu lösen; aber die Frage ist, was mehr Overhead produziert *wink.gif*
     
    CptChaos, 5. April 2013
    #6
  7. Ich schraube an einer Dokumentenverwaltung. Der Anwender möchte halt die Möglichkeit haben, Dokumente aus geöffneter Word-Instanz, in die Verwaltung mit einzubinden. Ob das wirklich sinnvoll ist, ziehe ich ein wenig in Zweifel.

    Bisher läuft es so:
    Beim start des Forms wird auf geöffnete Word-Instanz geprüft (was die Fehlergeschichte hier verursacht, wenn Word nicht auf ist). Ist eine leere Word-Instanz offen wird diese Kommentarlos geschlossen. Sind jedoch Dokumente auf, wird die Wordinstanz einer Objectvariablen zugewiesen und die Documente in eine Collection.

    Um auf die Ereignisse der Word-Instanz zu reagieren habe ich alle relevanten Prozeduren in eigene eigene Klasse gepackt.

    Ist die Startprozedur fertig(mit vorhandenen Dokumenten) wird das dortige Word-Object der Klasse zugewiesen, welche dann mit der Collection weiter arbeitet.

    Sind keine offenen Dokumente vorhanden, erzeugt die Klasse ihre eigene Word-Instanz.

    Das Ganze ist grad Neuland für mich und ich hab hier schon ziemlich geweint *boah

    Aber im Moment läuft alles reibungslos.
     
    Storch, 5. April 2013
    #7
  8. Haltemodus fallweise unterdrücken

    ...indem ich mich im Code mittels Zeilenanzeiger (-> Positionspfeil) wieder "nach oben" bewege und von dort aus schrittweise debugge.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Anne Berg, 5. April 2013
    #8
  9. Interessantes Thema.
    Verwaltung von Dokumenten und Zugriff auf Dokumente wären für mich getrennte Vorgänge.

    Was machst Du, wenn der User mehrere Wordinstanzen offen hat mit überall ein paar Dokumenten darin?
    Das Reagierenmüssen auf eine unbekannte Ausgangssituation ist immer anstrengeder als das Arbeiten in einem standardisiertem Umfeld (z.B. ich öffne mit meiner Anwendung Dokumente und kenne daher Instanz und Dokumente).
    Statt also erst Steine irgendwie in den trüben Teich zu werfen (vielleicht nur aus Gedankenlosigkeit) und versuchen zu wollen, diese wieder zu greifen, ist es doch bedeutend einfacher, diese Steine per Leine zu versenken und den Zugriff zu behalten.
    Alles was da hilft, ist gut.

    Zu der obigen Fragestellung: Programmsteuerung per Fehler/Fehlerbehandlung ist sollte aus meiner Sicht größtmöglich vermieden und durch Fehlervermeidungsstrategien ersetzt werden. Ein On Error Resume Next ist und bleibt ein Stachel in einer Wunde und keine Methode zum Programmieren.
    Eine Fehlerbehandlung sollte aus meiner Sicht nur bei nicht vermeidbaren Fehlern oder unerwarteten Fehlern eintreten müssen. Ein nicht vermeidbarer Fehler würde auftreten, wenn z.B. der Benutzer mal seine Wordinstallation entfernt. Dann ist aber auch ein Abbruch des gesamten Vorganges mehr als berechtigt.
    Ob dagegen Word läuft oder aber bestimmte Dokumente vorhanden und/oder geöffnet sind, das würde ich nicht als unerwartete Ereignisse bezeichnen und demzufolge eine Prüfung (und die bestmöglich ohne Fehlerwerfen) anwenden wollen.

    Unausgegorener Gedanke: Word kennt auch Ereignisse. Vielleicht kann man ein Makro installieren, das Zustände (Word geöffnet, Datei geöffnet, Datei geschlossen, Word geschlossen) in einer Textdatei o.ä. dokumentiert. Dann könnte man diesen Inhaltsträger analysieren und gezielter agieren. Allgemein betrachtet wäre das ein Ansatz, wo Dir die unbekannte Umgebung eine Schnittstelle bereitstellt, die Dir benötigte Informationen bereitstellt und damit die Umgebung bekannt macht.
     
    ebs17, 5. April 2013
    #9
  10. \@Anne, ist das ein Feature vom VBE oder wie funktioniert das???
     
    Storch, 5. April 2013
    #10
  11. \@Storch:
    Ich bin jetzt nicht sicher, was du meinst. Es gibt doch auf jeden Fall eine Unterbrechung bzw. Unterbrechungsmöglichkeit (spätestens, wenn die Fehlermeldung aufpoppt) und dann ziehe ich im VBE den Positionspfeil am linken Rand an den Code-Anfang oder eine Stelle, die mir "verdächtig" erscheint, und setze den Test von dort aus mit F8 fort. Bei größeren Sprüngen kann man auch die neue Startposition per Menübefehl (-> Strg+F9) bestimmen. Wenn das aus irgendwelchen Gründen so nicht funktioniert, setze ich einen Haltepunkt und starte die Prozedur erneut. Somit packe ich die Einstellung bzgl. Fehlerunterbrechung nie an!
    Ist es das was du wissen wolltest?
     
    Anne Berg, 5. April 2013
    #11
  12. Wie öffnet man mehrere Word-Instanzen (außer per VBA), die werden doch automatisch zusammengepackt, oder nicht?
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Anne Berg, 5. April 2013
    #12
  13. Haltemodus fallweise unterdrücken

    \@Anne: In einer Umgebung, wo einer (der Benutzer) erst einmal macht, was er will, würde ich dann alles für möglich halten und dann besser nicht von bestimmten Voraussetzungen ausgehen.

    Eine Möglichkeit hast Du selber angegeben. Oft besteht der Wunsch, dass sich Anwendungen gegenseitig fernsteuern. Wenn man da einiges zusammenzählt (inkl. weiterer VB-fähiger Anwendungen), ist nichts ausgeschlossen.
     
  14. Wenn ich das jetzt grad mal wüsste.....

    Wenn ich 'bei nicht verarbeiteten Fehlern' einstelle und dann einen Fehler provoziere bekomme ich eine Meldung wie die im Anhang. Anschließend wird das Formular in der Formularansicht angezeigt. Von Unterbrechungsmöglichkeit sehe ich da garnichts.

    Gehe ich zum VBE ist dort keinerlei Hinweis zu erkennen, wo der Fehler ausgelöst wurde. Deswegen bin ich verwirrt. Habe ich irgendwas falsch eingestellt??? Aber ich hab das so, seit ich mich mit Access auseinander setze. Deswegen bin ich ja immer auf 'bei jedem Fehler'

    Oder liegt es evtl. an meiner Fehlerbehandlung? Die sieht üblichweise so aus:
    Code:
     
    Storch, 5. April 2013
    #14
  15. Wie gesagt, spätestens beim Aufpoppen der Fehlermeldung kannst du per Strg+Untbr in den Unterbrechungsmodus gelangen.
    Oder du setzt dir vorher einen Haltepunkt.
     
    Anne Berg, 5. April 2013
    #15
Thema:

Haltemodus fallweise unterdrücken

Die Seite wird geladen...
  1. Haltemodus fallweise unterdrücken - Similar Threads - Haltemodus fallweise unterdrücken

  2. Userform unterdrücken - wenn Datei von andere Datei geöffnet wird

    in Microsoft Excel Hilfe
    Userform unterdrücken - wenn Datei von andere Datei geöffnet wird: Hallo, ich habe einer Excel-Datei X ein Userform vorgeschaltet, d.h. wenn die Datei X geöffnet wird, wird das Userform geöffnet und der Anwender zur Eingabe von paar Daten aufgefordert....
  3. Verhindern, das Excel mehrere Zeilen ausgibt

    in Microsoft Excel Hilfe
    Verhindern, das Excel mehrere Zeilen ausgibt: Hallo, ich ärgere mich gerade wegen einer Formel Herum excel gibt mir mehr Zeilen aus ( was ich nicht möchte. A die Formel lautet so...
  4. #DIV/0! Unterdrücken

    in Microsoft Excel Hilfe
    #DIV/0! Unterdrücken: Hallo zusammen, ich habe folgendes Problem in meiner Tabelle werden zwei Quoten ausgegeben und logischerweise zeigt Excel bei division durch 0 den Fehler #DIV/0!. [ATTACH] [ATTACH] Jetzt...
  5. Suchen/Ersetzen mit VBA: Windows-Nachfrage unterdrücken

    in Microsoft Word Hilfe
    Suchen/Ersetzen mit VBA: Windows-Nachfrage unterdrücken: Hallo zusammen, ich habe folgenden Code erstellt, um das immer wieder in meinen Feldfunktionen auftauchende \*Mergeformat zu entfernen, da es die Formatierung zerschießt:...
  6. Wechsel in den Haltemodus zu diesem Zeitpunkt nicht möglich

    in Microsoft Excel Hilfe
    Wechsel in den Haltemodus zu diesem Zeitpunkt nicht möglich: Guten Morgen, o.g. Fehlermeldung erhalte ich neuerdings in meiner Excel-Anwendung. Der Programmcode funktioniert tadellos, nur nicht beim ersten Mal. Da erhalte ich immer die o.g. Fehlermeldung....
  7. Unterdrücken der Menue-Leiste ?

    in Microsoft Access Hilfe
    Unterdrücken der Menue-Leiste ?: Hallo und erst mal ein frohes Neues Jahr! Habe folgende Frage: Beim Ausgeben meines Hauptformulars steht im oberen Teil des Bildschirmes immer noch das Access-Menue. Wie kann ich dieses ausblenden...
  8. Fehlermeldung zur Gültigkeitsregel unterdrücken

    in Microsoft Access Hilfe
    Fehlermeldung zur Gültigkeitsregel unterdrücken: Liebe Access-Profis, in meiner DB wird Personal verwaltet. Nun können Mitarbeiter in der Elternzeit gehen und sich nachfolgend auch in Teilzeit wieder zur Arbeit rückmelden. Wenn jemand...
  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