none
Access 2016: Ribbonbar in ACCDE macht Probleme - Makro- oder Rückruffunktion nicht ausführbar RRS feed

  • Frage

  • Ich habe mit dem Ribboncreator 2016 eine Ribbonbar für eine Applikation erstellt, die in Access 2016 gepflegt wird. Nun habe ich die Datenbank als ACCDE-Datei gespeichert und bekomme beim Start der umgewandelten Version Fehlermeldungen, die sich meiner Meinung nach auf das Ribbonbar beziehen.

    Datenbank kann die Makro- oder Rückruffunktion 'OnRibbonLoad' nicht ausführen. Stellen Sie sicher, dass das Makro oder die Funktion vorhanden ist und die richtigen Parameter verwendet

    Datenbank kann die Makro- oder Rückruffunktion 'GetVisible' nicht ausführen. Stellen Sie sicher, dass das Makro oder die Funktion vorhanden ist und die richtigen Parameter verwendet

    Die Prozeduren sind via Ribboncreator in der Datenbank im Modul basRibbonCallbacks angelegt worden. In der ACCDB-Version gibt es keine Probleme mit der Erstellung des Ribbonbars oder überhaupt beim Start der Anwendung.

    Ich habe schon Hinweise gelesen, wonach die Microsoft Office Object Library unter VBA unter Extras/Verweise aktiviert sein muss. Das ist bei mir der Fall.

    Hat jemand Erfahrungen mit dem Fehler? Wie kann man eingrenzen, ob das Problem bei der Beschreibung des Ribbonbars, bei den Verweisen des Projektes oder im Quellcode selber liegt? Ich komme in der compilierten Version nicht mit dem Debugger dazwischen und eingebaute Msgbox-Ausgaben haben nicht gefruchtet, weil das Programm erst gar nicht so weit kommt.

    Gruß

    Ingo

    Montag, 27. August 2018 10:34

Alle Antworten

  • Hallo,

    ich habe anscheinend das Kernproblem identifiziert: die XML-Beschreibung der Ribbonbars wird bei Nutzung von Microsoft XML, 6.0 nicht richtig interpretiert. Ich bin jetzt auf Microsoft XML, 3.0 umgestiegen und kann meine Anwendung kompilieren und die Startprobleme sind auch weg. Jetzt muss ich nur sehen, wie ich die Programmstellen ändere, die mit XMLDoc60 gearbeitet haben.

    Gruß

    Ingo

    Dienstag, 28. August 2018 11:00
  • Nun ja, theoretisch sollte das nicht passieren, da die Versionen 3, 4, 5 z.T. schon nicht mehr unterstützt werden.

    https://support.microsoft.com/de-de/help/269238/list-of-microsoft-xml-parser-msxml-versions

    Mit meiner Steinzeitsoftware (VB6) liefere ich die 3er-Version halt immer mit aus, da diese seit Windows7 bereits nicht  mehr zu Windows gehört.

    Ich hätte da eher den RibbonCreater im Verdacht. Allerdings erklärt das nicht, wieso das in der DB-version dann klappt.

    Wie bist du auf die Version 3.0 gekommen, da diese doch theoretisch gar nicht mehr existiert?

    Dienstag, 28. August 2018 11:30
  • Ich bin auf XML 3.0 gekommen, weil ich kürzlich an anderer Stelle des Quellcodes mit einer XML-Problematik zu tun hatte, die durch die Umstellung von Access 2000 auf Access 2016 hochgekommen war. Dabei ging es um die Initialisierung eines XML-Objekts, das schon auf DomDocument60 zurückgriff, aber mit der falschen Methode aufgerufen wurde. Bei der Fehleranalyse bin ich über die beiden Standards gestolpert, die in Access unterschieden werden.

    Da die Ribbonbar über XML definiert wird und der Fehler eindeutig daraus resultierte, deaktivierte ich XML 6.0 und kommentierte die Programmstelle mit XML-Zugriff aus. Die neue ACCDE ließ sich problemlos starten. Um die XML-Routine wieder nutzen zu können, habe ich dann auf DomDocument umgestellt und unter Verweise XML 3.0 aktiviert.

    Die MSXML3.DLL liegt bei mir im Windows-Unterverzeichnis SysWOW64. Wenn die nicht mehr zum Betriebssystem gehört, dann muss ich wohl einen Weg finden, die ins Setup für die Auslieferungsdatei zu packen. Schön wäre das nicht.

    Dienstag, 28. August 2018 14:52
  • Das ist tatsächlich erforderlich, dazu gehöhrt dann ebenso de msxml30r.dll (Ressource).
    Das kopieren reicht allerdings nicht, du must die DLL auch per regsvr32 registrieren (was die Installer eigentlich können), dann allerdings benötigst du beim Install Admin-Rechte.

    Ich habe allerdings mal bei mir auf Windows 10 sowohl die Version 3 als auch 6 in 32- und 64-Bit bei mir gefunden (Datum des letzten Juli-Updates), also scheint Microsoft selber das Problemzu kennen denn der Support ist ja eigentlich beendet.

    Dienstag, 28. August 2018 16:24