Supportnet / Forum / Datenbanken
Access Formular Daten in Word Dokument einfügen
Frage
Hallo zusammen.
Habe folgendes Problem:
Ich möchte per Befehlsschaltfläche die gerade in einem Formular erfassten Daten per Befehlsschaltfläche in ein vorbereitetes Word Dokument übernehmen. D.h. ich habe in dem Formular z.B. einen Kunden mit Anschrift und diese Daten sollen automatisch in einen Briefkopf geschrieben werden, so das ich dann manuell den Brief schreiben kann.
Danke schon mal im voraus.
Antwort 1 von Netzkoordinator
Private Sub btnAdresseNachWord_Click()
´### Adresse erstellen mit WORD ################
Dim wwobj As Object ´für ein Wordobjekt
Dim transfertxt As String ´Variable für die zu übergebenen Werte aus den Feldern
Dim vorlage As String ´der Name der Vorlage
On Error GoTo WORDFEHLER ´Fehlerbehandlung
´neues Objekt erstellen
Set wwobj = CreateObject("Word.Application")
wwobj.Visible = True
´maximieren
´wwobj.WindowState = wdWindowStateMaximize
wwobj.WindowState = 1
´Vorlage -Brief.dot- für neues Dokument aus Einstellungstabelle auslesen
vorlage = GetEinstellung("Adressen") ´Tabelle, wo der Pfad zur Vorlage hinterlegt ist
´neues Dokument erstellen
wwobj.Documents.Add Template:=vorlage
´Übergabe der Feldinhalte an Textmarken (TM...)
´KundenNummer
wwobj.Selection.GoTo What:=-1, Name:="TMKNDNr" ´Textmarke KundenNummer
transfertxt = Me.KundenNummer
wwobj.Selection.TypeText Text:=transfertxt
´Vorname
wwobj.Selection.GoTo What:=-1, Name:="TMVorname"
transfertxt = Me!Vorname
wwobj.Selection.TypeText Text:=transfertxt
´Nachname
wwobj.Selection.GoTo What:=-1, Name:="TMNachName"
transfertxt = Me!NachName
wwobj.Selection.TypeText Text:=transfertxt
´usw ...
´Wordobjekt leeren
Set wwobj = Nothing
WORDENDE:
Exit Sub
WORDFEHLER:
´Hier kannst du eine Fehlerbehandlung einbauen
Dieser Code geht von einer Wordvorlage aus, die sich an einem vordefinierten (Abgelegt in einer Tabelle mit LW:\Pfad\Dateiname) Ort befinden muß.
Die Wordvorlage Brief.dot muß noch Textmarken haben, die die Daten aus Access aufnimmt.
HINWEIS: Den Cod einfach abtippen oder per D&D übernehmen, führ siche nicht zum Erfolg.
Es ist nicht so einfach, komplexe Aufgaben in Access zu realisieren und hier auch noch zu Dokumentieren ...
Antwort 2 von MarcoB10
Das sieht doch schon sehr gut aus. Ich denke ich werde es mit diesem Gerüst als Basis hinbekommen.
Vielen Dank.
Vielen Dank.
Antwort 3 von MarcoB10
Hallo, ich nochmal.
Das Modul funktioniert jetzt.
Nur wie weise ich das Modul einer Befehlsschaltfläche zu?
gruß
Marco
Das Modul funktioniert jetzt.
Nur wie weise ich das Modul einer Befehlsschaltfläche zu?
gruß
Marco
Antwort 4 von MarcoB10
Halt.
Habs schon gefunden.
Danke nochmal.
Habs schon gefunden.
Danke nochmal.
Antwort 5 von Netzkoordinator
Ich ´male´ erst die Schaltfläche, weise ihr eine Bezeichnung zu und rufe dann den VBA-Modus auf, das hat den Vorteil, daß dann schon der Click-Name zum Button passt und man da nichts mehr ändern muß und kann dann den Code bearbeiten oder erstellen oder einfügen ...
Antwort 6 von MarcoB10
Hi.
Also irgendwie gestaltet sich das noch ein wenig problematisch.
Ich habe den Code einer Schltfläche in meinem Formular zugewiesen. In meiner Wordvorlage habe ich die Textmarkrn eingefügt. Cursor an die Position der Marke -> Einfügen -> Textmarke -> Name der Marke.
Wenn ich jetzt den Button betätige offnet sich auch das Dokument, nur leider wird nichts in den Textmarken eingefügt.
Ich kopiere dir noch mal den Code hier rein. Vielleicht ist da ja noch ein Fehler.
Schonmal Danke im voraus.
Gruß Marco
Private Sub Befehl8_Click()
´### Adresse erstellen mit WORD ################
Dim wwobj As Object ´für ein Wordobjekt
Dim transfertxt As String ´Variable für die zu übergebenen Werte aus den Feldern
Dim charter As String ´der Name der Vorlage
On Error GoTo WORDFEHLER ´Fehlerbehandlung
´neues Objekt erstellen
Set wwobj = CreateObject("Word.Application")
wwobj.Visible = True
´maximieren
´wwobj.WindowState = wdWindowStateMaximize
wwobj.WindowState = 1
´Vorlage -Brief.dot- für neues Dokument aus Einstellungstabelle auslesen
charter = "c:\charter.dot"
´Tabelle, wo der Pfad zur Vorlage hinterlegt ist
´neues Dokument erstellen
wwobj.Documents.Add Template:="c:\charter.dot"
´Übergabe der Feldinhalte an Textmarken (TM...)
´KundenNummer
´wwobj.Selection.GoTo What:=-1, Name:="TMKNDNr" ´Textmarke KundenNummer
´transfertxt = Kunden.kd - nr
´wwobj.Selection.TypeText Text:=transfertxt
´Vorname
wwobj.Selection.GoTo What:=-1, Vorname:="TMvorname"
transfertxt = Kunden!Vorname
wwobj.Selection.TypeText Text:=transfertxt
´Name
wwobj.Selection.GoTo What:=-1, Name:="TMname"
transfertxt = Kunden!Name
wwobj.Selection.TypeText Text:=transfertxt
´usw ...
´Wordobjekt leeren
´Set wwobj = Nothing
WORDENDE:
Exit Sub
WORDFEHLER:
Also irgendwie gestaltet sich das noch ein wenig problematisch.
Ich habe den Code einer Schltfläche in meinem Formular zugewiesen. In meiner Wordvorlage habe ich die Textmarkrn eingefügt. Cursor an die Position der Marke -> Einfügen -> Textmarke -> Name der Marke.
Wenn ich jetzt den Button betätige offnet sich auch das Dokument, nur leider wird nichts in den Textmarken eingefügt.
Ich kopiere dir noch mal den Code hier rein. Vielleicht ist da ja noch ein Fehler.
Schonmal Danke im voraus.
Gruß Marco
Private Sub Befehl8_Click()
´### Adresse erstellen mit WORD ################
Dim wwobj As Object ´für ein Wordobjekt
Dim transfertxt As String ´Variable für die zu übergebenen Werte aus den Feldern
Dim charter As String ´der Name der Vorlage
On Error GoTo WORDFEHLER ´Fehlerbehandlung
´neues Objekt erstellen
Set wwobj = CreateObject("Word.Application")
wwobj.Visible = True
´maximieren
´wwobj.WindowState = wdWindowStateMaximize
wwobj.WindowState = 1
´Vorlage -Brief.dot- für neues Dokument aus Einstellungstabelle auslesen
charter = "c:\charter.dot"
´Tabelle, wo der Pfad zur Vorlage hinterlegt ist
´neues Dokument erstellen
wwobj.Documents.Add Template:="c:\charter.dot"
´Übergabe der Feldinhalte an Textmarken (TM...)
´KundenNummer
´wwobj.Selection.GoTo What:=-1, Name:="TMKNDNr" ´Textmarke KundenNummer
´transfertxt = Kunden.kd - nr
´wwobj.Selection.TypeText Text:=transfertxt
´Vorname
wwobj.Selection.GoTo What:=-1, Vorname:="TMvorname"
transfertxt = Kunden!Vorname
wwobj.Selection.TypeText Text:=transfertxt
´Name
wwobj.Selection.GoTo What:=-1, Name:="TMname"
transfertxt = Kunden!Name
wwobj.Selection.TypeText Text:=transfertxt
´usw ...
´Wordobjekt leeren
´Set wwobj = Nothing
WORDENDE:
Exit Sub
WORDFEHLER: