Gut, dann muß ich vielleicht doch kurz hier mein Problem in Gänze darstellen. Also, ich habe eine Access-Datenbank, die mir allerlei Textdokumente automatisch verschlagwortet. Dazu will ich OpenOffice sagen, welche Datei es öffnen soll und anschließend sollte mir OO die Worte in diesem Dokument in ein Array einlesen und dieses Array an Access zurückgeben, wo es dann weiterverarbeitet wird. Verständlich? Wenn nicht gern mehr über Email, ja?
Mit MS-Word funktioniert diese Zusammenarbeit sehr gut und ich denke mir, dass das entsprechend mit OO auch möglich sein sollte. Eigentlich fehlt mir jetzt zu meinem Glück nur noch der Aufruf meiner OO-Function!
Ja, das ist verständlich.
Ich habe jetzt aber das Gefühl das Du falsch an die Sache herangehst. Was soll der Funktionsaufruf? (Ich kann mir nicht vorstellen das Du bisher in Access ein Makro hast, welches eine in einem Word-Dokument gespeicherte Funktion aufruft und
diese Funktion übergibt dann das Ergebnis an Access.)
Deshalb würde ich das auch für den Fall Access<-->OpenOffice(Writer) anders machen, z.B. so:
Code: Alles auswählen
Private Sub CommandButton1_Click()
'VBA !
Set oServiceManager = CreateObject("com.sun.star.ServiceManager")
Set oDesktop = oServiceManager.createInstance("com.sun.star.frame.Desktop")
Dim aNoArgs()
'Pfad in Notation ConvertToUrl angeben
URL = "File:///D:/Test/test.sxw"
Set Doc = oDesktop.loadComponentFromURL(URL, "_blank", 0, aNoArgs())
Set Cursor = Doc.Text.createTextCursor
Cursor.gotostart (False)
gesamt = ""
Do
Cursor.gotoEndOfParagraph (True)
gesamt = gesamt & Cursor.String & Chr(13)
Proceed = Cursor.gotoNextParagraph(False)
Loop While Proceed
MsgBox gesamt
End Sub
Dieses Makro (von MS Office aus gestartet) öffnet die angegebene *.sxw Datei und liest alle Absätze in eine Variable (gesamt) ein und gibt das dann in eine Message-Box aus.
Natürlich kannst Du auch einzelne Wörter ausgeben und das in ein Array einlesen etc. . Ich hoffe das Prinzip wird auch so deutlich. Ich habe das nicht ausgiebig getestet(*) (benutze zunächst vielleicht nur ein Dokument was einige kurze Absätze enthält und nichts weiter zum Ausprobieren), Fehler werden bisher nicht abgefangen.
(*)ich habe gerade kein Access installiert, getestet unter MS Word 97 und SO 7 PP3 (Windows 2000 Prof. SP4)
Sollte es, wider Erwarten, für den Funktionsaufruf einen spezifischen Grund geben, erkläre mir das bitte nochmal.
Gruß
Stephan