PDA

Vollständige Version anzeigen : acc97 word97 - Verweise flasch?


AFrick
26.09.2003, 07:45
Hallo,

bei folgender Aufgabenstellung habe ich ein Problem:

geöffnet ist ein Word-Dokument (word97 SR2) und eine access-Datenbank (access97 SR2).
Ein im wordDokument markierter Text soll mit folgendem Code in die Tabelle 'Eingabe' der access-DB kopiert werden:

Option Compare Database
Public Dateipfad As String
Public docApp As Word.Application
Public appAC As Access.Application

Sub Interview_laden(Dateipfad)

Set docApp = CreateObject("Word.Application")

docApp.Documents.Open (Dateipfad) 'Dateipfad wird aus anderer Prozedur übergeben (fehlerfrei)

docApp.Visible = True
docApp.Activate

End Sub

'Nun soll der Benutzer einen Text markieren. Über eine Befehlsschaltfläche in einem Fromular, was gleichzeitig mit dem word-Dokument geöffnet ist, wird folgende Prozedur aufgerufen:

Sub Selektion()

Dim Textteil As String

'Texterkennung der Markierung:
' (*) hier steht der Cursor beim Debuggen
Textteil = Selection.Text

'access-Tabelle ansprechen und füllen mit aktuellem Datensatz:

Set db = CurrentDb()
Set rst = db.OpenRecordset("Eingabe")

With rst
If .Updatable Then
.AddNew
!Text = Textteil
.Update
End If
End With
rst.Close

'Jetzt die word-Datei für weitere Textmarkierung einblenden:

docApp.Visible = True
docApp.Activate

End Sub

Gelegentlich (!) bekomme ich folgende Fehlermeldung (*):

"...
Laufzeitfehler '-2147023174 (800706ba)':
Automatisierungsfehler
Der RPC-Server ist nicht verfügbar.
..."

Liegt das u.U. an meinen Verweisen?
Ich habe (word97 und access97) folgende Verweise festgelegt (bzw. waren vorhanden):

X Visual Basic for Applications
X Microsoft Access 8.0 Object Library
X Microsoft DAO 3.51 Object Library
X Microsoft Word 8.0 Object Library
X Microsoft Forms 2.0 Object Library
X Microsoft Shell Controlls and Automation
X Microsoft Office 9.0 Object Library

Vielen Dank für Infos,
Gruß
AFrick

MRR
26.09.2003, 07:49
Hallo AFrick,
wo steht denn der Code von
Textteil = Selection.Text
? In einer Access-Prozedur (Formular)? Dann sollte es eigentlich gehen mit
Textteil = docApp.Selection.Text
Oder?

AFrick
26.09.2003, 08:07
Hallo MRR,
Der Code steht in access.

Mit dem vorangestellten docApp.Selectioin scheint's zu klappen!
Danke für den Hinweis! :-)

Bei der Gelegenheit: Was hälst Du von der folgenden Übernahme der Seitenzahl der Markierung? "Sanf" sieht mir unnötig kompliziert aus. Gibt's da was besseres?

Textteil = docApp.Selection.Text
Sanf = ActiveDocument.Range(Selection.Range.Start, Selection.Range.Start).Information(wdActiveEndPageNumber)
Send = docApp.Selection.Information(wdActiveEndPageNumber)

Gruß
AFrick