Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: Kommodore am März 02, 2012, 10:11:49

Titel: Fehlermeldung - inkorrekter Verweis auf die Datei 'MSO.dll' Version 2.4
Beitrag von: Kommodore am März 02, 2012, 10:11:49
Hallo,

beim Öffnen der Datei Anwendung.mdb erscheint auf dem Rechner, wo nur eine Access-Runtime vorhanden ist die
Fehlermeldung "Ihre - Datenbank oder ihr Projekt enthält einen fehlenden oder inkorrekten Verweis auf die Datei 'MSO.dll' Version 2.4
* Sie müssen den Verweis korrigieren, um sicherzustellen, dass die Datenbank oder das Projekt richtig funktioniert."

Diese Fehlermeldung tritt nur bei dem Rechner mit der Runtime-Version auf, auf dem Rechner mit der Access-Vollversion wird keine
Fehlermeldung erstellt.
In den Verweisen habe ich alle benötigten Verweise ausgewählt.

Vielleicht fehlt die entsprechende MSO.dll auf dem Rechner mit der Runtime-Version oder die Version ist auf den beiden Rechner eine unterschiedliche? (Wie könnte man diese kopieren?)

[Anhang gelöscht durch Administrator]
Titel: Re: Fehlermeldung - inkorrekter Verweis auf die Datei 'MSO.dll' Version 2.4
Beitrag von: DF6GL am März 02, 2012, 10:15:37
Hallo,

um welche Runtime-Version handelt es sich?

Welche OS-Versionen haben die Rechner?

Im Verweis-Fenster findest Du im unteren Teil den Pfad zur MSO.dll.  Prüf auf dem Zielrechner, ob diese Datei dort auch im selben Verzeichnis existiert, bzw. richtig registriert ist.
Titel: Re: Fehlermeldung - inkorrekter Verweis auf die Datei 'MSO.dll' Version 2.4
Beitrag von: Kommodore am März 02, 2012, 11:15:15
OS-Version: XP

sowie Office Version 2003 oder Version 11, ist es möglich die Runtimeversion per VBA-Befehl abzufragen?

Die MSO.dll ist im auf C:\ im Office12-Verzeichnis auf dem Rechner mit der Vollversion zu finden.
Auf dem Runtime-Rechner ist diese MSO.dll nicht zu finden!

Wenn ich die MSO.dll auf dem Runtime-Rechner auf einen anderen Pfad registrieren möchte als unter C:\Programme\Office z.B. auf
C:\temp\MSO.dll.

Wie kann ich auf dem Runtime-Rechner eigentlich die Registrierung durchführen, wenn ich dort doch nicht an den Menueintrag zum Verweise
ändern auf dem Runtime-Rechner herankomme?
Titel: Re: Fehlermeldung - inkorrekter Verweis auf die Datei 'MSO.dll' Version 2.4
Beitrag von: Bitsqueezer am März 02, 2012, 15:41:40
Hallo,

die Runtime kann den Code nicht neu kompilieren, was aber erforderlich wäre, wenn Du den Verweis auf eine andere Datei setzt (auch wenn es die gleiche in einem anderen Ordner ist). Du müßtest also entweder sicherstellen, daß beide Rechner die gleiche DLL im gleichen Ordner registriert haben oder, wenn das nicht möglich ist, Late Binding verwenden und den Verweis entfernen.

Gruß

Christian
Titel: Re: Fehlermeldung - inkorrekter Verweis auf die Datei 'MSO.dll' Version 2.4
Beitrag von: DF6GL am März 02, 2012, 15:47:09
Hallo,

@Kommodore :

wozu und für was wird überhaupt die mso.dll gebraucht?
Titel: Re: Fehlermeldung - inkorrekter Verweis auf die Datei 'MSO.dll' Version 2.4
Beitrag von: Kommodore am März 02, 2012, 16:29:23
Hi,

Zitatbeim Öffnen der Datei Anwendung.mdb erscheint auf dem Rechner, wo nur eine Access-Runtime vorhanden ist die
Fehlermeldung "Ihre - Datenbank oder ihr Projekt enthält einen fehlenden oder inkorrekten Verweis auf die Datei 'MSO.dll' Version 2.4
* Sie müssen den Verweis korrigieren, um sicherzustellen, dass die Datenbank oder das Projekt richtig funktioniert."

Vielleicht kann der Fehler anderweitig gelöst werden.
Wie funktioniert es mit dem Late Binding? Im gleichen Ordner ist es nicht möglich, nur unter C:\Temp\MSO.dll .
Titel: Re: Fehlermeldung - inkorrekter Verweis auf die Datei 'MSO.dll' Version 2.4
Beitrag von: Bitsqueezer am März 02, 2012, 16:38:09
Hallo,

bei Early Binding benötigst Du einen Verweis, dafür hast Du volle IntelliSense-Unterstützung sowie die entsprechenden Konstanten. Bei Late Binding muß das Objekt als allgemeines Object deklariert werden und man muß selbst alle Methoden/Eigenschaften und Konstantenwerte kennen (also ggf. eigene Konstanten definieren oder die Zahlenwerte einsetzen).

Für einen FileDialog beispielsweise:

Dim fd As Object
Set fd = Application.FileDialog(3)
fd.allowmultiselect = False
fd.show


Du bekommst hierbei natürlich auch keine Compilerunterstützung bei fehlerhafter Schreibweise. Daher empfiehlt es sich meistens, so etwas erst über Early Binding zu programmieren und zu testen und erst am Ende auf Late Binding umzustellen, wenn der Code so läuft wie gewünscht (trotzdem natürlich nochmal Extratest notwendig).

Gruß

Christian