PDA

Vollständige Version anzeigen : Fehlermeldung bei Modulkompilieren


mdamaschke
22.03.2004, 19:55
Ich habe folgendes Modul aus einer TEST-DB herauskopiert - alles 1:1 übernommen.

---
Dim WordObjekt As Word.Application
Dim WordDok As Word.Document
Dim WdAktiv As Integer

Private Sub btnSerienbrief_Click()

If HauptDok = True Then
WordObjekt.Visible = True
WordObjekt.Activate
Set WordDok = Nothing
Set WordObjekt = Nothing
End If

End Sub

Function HauptDok() As Integer
Dim AktDBName As String
Dim ConnectString As String
Dim SQLString As String
Dim XPfad As String

' Ist Word schon gestartet (ohne Aufruf einer Fremdfunktion) ? geändert Kobd
On Error Resume Next 'See if Word is running
Set WordObjekt = GetObject(, "Word.Application.8")
If Err.Number <> 0 Then 'Word Not running
WdAktiv = False
Err.Clear ' Clear Err object in case error occurred.
'Create a new instance of Word
Set WordObjekt = CreateObject("Word.Application.8")
'Create an instance of Word
Else
WdAktiv = True
WordObjekt.Activate
End If

On Error GoTo HauptDok_Fehler

AktDBName = CurrentDb.Name

' If WordTest = 0 Then
' WdAktiv = False
' Set WordObjekt = _
' GetObject("", "Word.Application")
' Else
' WdAktiv = True
' Set WordObjekt = _
' GetObject(, "Word.Application")
' End If
'
Application.Echo False, "Daten werden an Word übertragen ..."

XPfad = Left(CurrentDb.Name, Len(CurrentDb.Name) - Len(Dir(CurrentDb.Name)))

'Die Textvorlage muß dafür also immer im gleichen Verzeichnis wie die aktuelle mdb sein
' XPfad von Kobd hinzugefügt (scheint mir einfacher ?)
' In der Praxis evtl durch FileDialog in der Maske ersetzen ?

Set WordDok = WordObjekt.Documents.Add(XPfad & "SbrBrfvl.dot")

ConnectString = "DSN=MS Access 97-Datenbank;DBQ=" & AktDBName
SQLString = "SELECT * FROM [tblSbrAdressen]"

With WordDok.MailMerge
.OpenDataSource Name:=AktDBName, _
ReadOnly:=True, LinkToSource:=True, _
Connection:= _
ConnectString, _
SQLStatement:=SQLString

With .Fields
WordDok.Bookmarks("Anschrift").Select
.Add Range:=WordObjekt.Selection.Range, Name:="Vorname"
WordObjekt.Selection.TypeText Text:=" "
.Add Range:=WordObjekt.Selection.Range, Name:="Nachname"
WordObjekt.Selection.TypeParagraph
.Add Range:=WordObjekt.Selection.Range, Name:="Straße"
WordObjekt.Selection.TypeParagraph
WordObjekt.Selection.TypeParagraph
.Add Range:=WordObjekt.Selection.Range, Name:="PLZ"
WordObjekt.Selection.TypeText " "
.Add Range:=WordObjekt.Selection.Range, Name:="Ort"
WordDok.Bookmarks("Anrede").Select
.AddIf Range:=WordObjekt.Selection.Range, _
MergeField:="Geschlecht", Comparison:=wdMergeIfEqual, _
CompareTo:="Weiblich", TrueText:="Sehr geehrte Frau ", _
FalseText:="Sehr geehrter Herr "
WordObjekt.Selection.EndKey Unit:=wdLine
WordObjekt.Selection.MoveLeft Unit:=wdCharacter, Count:=1
.Add Range:=WordObjekt.Selection.Range, Name:="Nachname"
WordDok.Bookmarks("Brieftext").Select
End With

End With

HauptDok = True
Application.Echo True

HauptDok_Ende:
Exit Function

HauptDok_Fehler:
HauptDok = False
Application.Echo True
Set WordDok = Nothing
Set WordObjekt = Nothing
MsgBox "Der Vorgang konnte nicht vollständig beendet werden!"
Resume HauptDok_Ende

End Function

Private Sub btnSeriendruck_Click()

If HauptDok = True Then
With WordDok.MailMerge
.Destination = wdSendToNewDocument
.Execute
End With
With WordObjekt.ActiveDocument
.PrintOut Background:=False
.Close SaveChanges:=wdDoNotSaveChanges
End With
WordDok.Close SaveChanges:=wdDoNotSaveChanges
Set WordDok = Nothing
If WdAktiv = False Then
WordObjekt.Quit
End If
Set WordObjekt = Nothing
End If

End Sub
--

Und erhalte folgende Fehlermeldung:

Benutzerdefinierter Typ nicht definiert! und der rot-markerte Code ist hervorgehoben. Woran liegt das?

Engeli
22.03.2004, 20:07
Hallo

Da fehlen Verweise für Word.

Microsoft Word X.X Object Library.

Im VB _Editor

Menü - Extras - Verweise

Gruss Markus