Einbinden von Accessdaten in Word

29/10/2007 - 11:43 von Holger | Report spam
Hallo zusammen,
ich habe ein Problem mit dem unten stehenden Code. Dies ist ein Auszug aus
einer Access Datenbank. In einem Formular habe ich Daten, die in
Formularfeldern in einen Brief eingebettet werden sollen. Dafür habe ich
einen Button erzeugt, in dessen Ereignis dieser Code steht. Das Füllen
funktioniert auch, aber bevor das Worddokument gedruckt wird, wirft er alle
Daten aus dem Brief heraus und druckt den Brief mit leeren Textfeldern. Auch
wenn ich die Zeit der Schleife verlàngere passiert das Gleiche. Kurios ist,
das er das anfangs gemacht hat. Jetzt aber nicht mehr. Weißt jemand was ich
da falsch mache? Wenn ja, oder wenn jemand eine bessere Idee hast, dann wàre
ich dir für eine kurze Info dankbar.


Private Sub Ausgangspost_drucken_Click()

Dim name As String
Dim vorname As String
Dim Anschrift As String
Dim PLZ As String
Dim Ort As String
Dim Anrede As String
Dim Anrede1 As String
Dim Anfang As Date
Dim Ende As Date
Dim wrdApp As Object
Dim wrdDoc As Object
Dim oRange
'Zusage drucken

If Zusage.Value = True Then
vorname = [Form_Bewerber bearbeiten 2].[BewerberVorname]
name = [Form_Bewerber bearbeiten 2].[BewerberName]
Anschrift = [Form_Bewerber bearbeiten 2].[Straße_Nr]
PLZ = [Form_Bewerber bearbeiten 2].[PLZ]
Ort = [Form_Bewerber bearbeiten 2].[Wohnort]
If [Form_Bewerber bearbeiten 2].[Geschlecht] = "mànnlich" Then
Anrede = "geehrter Herr"
If [Form_Bewerber bearbeiten 2].[Geschlecht] = "weiblich" Then
Anrede = "geehrte Frau"
If [Form_Bewerber bearbeiten 2].[Geschlecht] = "mànnlich" Then
Anrede1 = "Herrn"
If [Form_Bewerber bearbeiten 2].[Geschlecht] = "weiblich" Then
Anrede1 = "Frau"
Anfang = [Form_Bewerber bearbeiten 2].[Bewdatanfang]
Ende = [Form_Bewerber bearbeiten 2].[Bewdatende]

Set wrdApp = CreateObject("Word.Application")
wrdApp.Documents.Open ("T:\Heidemeyer\Schülerpraktikanten\Zusage.doc")
Set wrdDoc = wrdApp.activedocument
wrdApp.Visible = True

With wrdDoc
.formfields("text4").result = Anrede1
.formfields("text5").result = vorname & " " & name
.formfields("text6").result = Anschrift
.formfields("text7").result = PLZ & " " & Ort
.formfields("text13").result = Anrede
.formfields("text8").result = name
.formfields("text9").result = Anfang
.formfields("text10").result = Ende
.formfields("text11").result = Anfang
.PrintOut
End With
Dim Pausenlànge, Start
Pausenlànge = 3 ' Dauer festlegen.
Start = Timer ' Anfangszeit setzen.
Do While Timer < Start + Pausenlànge
DoEvents ' Steuerung an andere Prozesse
' abgeben.
Loop

wrdDoc.Close SaveChanges:=wdDoNotSaveChanges
wrdApp.Quit

Set wrdApp = Nothing
Set wrdDoc = Nothing
With [Form_Bewerber bearbeiten 2 Unterformular].Text56
.SetFocus
.Text = Date
End With
End If

End Sub
 

Lesen sie die antworten

#1 Jens Schilling
29/10/2007 - 12:51 | Warnen spam
Hallo, Holger

Holger wrote:
Hallo zusammen,
ich habe ein Problem mit dem unten stehenden Code. Dies ist ein
Auszug aus einer Access Datenbank. In einem Formular habe ich Daten,
die in Formularfeldern in einen Brief eingebettet werden sollen.
Dafür habe ich einen Button erzeugt, in dessen Ereignis dieser Code
steht. Das Füllen funktioniert auch, aber bevor das Worddokument
gedruckt wird, wirft er alle Daten aus dem Brief heraus und druckt
den Brief mit leeren Textfeldern. Auch wenn ich die Zeit der Schleife
verlàngere passiert das Gleiche. Kurios ist, das er das anfangs
gemacht hat. Jetzt aber nicht mehr. Weißt jemand was ich da falsch
mache? Wenn ja, oder wenn jemand eine bessere Idee hast, dann wàre
ich dir für eine kurze Info dankbar.



[Snip]

Set wrdApp = CreateObject("Word.Application")
wrdApp.Documents.Open
("T:\Heidemeyer\Schülerpraktikanten\Zusage.doc")
Set wrdDoc = wrdApp.activedocument wrd



Schau mal, ob's Dir hilft, wenn Du den Objektverweis direkt setzt, statt mit
dem "Set wrdDoc = wrdApp.activedocument ", also etwa so:

Set wrdDoc = wrdApp.Documents.Open
("T:\Heidemeyer\Schülerpraktikanten\Zusage.doc")

Gruss
Jens
______________________________
FAQ: http://www.donkarl.com

Ähnliche fragen