Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Einbinden von Verweisen zweier verschiedener Versionen

Begonnen von Beate1953, Januar 15, 2016, 09:02:38

⏪ vorheriges - nächstes ⏩

Beate1953

Hallo,

ich habe eine DB auf dem Server von der aus eine EMail über Outlook generiert wird. Funktioniert soweit prima.

Nun habe ich folgendes Problem: Aus internen Gründen soll dies eine einzige DB sein (also nicht Backend mit vielen Frontends) aber von mehreren PCs aus bedient werden können. Auf diesen PCs läuft teilweise MS Office 2010 und teilweise MS Office 2016. Dadurch brauche ich bei den Verweisen teilweise die "Microsoft Outlook 14.0 Objekt Library" und teilweise die 16.0 Version, sonst kommt die Meldung "Library nicht vorhanden".

Meine Frage: Gibt es eine Möglichkeit beide Libraries gleichzeitig einzubinden, ohne dass bei einer davon immer die Meldung "Library nicht vorhanden" kommt? Gibt es sonst eine andere Lösung für das Problem?

Vielen Dank im Voraus
Beate1953

MaggieMay

Hallo Beate,

welche "internen Gründe" mag es wohl geben, ein funktionsfähiges Konzept über Bord zu werfen?  ???

Das gleichzeitige Einbinden verschiedener Versionen einer Bibliothek ist nicht möglich, würde aber auch das Problem nicht beheben, weil dann immer noch nur eine der beiden gefunden würde. Statt dessen könnte die Lösung hier im "Late Binding" bestehen, also dem Verzicht auf den Verweis - und dem damit verbundenen Zugriff auf Datentypen und Konstanten der Objektbibliothek.

Bei der Suche nach dem genannten Stichwort solltest du reichlich Informationen und auch Code-Beispiele finden.
Freundliche Grüße
MaggieMay

ebs17

ZitatAus internen Gründen soll dies eine einzige DB sein (also nicht Backend mit vielen Frontends) aber von mehreren PCs aus bedient werden können
Da haben die internen Entscheidersicher auch eine ausreichende Kriegskasse bereitstehen, die dann resultierende Probleme überbrückt?
Mit freundlichem Glück Auf!

Eberhard

Beate1953

Hallo,

schade, dass das mit den zwei Verweisen nicht funktioniert.

Mein Chef hat da eine Idee, über einen Link auf dem Access-Formular auf eine HTML-Seite zu kommen und dort die EMail zu generieren. Damit soll ich Outlook und damit den Verweis darauf umgehen können. So ganz habe ich das nicht verstanden, außerdem habe ich Null Ahnung von HTML.

Kann das überhaupt funktionieren?
Bin für jeden Tipp dankbar

Viele Grüße
Beate1953

MaggieMay

Zitatschade, dass das mit den zwei Verweisen nicht funktioniert.
Das ist nicht schade, sondern schlichtweg logisch, ich hatte es doch erklärt.

Wozu HTML und sonstige Kopfstände? Die Umstellung auf Late Binding ist bei bereits ausgetestetem und funktionierendem Code ein Klacks!
Hast du es denn überhaupt schon mal mit der Suche hier im Forum oder sonstwo versucht?

Insgesamt besteht die Umstellung aus drei Schritten:
- Verweis rausnehmen
- Outlook-Objekte mit "As Object" deklarieren
- Outlook-Konstanten durch Direktwerte oder selbst definierte Konstanten ersetzen.
Das sollte doch machbar sein - oder was meinst du?
Freundliche Grüße
MaggieMay

Beate1953

Hallo,

erstmal vielen Dank für Deine Antwort. Ich habe nun einiges über Late Binding gelesen (von dem ich vorher noch nie was gehört hatte). Dabei habe ich auch einiges gefunden - aber leider nicht alles.

Mein bisheriger Code (early binding) funktioniert prima und lautet:

Private Sub MailSenden_Click()
   
Dim objOutlook As Outlook.Application
Dim objMail As Outlook.MailItem
Dim StrText As Variant

Set objOutlook = New Outlook.Application
objOutlook.CreateItem olMailItem
Set objMail = objOutlook.CreateItem(olMailItem)
objMail.Display
objMail.To = "Bueroservice@Retex.Info"
StrText = "Bücherbestellung: BuchID: " & Me!BuchID & "; " & Me!Titel
objMail.Subject = StrText
objMail.Body = "Bitte übersenden Sie mir das o.g. Medium bzw. merken es für mich vor."
   


Nun habe ich gelernt, dass ich eine Public Function in einem Modul brauche, dass ich viel deklarieren muss und CreateObject verwenden.

Damit sieht mein Code nun folgendermaßen aus:

Public Function MailSendenLATE_Click()
   
Dim objOutlook As Object
Dim objMail As Object
Dim StrText As String

Set objOutlook = CreateObject("Outlook.Application")
objOutlook.CreateItem olMailItem
Set objMail = objOutlook.CreateItem(olMailItem)
objMail.Display
objMail.To = "Bueroservice@Retex.Info"
StrText = "Bücherbestellung: BuchID: " & Me!BuchID & "; " & Me!Titel
objMail.Subject = StrText
objMail.Body = "Bitte übersenden Sie mir das o.g. Medium bzw. merken es für mich vor."

End Function

Wahrscheinlich muss ich noch mehr deklarieren, aber ich weiß nicht was. Das mit der Umwandlung von Konstanten ist mir unklar. Sind in meinem Code überhaupt Konstanten (welche)?

Vielen Dank für Eure Hilfe und viele Grüße
Beate1953

Beate1953

Hallo,

habe den Fehler gefunden und das Me durch Forms!FRMStammdaten ersetzt. Jetzt klappt es prima.

Vielen Dank!!!
Beate1953