Verweise in VBA neu zuordnen

Diskutiere und helfe bei Verweise in VBA neu zuordnen im Bereich Microsoft Office im Windows Info bei einer Lösung; Guten Tag liebe Leute Ich programmiere eine Access-Anwendung in VBA. Sie wird in Office 2016 und Office 2010 verwendet. Darin verwende ich einen... Dieses Thema im Forum "Microsoft Office" wurde erstellt von Nitrox_444, 20. Februar 2017.

  1. Nitrox_444
    Nitrox_444 Gast

    Verweise in VBA neu zuordnen


    Guten Tag liebe Leute


    Ich programmiere eine Access-Anwendung in VBA. Sie wird in Office 2016 und Office 2010 verwendet. Darin verwende ich einen Verweis auf Microsoft Excel. Dieser wird ohne Zutun nur von der tieferen auf die höhere Access-Version angepasst, zurück aber nicht mehr.


    Daher habe ich die Verweise nun in VBA-Code programmiert:

    Application.References.Remove Application.References("Excel")

    bzw.

    Select Case Application.Version
    Case "14.0": References.AddFromFile ("C:\Program Files\Microsoft Office\Office14\EXCEL.EXE")
    Case "16.0": References.AddFromFile ("C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE")
    End Select

    Folgende Probleme habe ich :

    • Wenn die DB in Version 16 gestartet wurde, steht der Verweis auf Office 16. Wir sie danach unter Version 14 geöffnet, bleibt der Verweis auf 16 stehen mit der Meldung im Verweisfenster, dass keine Datei dafür existiert. Unter VBA führt remove zu einem Fehler, ebenso die Abfrage nach BrokenReferenz. Obwohl die beiden Befehle eigentlich genau diese Funktion haben (müssten).
    • Alternativ wollte ich einbauen, dass beim Beenden der Application der Verweis einfach entfernt wird (Form_Close). Die Codezeile, die mittels eines Buttons problemlos ausgeführt wird, hat im Close-Ereignis keine Wirkung. Ich habe jetzt also einen Beenden-Button eingebaut der die ungebrochene Referenz löscht und beim Form_Load wird sie - je nach DB-Version - neu gesetzt. Das ist aber keine elegante Lösung weil man die App z.B. auch mit dem Schliessen-Kreuzchen beenden kann.

    Hat jemand einen Ansatz der den Verweis beim beenden löscht oder noch besser, mit dem man BrokenReferenz bzw. Remove währen der Laufzeit in der genannten Konstellation ohne Fehler ausführen kann? Mittels Googeln habe ich nichts Schlaues gefunden (Late-Binding kommt hier nicht in Frage).


    Dankeschön für jeden Input

    Nitrox444
     
  2. Josef Pötzl Win User

    Verweise in VBA neu zuordnen

    Hallo!

    Kleiner Tipp nebenbei:

    Wenn du AddFromGuid verwendest und beim Major- und Minor-Parameter 0 übergibst, wird die installierte Excel-/Word-Referenz installiert und du musst nicht wissen, wo die Datei liegt. GUID wird identisch sein.

    mfg

    Josef
  3. Nitrox_444 Win User

    Verweise in VBA neu zuordnen

    Hallo Josef,

    das habe ich gemacht und es funktioniert. Vielen Dank.

    Herzliche Grüsse

    Nitrox
  4. Nitrox_444 Win User

    Verweise in VBA neu zuordnen

    Hallo Mike

    Danke für die ausführliche Antwort!

    • Es handelt sich nicht um beschädigte Referenzen sondern solche für die keine passende Library mehr vorhanden ist. In der MSDN-Library wird genau dieser Fall ja erklärt. Genau hierfür gibt es doch: "If Application.BrokenReference Then" diese löschen.
      Ansonsten mach der Befehl ja keinen Sinn. Oder habe ich das was falsch verstanden?
    • Late Binding ist vom Kunden nicht erwünscht. Er programmiert mit und findet das zu kompliziert.
    • Die Möglichkeit per ZIP funktioniert hier nicht; die App ist in der Cloud. Einer programmiert mit Access 2010 und einer in Office 2016. Daher müssen die Referenzen jeweils automatisch ändern wenn die DB gestartet ist.
    • Frontend und Backend sind getrennt, ja.

    Ich habs jetzt so gelöst, dass man die App über einen Button schliesst. Dann kann man im Ereignis des Buttons den noch vorhandenen ungebrochenen Verweis entfernen. Beim Start wird der Verweis je nach Applikations-Version neu gesetzt. Das funktioniert eigentlich
    soweit gut.

    Bloss verstehe ich nicht, weshalb ich den ungebrochenen Verweis nicht im Close_Ereignis des Start-Formulars entfernen kann, das funktioniert ohne Fehlermeldung einfach stillschweigend nicht. Vielleicht hat ja jemand eine Idee?

    Gruss Nitrox
  5. MikeFried Win User

    Verweise in VBA neu zuordnen

    Hallo Nitrox,

    ja leider hat die Selbstregistrierung auch noch weitere unerwünschte Nebeneffekte die Du sicherlich sehr schnell herausfinden wirst :(

    Zu Deinem Problem: Da es nahezu unmöglich ist beschädigte Referenzen zu löschen solltest Du Dir einen Startmechanismus einfallen lassen. Ich denke da an so etwas wie Du lieferst eine ZIP-Datei aus und schreibst ein kleines Startbatch was das ZIP-File auspackt
    und dann die ausgepackte ACCDB startet. Damit hättest Du immer eine frische ACCDB dei eben garkeine Verweise hat un ddiese dann zum Programmstart setz. Geht natürlich auch ohne ZIP mit z.B. einer umbenannten ACCDB in xxx.nix die Du dann beim Start kopierst
    und umbenennst.

    Ich gehe übrigens davon aus dass Deine Daten nicht in der selben Datenbank gehalten werden. Also es sollte Front- und Backend getrennt sein.

    Warum ist Latebinding eigentlich keine Option? Ich habe alel Automationen auf Latebinding umgestellt. Es würde mich echt interessieren was Du damit nicht machen kannst. Klar ich habe über die JAhre die Konstanten von Word, Excel & Co gesammelt und in ein
    Modul für Programmkonstanten gepackt, damit ich schreibfauler Mensch mir die Zahlen die dahinter stehen nicht merken muss und in Excel generierten Code direkt übernehmen kann. Aber ausser ein wenig Arbeit die man ja nur einmal macht kann ich da nichts feststellen
    wofür ich einen Verweis benötigen würde.

    Viel Erfolg

    Gruß Mike
  6. Karl Donaubauer Win User

    Access Datenbank Office 2007 Windows Vista macht mit Windows 8.1 Pro Probleme

    Hallo!

    • öffnen die Datei in Access 2007
    • öffne den VBA-Editor z.B. mit der Tastenkombination Alt + F11
    • wähle im VBA-Editor den Menüpunkt Extras - Verweise
    • kontrolliere die Verweise auf eine Fehlermeldung wie "FEHLT"
    Welche Verweise man i.d.R. benötigt, steht hier:
    http://www.donkarl.com?FAQ7.1


    Die Lösung richtet sich danach, was die Verweiskontrolle ergibt: Verweis weghaken, Verweisdatei ändern, neu registrieren, neu installieren usw. je nachdem.
  7. User Advert


    Hi,

    willkommen im Windows Forum!
Thema:

Verweise in VBA neu zuordnen - Microsoft Office

Die Seite wird geladen...

Verweise in VBA neu zuordnen - Similar Threads - Verweise VBA zuordnen

Forum Datum

Registerkarte „Verweise“

Registerkarte „Verweise“: Hallo : warum finde ich die Registerkarte „Verweise“ nicht? Bei mir gibt es nur: Datei, Einfügen, Zeichnen, Layout, Überprüfen, Ansicht. Danke für die Antworten, schonmal :
Microsoft Office 26. Dezember 2019

Kann einer Office-365-Installation keine neue Lizenz zuordnen

Kann einer Office-365-Installation keine neue Lizenz zuordnen: Folgendes Szenario: Habe auf meinem Laptop alle Desktop-Anwendungen (Word, Excel, Outlook usw.) installiert und mit meinem geschäftlichen Microsoft-Konto verwendet (*** Die E-Mail-Adresse wurde...
Microsoft Office 25. Mai 2018

Verweise aktivieren

Verweise aktivieren: Hallo, ich schreibe gerade an einer Hausarbeit und würde gerne die Funktion "Zitat einfügen" , "neue quelle hinzufügen" verwenden. Dies ist leider nicht möglich. Könnt ihr mir weiterhelfen, wie...
Microsoft Office 28. März 2018

Verweise aktivieren

Verweise aktivieren: Hallo, ich schreibe gerade an einer Hausarbeit und würde gerne die Funktion "Zitat einfügen" , "neue quelle hinzufügen" verwenden. Dies ist leider nicht möglich. Könnt ihr mir weiterhelfen, wie...
Microsoft Office 28. März 2018

Wie Kategorie zuordnen im neuen outlook.live.com

Wie Kategorie zuordnen im neuen outlook.live.com: Hallo! Mit der neuen Version von outlook.live.com kann ich einer Mail keine Kategorien zuordnen. Bitte sagt mir wie es jetzt funktioniert. Erhy
Outlook.com 21. Februar 2018

Strukturierte Verweise

Strukturierte Verweise: Hallo, ich habe eine Frage zu den strukturierten Verweisen in Excel: Ich habe eine Tabelle ertsellt, die sich Daten aus dem Web zieht und somit Kurse von bestimmten Kryptowährungen anzeigt...
Microsoft Office 16. Januar 2018

Verweis auf mysql.data

Verweis auf mysql.data: Hallo, beim Erstellen einer neuen Datenbankanbindung mit Visual Basic 15 (Windows 8.1) habe ich festgestellt, dass beim Aufruf von Verweise im Eigenschaftenfenster das Datenbankmodul Mysql.data...
Allgemeines 4. Oktober 2016
Verweise in VBA neu zuordnen solved
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.