Hallo, ich habe in meiner Datenbank ein Worddokument mit Textmarken verknüpft: .Documents.Open ("C:\Dateien_Klientenverwaltung\Einwilligung Datenschutz.dotx") 'das zu öffnende Worddokument
Diese Lösung ist leider statisch. Der Pfad muss direkt im Code hinterlegt werden.
Ich möchte, dass der jeweilige Benutzer das Dokument auswählen kann, wenn er auf den Button klickt, und die letzte Auswahl beim nächsten Aufruf als Standard hinterlegt ist. Kann mir jemand helfen?
Hier der komplette Code, den ich momentan benutze:
Private Sub Befehl346_Click()
Dim objWord As Word.Application
Set objWord = CreateObject("Word.Application")
With objWord
.Visible = True
.Documents.Open ("C:\Dateien_Klientenverwaltung\Einwilligung Datenschutz.dotx") 'das zu öffnende Worddokument
.ActiveDocument.Bookmarks("Name").Select 'gehe zur Textmarke "Anrede"
.Selection.Text = Me.Klienten_Name & ", " & Me.Klienten_Vorname 'schreibe in das Feld, was im Formular im Feld Anrede steht
.ActiveDocument.Bookmarks("Geburtsdatum").Select
.Selection.Text = Me.Klienten_Geburt
.ActiveDocument.Bookmarks("Adresse").Select
.Selection.Text = Me.Klienten_PLZ & " " & Me.Klienten_Ort & ", " & Me.Klienten_Adresse
End With
Set objWord = Nothing
End Sub
Eine Lösung wäre echt grandios!
Hallo,
Zitat"..dass der jeweilige Benutzer das Dokument auswählen kann.."
dabei hilft Dir ein Datei-Auswahldialog, (z.b. Application.Filedialog aus der MSO-Bibliothek).
Der ausgewählte Dateinamen kann für spätere Verwendung in
-- einer Tabelle
-- in einer benutzerdefinierten Eigenschaft
-- in einer ini-Datei
-- in der Windows-Registry
hinterlegt werden.
Hallo Marco71,
einen Dateidialog findest du z.B. im DBWiki.
http://dbwiki.net/wiki/VBA_Tipp:_Dateiauswahl-Dialog_1 (http://dbwiki.net/wiki/VBA_Tipp:_Dateiauswahl-Dialog_1)
http://dbwiki.net/wiki/VBA_Tipp:_Dateiauswahl-Dialog_2 (http://dbwiki.net/wiki/VBA_Tipp:_Dateiauswahl-Dialog_2)
Gruß
Josef
Offensichtlich wird hier ein Template verwendet .dotx
Insofern sollte man das Dokument mit .ADD öffnen und nicht mit .OPEN, um das Template zu erhalten.
Anbei ein etwas aufgeräumteren Codevorschlag zu dem bislang gezeigten:
Dim objWord As Word.Application
Dim docWord As Word.Document
Set objWord = CreateObject("Word.Application")
With objWord
.Visible = True
Set docWord = .Documents.Add("C:\irgendwas\dok1.dotx") 'das zu öffnende Worddokument
With docWord
.Bookmarks("Name").Range.Text = Me.Klienten_Name & ", " & Me.Klienten_Vorname 'schreibe in das Feld, was im Formular im Feld Anrede steht
.Bookmarks("Geburtsdatum").Range.Text = Me.Klienten_Geburt
.Bookmarks("Adresse").Range.Text = Me.Klienten_PLZ & " " & Me.Klienten_Ort & ", " & Me.Klienten_Adresse
End With
End With
Set objWord = Nothing