Office: (Office 2003) Stoppen von Makro bei versionsabhängigen Kompilierungsfehler vermeiden

Helfe beim Thema Stoppen von Makro bei versionsabhängigen Kompilierungsfehler vermeiden in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, folgender Code läuft bei mir unter Access 2010 fehlerfrei, aber führt unter Accesss 2003 zur Meldung "Fehler beim Kompilieren: Methode oder... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Stephan_2019, 21. August 2020.

  1. Stoppen von Makro bei versionsabhängigen Kompilierungsfehler vermeiden


    Hallo,

    folgender Code läuft bei mir unter Access 2010 fehlerfrei, aber führt unter Accesss 2003 zur Meldung "Fehler beim Kompilieren: Methode oder DAtenobjekt nicht gefunden.":

    Code:
    Klar, weil Access 2003 hat nun einmal keine Ribbons.

    Ein "On Error Resume Next" hilft aber nicht, ebenfalls nicht der Versuch den Code nur versionsabhängig auszuführen:

    Code:
    Wie bringe ich Access dazu die betreffende Zeile zu übergehen?

    Wozu?
    Ich möchte gerne die Datenbank kompatibel zu Access 2003 und 2010 halten ohne separate Versionen des Frontend pflegen zu müssen.

    FALLS es einen ergebnisgleichen, alternativen Code für:
    Code:
    gäbe würde mir auch das helfen(*), ist aber nicht die eigentliche Frage, weil, da ich nun einmal auf das Problem gestossen bin, mich eigentlich interessiert wie ich solcherart versionabhängige Kompilierungsfehler generell handhaben kann.

    (*)
    Was ich keinesfalls suche sind nur ähnliche LÖsungen, z.B. das 'Wegblenden' des kompletten Menüs, sondern es soll explizit nur das pasieren was MS im GUI "Menüband reduzieren" nennt.



    Gruß
    Stephan

    :)
     
    Stephan_2019, 21. August 2020
    #1
  2. markusxy, 22. August 2020
    #2
  3. Danke, das funktioniert.

    Mein Code ist jetzt:
    Code:
    Hierzu folgende Nachfragen:

    1.
    Könnte ich das so formulieren das es für alle Vba-Versionen außer Vba6 gilt? Hierbei geht offensichtlich NICHT:
    Code:
    (zumal die VBA-IDE die SChreibung "Vba6" in "VBA6" ändert)

    Warum?
    Falls es zukünftig ein Vba8 geben sollte, wird obriger Code scheitern, somit schiene mir ein 'nicht unter Vba6 ausführen' ein besseres Kriterium als 'unter Vba7 ausführen'

    2.
    Es ist richtig das Vba7 erst ab Access 2010 gilt?


    Gruß
    Stephan
     
    Stephan_2019, 22. August 2020
    #3
  4. Stoppen von Makro bei versionsabhängigen Kompilierungsfehler vermeiden

    Alternative:

    Code:
    Die Konstate ist doch kompiliert.
    Es ist seltsam, dass dich das Verhalten verwundert.

    Wer sagt dir denn, dass es bei VBA8 überhaupt noch Ribbons gibt?
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    markusxy, 23. August 2020
    #4
  5. Das müstest Du bitte erklären, was heisst hier "ist doch kompiliert"? Meint das weil Access 2003 DIESE Konstante (Vba6) kennt, ändert es deren Schreibung? Die Schreibung von Vba7 wird nämlich nicht geändert.

    Mich wundert das Verhalten aus einem Grund: ich bin Deinem Link gefolgt und erwartete das dort die 'richtige' Schreibung gebraucht wird.
    Woher ich hingegen wissen soll welches die richtige Schreibung ist, weiß ich nicht, denn für mich ist ja die Konstante völlig neues Wissen und ich kann nur das wissen was auf der verlinkten Seite stand.

    Heisst das alles denn nun, das die Schreibung unter:
    Bedingte Kompilierung – DBWiki

    eigentlich nicht korrekt ist und es "VBA6" und "VBA7" heissen MUSS um auch richtig zu funktionieren?

    Testen kann ich nämlich nur unter A2003 und 2010 und es wäre dumn wenn es unter 2016 ff. u.U. Probleme wegen der SChreiubung gäbe.

    Niemand. Einzig scheint es mir sinnvoll immer den BESTMÖGLICH formulierten Code zu verwenden.


    Gruß
    Stephan
     
    Stephan_2019, 23. August 2020
    #5
  6. Hallo Stephan,

    not(vba6) entspricht doch VBA7, oder habe ich da etwas falsch verstanden? Du must die Logik so aufbauen, das die Prüfungen vom größten zum kleinsten Umfang immer mehr eingeschränkt werden.

    Ulrich
     
    knobbi38, 23. August 2020
    #6
  7. Es gibt doch noch mehr Versionen außer VBA6 und VBA7.
    Access 2003 hat sicher eine andere Version.
     
    markusxy, 23. August 2020
    #7
  8. Stoppen von Makro bei versionsabhängigen Kompilierungsfehler vermeiden

    \@markusxy:
    Also ACC2K3 arbeitet mit Sicherheit mit VBA-Version 6, ob aber die Konstante gesetzt ist, kann ich nicht sagen. Deshalb erstmal mit VBA7 testen und dann weiter runter. Als letztes bleibt dann nur der #ELSE Zweig.

    Ja, MAC!

    Hier noch ein Link, wie die Kompilerkonstanten eingesetzt werden:
    https://docs.microsoft.com/de-de/off...ions-of-office


    Ulrich
     
    knobbi38, 23. August 2020
    #8
  9. Meine Annahme nach ja, WEIL im Moment nur diese zwei Konstanten existieren. (meinthalben i. Sinne aller MSO-Versionen so ca. ab MSO 2000 - denn für wirklich alle jemals existierten Versionen von VBA wird es nicht gelten, aber ich bin kein VBA-Historiker)

    Abgesehen davon ist es aber von der Logik ein Unterschied, denn not(Apfel) entspricht ja nur dann Birne, wenn nur Apfel und Birme betrachtet werden und nicht Obst insgesamt.

    "entspricht", was Du ja zuerst gebraucht hast ist auch genau der richtige Begriff denn "ist gleich" wäre imho nicht korrekt.


    Gruß
    Stephan
     
    Stephan_2019, 23. August 2020
    #9
  10. Hä? Das beantwortet leider weder meine Frage, noch stimmt es inhaltlich (nachdem was ich bisher dazu weiß).

    Auf dieser Seite (Access Versionen – DBWiki) las ich ursprünglich das Vba7 mit Office 2010 eingeführt wurde und bei MS lese ich hier https://docs.microsoft.com/de-de/pre...ngVBA7CodeBase

    das:

    "Mit der Einführung der neuen 64-Bit-Version von Microsoft Office 2010 wird auch eine neue Version von Microsoft Visual Basic für Applikationen (VBA) veröffentlicht: Microsoft Visual Basic für Applikationen 7.0 (VBA 7)."

    Und das heisst für mich das Vba7 ab MSO 2010 gilt, aber eben nicht nur für MSO 2010, sondern mutmaßlich bis heute andauert.

    Und bzgl. Vba6 nehme ich an das es ebenfalls für mehrere MSO Versionen gültig war und insbesondere auch für MSO 2003.





    Gruß
    Stephan
     
    Stephan_2019, 23. August 2020
    #10
  11. Das ist schon möglich.
    Das war eine reine Vermutung.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    markusxy, 23. August 2020
    #11
  12. #If Vba7 ergibt unter MSO 2003 ein False und #If VBA6 ein True


    Gruß
    Stephan
     
    Stephan_2019, 23. August 2020
    #12
  13. Stoppen von Makro bei versionsabhängigen Kompilierungsfehler vermeiden

    VBA7 ist die Reaktion auf die Einführung von 64 Bit und hat mit Ribbons, die ab Acc2007 mit dem neuen ACCDB-Format eingeführt wurden, erst mal nicht so viel zu tun. Das zufällige Zusammenfallen sollte man nicht überbewerten.

    Zum ursprünglichen Anliegen sollte man also Accessversionen prüfen, vorrangig die des verwendeten Accessfiles, u.U. auch jene, die zur Ausführung verwendet wird.
     
  14. Da hast du natürlich vollkommen recht.

    Aber da es für das Fileformat keine Compilter Konstanten gibt, müsste man entweder verschiedene Versionen entwerfen, oder dennoch auf die VBA6 prüfen.
    Immerhin unterstützt Acc2007 so viel ich weiß noch die alten Menüleisten.

    @Stephan_2019,
    die Frage ist natürlich was du überhaupt machst.
    Vielleicht ist Access auch grundsätzlich keine gute Lösung, für das was du anstrebst.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    markusxy, 23. August 2020
    #14
  15. Klar, wenn man irgendein Flipper-Spiel verwendet, gibt es da womöglich keine Commandbars, die auszublenden wären.
     
