PDA

Vollständige Version anzeigen : Krise mit Access und Übergabe an Word


IT-Fuzzi
06.05.2004, 17:57
Hiho,

Ich will aus Access ein Word Dokument (eine Vorlage also *.dot) öffnen, die Daten aus meinem Formular eintragen und fertitsch.

Es funzt einwandfrei nur hab ich 2 Probleme mit denen ich nicht weiterkomme:

1.) Ich habe Formularfelder (z.B. Ansprechpartner o.ä) welche nicht immer ausgefüllt sind. Wenn die also leer sind habe ich im Word Adressblock eine häßliche Lücke.

2.) Er öffnet mir die Vorlage jedesmal als VORLAGE und nicht als Dokument.

Könnt Ihr mir weiterhelfen?

Mein Code:

On Error GoTo Befehl98_Err

Dim oApp As Object

Set oApp = CreateObject("Word.Application")
oApp.Visible = True
With oApp

'Sichtbar machen
.Visible = True

'Dokument öffnen
.Documents.Open ("D:\Hotel\Hotelrechnung.dot")

.ActiveDocument.Bookmarks("Anrede").Select
.Selection.Text = (CStr(Forms!Hotelrechnung!Anrede))
.ActiveDocument.Bookmarks("Name").Select
.Selection.Text = (CStr(Forms!Hotelrechnung!Name))
.ActiveDocument.Bookmarks("Vorname").Select
.Selection.Text = (CStr(Forms!Hotelrechnung!Vorname))
.ActiveDocument.Bookmarks("Plz").Select
.Selection.Text = (CStr(Forms!Hotelrechnung!Plz))
.ActiveDocument.Bookmarks("Straße").Select
.Selection.Text = (CStr(Forms!Hotelrechnung!Straße))
.ActiveDocument.Bookmarks("Ort").Select
.Selection.Text = (CStr(Forms!Hotelrechnung!Ort))
.ActiveDocument.Bookmarks("Nr").Select
.Selection.Text = (CStr(Forms!Hotelrechnung!Nr))
.ActiveDocument.Bookmarks("Datum").Select
.Selection.Text = (CStr(Forms!Hotelrechnung!Datum))
.ActiveDocument.Bookmarks("Ansprechpartner").Select
.Selection.Text = (CStr(Forms!Hotelrechnung!Ansprechpartner))

End With
Exit Sub

Befehl98_Err:
'If a field on the form is empty, remove the bookmark text, and
'continue.
If Err.Number = 94 Then
oApp.Selection.Text = ""
Resume Next
Exit Sub


Der rote Text müsste doch dafür sorgen dass meine leeren Felder im Word Brief verschwinden oder ?
Geht aber nicht :(

reinir
06.05.2004, 18:00
so öffnet er Dir ein neues Doc basierend auf Deiner Vorlage:

'Dokument öffnen
.Documents.Add ("D:\Hotel\Hotelrechnung.dot")


Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

IT-Fuzzi
06.05.2004, 18:07
Klasse! Vielen Dank.
ein Problem wäre gelöst.

Bleibt noch die Frage mit den leeren Feldern...

jmc
06.05.2004, 20:50
Hi

Gegenfrage: kommt der Error 94 überhaupt zum tragen ?

Dann wäre die Frage WIE du die Bookmarks gesetzt hast.
An sich ist ein Bookmark ja unsichtbar und kann sich nur auf einer Position im Word-Dok befinden, oder der Bookmark kann über einen ganzen Text gesetzt werden.

Ich nehme mal an, dass du in der Vorlage die Begriffe wie z.b. "Anrede" ausgeschrieben hast, aber beim setzen des Bookmark den Cursor einfach davor gesetzt. Somit ist der Bookmark nur die Position VOR dem "A" ...
Markiere das ganze Wort und setze dann den Bookmark. Dann müsste es funktionieren (jedenfalls so habe ich es bei mir mal gemacht ..)

IT-Fuzzi
06.05.2004, 22:10
Gute Idee, Du hast Recht - es war wirklich nur der 1. Buchstabe als Bookmark gesetzt.
Habe es aber jetzt so gelöst, dass ich im Formular ein ungebundenes Textfeld (adresse) gesetzt habe, welches meinen kompletten Adressblock enthält (mit dem Code (Zchn$(13)+(10)) mache ich die Zeilenumbrüche)
Dann habe ich nur noch einen Bookmark und der wird nur mit Daten ausgefüllt die auch im Form drin sind.
Alle weiteren Bookmarks (z.B. Datum, Kundennummer, Rechnungsnummer ect) kann ich ja über normale Bookmars laufen lassen.