Hallo,
jetzt habe ich ein neues Problem:
ich möchte aus einen Formular über eine Befehlschaltfläche ein Brief verschicken. Dafür soll ein vorhandener Briefentwurf (.doc) geöffnet werden und die Adressdaten aus dem Formular entnommen werden.
Bisher habe ich aus den Weiten des Internets folgendes heraus gesucht und gemacht:
1)Ich habe im Word-Dokument die Adressdaten einzelnd markiert und unter "Einfügenfügen" "Textmarken" gespeichert.
2) Dann habe ich unter "Microsoft Visual Basic/Extras/Verweise/Microsoft word 14.0 object library" freigegeben
3) Dann habe ich im Formular "Personensuche" den Button erstellt mit folgender "Ereignisprozedur:
Private Sub MergeButton_Click()
On Error GoTo MergeButton_Err
Dim objWord As Word.Application
'Start Microsoft Word 2010.
Set objWord = CreateObject("Word.Application")
With objWord
'Make the application visible.
.Visible = True
'Open the document.
.Documents.Open ("C:\Briefvorlage mein Dokument.doc")
'Move to each bookmark and insert text from the form.
.ActiveDocument.Bookmarks("Anrede").Select
.Selection.Text = (CStr(Forms!Personensuche!Anrede))
.ActiveDocument.Bookmarks("Vorname").Select
.Selection.Text = (CStr(Forms!Personensuche!Name))
.ActiveDocument.Bookmarks("Nachname").Select
.Selection.Text = (CStr(Forms!Personensuche!Nachname))
.ActiveDocument.Bookmarks("Straße").Select
.Selection.Text = (CStr(Forms!Personensuche!Straße))
.ActiveDocument.Bookmarks("PLZ").Select
.Selection.Text = (CStr(Forms!Personensuche!PLZ))
.ActiveDocument.Bookmarks("Ort").Select
.Selection.Text = (CStr(Forms!Personensuche!Ort))
End With
'Print the document in the foreground so Microsoft Word will not close
'until the document finishes printing.
'objWord.ActiveDocument.PrintOut Background:=False
'Close the document without saving changes.
'objWord.ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
'Quit Microsoft Word and release the object variable.
'objWord.Quit
'Set objWord = Nothing
Exit Sub
MergeButton_Err:
'If a field on the form is empty, remove the bookmark text, and
'continue.
If Err.Number = 94 Then
objWord.Selection.Text = ""
Resume Next
End If
Exit Sub
End Sub
Wenn ich jetzt den Button drücke, bekomme ich eine Fehlermeldung (angehängt)
Da ich mir die ganzen Sachen zusammensuche und nicht sooo viel Ahnung habe, ist es schwer, den Fehler zu finden.
Kann mir jemand helfen?
Das "Eigenschaftenblatt habe ich auch mit dran gehängt.
Danke
[Anhang gelöscht durch Administrator]
Hallo,
öffne den VBA-Editor, gehe in diese Ereignisprozedur und kompiliere den Code mittels des entspr. Menüpunktes.
Und/oder setz einen Haltepunkt an den Beginn des Codes und durchfahre ihn im Einzelschritt-Modus.
Auf den ersten Blick sehe ich keinen Syntaxfehler, wobei allerdings der Errorhandler sicherlich verbesserungsbedürftig ist.
'objWord.Quit
'Set objWord = Nothing
sollten immer aktiv sein (d. h. nicht auskommentiert sein und immer abgearbeitet werden), sonst drohen eine Unmenge von Word-Instanzen (im Taskmanger zu überprüfen)