Thema:

Stoppen von Makro bei versionsabhängigen Kompilierungsfehler vermeiden

Die Seite wird geladen...
  1. Stoppen von Makro bei versionsabhängigen Kompilierungsfehler vermeiden - Similar Threads - Stoppen Makro versionsabhängigen

  2. Makro Zip-Datei von Webseite runterladen, auspacken, kopieren

    in Microsoft Excel Hilfe
    Makro Zip-Datei von Webseite runterladen, auspacken, kopieren: Hallo Zusammen, ich habe ein Makro gefunden von dem ich denke, dass es koennen sollte was ich braeuchte, eine Datei herunterladen, auspacken und den Inhalt in die Datei kopieren in der das Makro...
  3. Fehler: "Stopp. Sie sollten mit der Installation von Office 2016 noch warten" Sie sind nicht ...

    in Microsoft Outlook Tutorials
    Fehler: "Stopp. Sie sollten mit der Installation von Office 2016 noch warten" Sie sind nicht ...: Fehler: "Stopp. Sie sollten mit der Installation von Office 2016 noch warten" Sie sind nicht in der Lage, E-Mails von einem aktuellen Postfach zu erhalten Outlook für Microsoft 365...
  4. Makro stoppen und sobald Wert in Zelle vorhanden Makro weiter ausführen

    in Microsoft Excel Hilfe
    Makro stoppen und sobald Wert in Zelle vorhanden Makro weiter ausführen: Hallo zusammen, wie kann ich in Excel ein Makro unterbrechen und sobald beispielsweise in Zelle A1 ein Wert enthalten ist, soll das Makro weiter ausgeführt werden. Also nicht mit einer IF...
  5. Zeitsteuerung (Application.OnTime) stoppen

    in Microsoft Excel Hilfe
    Zeitsteuerung (Application.OnTime) stoppen: Hallo, ich frage über VBA mit Application.OnTime alle 5 Minuten ab ob die Mappe geschlossen werden kann. Wenn ich diese Funktion in Tabelle A laufen lasse und habe noch eine Tabelle B geöffnet,...
  6. Formel stoppen, wenn Feld ausgefüllt wird

    in Microsoft Excel Hilfe
    Formel stoppen, wenn Feld ausgefüllt wird: Hallo, ich habe eine Frage bezüglich einer Excel-Funktion: =WENN(E2="";"";WENN(F2="N/A";HEUTE()-E2;HEUTE()-F2)) Diese Formel steht in Feld G2 in E2 steht ein vergangenes Datum in F2...
  7. Doppelte Einträge finden und Nummerierung stoppen

    in Microsoft Excel Hilfe
    Doppelte Einträge finden und Nummerierung stoppen: Hallo liebe Office Gemeinde, wiedermal habe ich ein kleines Excel Problem und muss mich damit an euch wenden... Und zwar habe ich diesesmal wieder etwas wo ich eine ExcelTabelle in ein...
  8. Scan Disk stopp wegen laufendem Programm

    in Sonstiges
    Scan Disk stopp wegen laufendem Programm: Hallo. Ich arbeite mit Windows Me. Möchte eine Defragmentierung machen, da erscheint dann, das ich erst einen Scan Disk machecn muß weil fehlerhafte Dateien vorhanden sind. Beim Scan Disk...
  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