Domino 9 und frühere Versionen > Entwicklung

COM Fehler

<< < (3/5) > >>

Axel:

--- Zitat von: koehlerbv am 29.07.04 - 19:32:32 ---Wie

--- Code: ---Dim session As NotesSession
--- Ende Code ---
aber in VBA funktionieren sollte, ist mir schleierhaft, Andreas. VBA kennt doch kein Objekt oder keine Variable dieses Typs ...

Bernhard

--- Ende Zitat ---

Hi,

das funktioniert auch in VBA. Wenn über Extras - Verweise die Lotus Domino Objects eingebunden werden, dann ist auch so eine Dim - Anweisung möglich. Auch brauch der Notes.ini-Pfad nicht im Path zu stehen.


--- Zitat ---Sub Warhol()
    Dim s As NotesSession
   
    Set s = CreateObject("Lotus.NotesSession")
    Call s.Initialize
    MsgBox s.CommonUserName
End Sub

--- Ende Zitat ---

Das habe ich soeben in VBA (als Word-Macro) getestet. Funktioniert einwandfrei. Ich habe in "grauer Vorzeit", noch zu Office 2000 und Notes 4.6 Word-Vorlagen erstellt, in denen es möglich war, von Word aus in einer Notes-Datenbank nach Adressen zu suchen und die entsprechenden Daten zu übernehmen.

@Aladdin Sane
Ich werde das Gefühl nicht los, dass bei dir Notes nicht sauber in der Registry registriert ist. Schau doch mal mit regedit unter HKEY_CLASSES_ROOT nach ob es da die entsprechenden Einträge, Lotus.NotesSession usw. gibt. Es gibt bei mir zusätzlich auch noch Notes.NotesSession. Vielleicht ist der Eintrag bei dir vorhanden. Eines ist sicher, obiger Code funktioniert ohne Probleme.

Axel


 

koehlerbv:

--- Zitat ---Wenn über Extras - Verweise die Lotus Domino Objects eingebunden werden
--- Ende Zitat ---
Aber warum der Krampf ? Dann müsste doch der Anwender vorher diese Settings selbst vornehmen ...
Aber wie gesagt: Ich mag' ja wirklich momentan auf dem Schlauch stehen oder ein Brett vor'm Kopf haben oder beides ...

Bernhard

animate:
Ich finde, das ist kein Krampf. Im Gegenteil, ich denke, der Weg über CreateObject ist Karmpf.
In VB (und auch in den dotnet-IDE)  ist es üblich, Bibliotheken auf diese Weise einzubinden. Auch die Standardbibliotheken, die du z. B. in Word-VBA nutzt, sind so eingebunden. Schaus dir mal an.
(Ach so, der Entwickler muss den Verweis machen, der Anwender nicht.)

Bei dir, Alladin, ist evtl. die Notes-Bibliothek nicht registriert.
Um sie zu registrieren musst du folgendes in der Kommandozeile eingeben:

regsvr32 c:\programme\lotus\notes\nlsxbe.dll

Musst halt mal probieren, obs dann geht.

koehlerbv:
Hilf mir bitte mal auf die Sprünge, Thomas.
Ich schicke irgendeinem anderen Notes-User ein Excel-Sheet, und in diesem soll ein Makro auf Notes zugreifen. Wie teile ich VBA mit, dass es mit der Klasse NotesSession etwas anzufangen weiss ? Welches Statement ist da erforderlich ?
Und wo liegt der Nachteil von

--- Code: ---Dim s As Variant
Set s = CreateObject("Lotus.NotesSession")
--- Ende Code ---

Wie gesagt - ich stehe heute sicherlich auf dem Schlauch und habe viel zu lange immer nur aus der anderen Richtung gearbeitet ...

Merci,
Bernhard

animate:
also du erzeugst ein Makro in einem Excel-Sheet.
Da du wießt, dass du die Notes-Bibliothek verwenden willst, machst du das Excel bekannt, in dem du einen Verweis auf diese Bibliothek erstellst (Extras->Verweise... und da dann die Notes-Bibliothek ankreuzen. Weiß nicht genau, wie die heißt. Dort siehst du dann auch, dass die Bibliothek, die dir die Excel-Klassen zur Verfügung stellt, genauso eingebunden ist.)

Du erstellst das Makro und kannst da drin alle Klassen verwenden, die dir die Bibliothek zur Verfügung stellt.

Du schickst die Datei einem User, bei dem die Bibliothek vorhanden ist. Er muss nix tun. Die Verweise auf Bibliotheken werden mit dem Makro gespeichert.

Vorteil ist z.B. Typsicherheit, Auto-Code-Komplettierung (Strg-Space)

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln