Access-Daten in Word exportieren

VBFreak

Mitglied
Hallo erstmal!

Ich habe eine Access 2000-Datenbank und möchte einen Datensatz in ein Word-Dokument (basierend auf einer .dot) exportieren. Im neuem Word-Dokument sind zu ersetzende Bereiche durch Spitze klammern abgegrenzt.

zur Verdeutlichung:
<Feld1> Fließtext <Feld2> ...

Bei einem Klick auf einem Button in einem Formular in Access 2000 soll Word gestartet, die .dot geladen werden (als neues Dokument, nicht die .dot an sich) und die Felder im Word-Dokument durch die Felder des Formulars ersetzt werden. Weiß jemand, wie man das über ein Makro oder ein Modul realisieren kann?

Vielen Dank
VBFreak
 
Zuletzt bearbeitet:
GetObject

Ich habe versucht dein Problem anhand eines Beispiels zu lösen.
Zunächst ein paar Bemerkungen:
1.) Die Sache mit den Feldern "<Feld1>" etc. ist nicht sehr elegant, Word bietet die Möglichkeit mit Textmarken/Feldern zu arbeiten. Egal, in meinem Beispiel habe ich es so gemacht wie du es hast.
2.) Ich arbeite mit einem Worddokument (*.doc) als Textquelle und speichere dies dann einfach unter einem neuen Namen (ausgabe.doc), habe deinen Text nicht gründlich gelesen :)

Zu meinem Beispiel:
Also das ganze basiert auf OLE und benutzt die "Ersetzen-Methode" von Word. Deshalb ist es wichtig, dass in Access im Visual-Basic-Editor unter "Extras->Verweise" die "microsoft word object Library" eingebunden ist.

Wenn du dir den Code anschauen willst, bzw. du ihn verbessern willst einfach im entwurfsmodus des Formular Kontakt die Ereigniseigenschaft der Schältfläche "Ausgabe" anklicken.

Hoffe, dass dir das hilft
gruß
thekorn
 

Anhänge

  • access_word.rar
    15,9 KB · Aufrufe: 1.172
Danke für deine schnelle Hilfe

Sowas ähnliches habe ich gesucht.

Nur wollte ich, dass eine Vorlage (.dot) als Word-Dokument (.doc) geöffnet wird und in dieser die Felder ersetzt werden, anschließend soll das Word-Fenster über dem Access-Fenster liegen. Es soll der Benutzer dann selber entscheiden unter welchem Dateinamen er das Ergebnis speichern will.
 
hi,
Word und damit ein neues Worddoc öffest du so :

Code:
   Dim  o_NewWord As Object
   Set o_NewWord = CreateObject("Word.Application")
    o_NewWord.Visible = True
    o_NewWord.Documents.Add

und der zugriff auf das Doc.:

Code:
With o_NewWord.Selection
    .TypeText Text:="bla bla bla"
End With

Mfg col.blake
 
hi VBFreak,
wenn du ein schon bestehendes .dot Document öffnen willst, dann ersetzte:
Code:
o_NewWord.Documents.Add
durch
Code:
objWord.Documents.Open "C:\ ... \ xxx.dot"

Mfg col.blake
 
Hallo Leute!

Ich hatte dasselbe Problem, wie VBFreak, und kam dank Eurer Hilfe wunderbar klar. Ich bräuchte aber Eure Hilfe bei einer "Erweiterung".
Wenn ich zwei Formulare habe, auf dem ersten befindet sich Name, Vorname und Ort, auf dem zweiten Formular befindet sich Geburtsdatum, Geburtsort etc.
Wenn ich beide unabhängig voneinerander im selben Word Dokument speichern möchte, "überschreibt" er mir immer das vorhergehende.
Beispiel in Word steht in einer Datei:
<Name>,<Vorname>, <Ort>, <Geburtsdatum>, <Geburtsort>
übertrage ich Formular1in Word finde ich es folgendermaßen vor:
Max, Mustermann, Musterstadt,<Geburtsdatum>,<Geburtsort>
übertrage ich danach das 2.Formular, welche über FK zusammengehören sieht es so aus:
<Name>,<Vorname>,<Ort>, 01.01.1900, Musterdorf

Wie kann ich zusammenhängende Datensätze in Word übertragen von unterschiedlichen Formularen? Ich kann doch nicht eine Abfrage über alles erstellen.....
Wäre schön, wenn Ihr mir bei diesem Problem helfen könntet.
Übrigends, kann mir jemand sagen, wie ich das "professioneller" mit den Textmarken/Felder in Word gestalte?

Danke Nicki
 
Hallo Nicki,

Ich verstehe nicht ganz dein Prob. Zum Professionelleren Umgang mit Felder :

Erstelle die Felder und gib ihnen gute und kurze Namen (Eigenschaften).

Ansprechen kannst du die Felder über folgenden Schnipsel
(Verweis auf MS Word Object Library 9.0 oder höher nötig)

Dim WordApp As Word.Application
Set WordApp = CreateObject("Word.Application")
WordApp.Documents.Add Template:=WordVorlagePfad
With WordApp.ActiveDocument
.FormFields("FeldName").Range.Text = "Neuer Text"
End With

-> 2 NACHTEILE: geschützte Felder können so nicht gefüllt werden und ungschützte werden durch den neuen Text ersetzt.

Hoffe das hilft etwas weiter


@colblake:

Wie du Siehst Kann man mit "WordApp.Documents.Add Template:=WordVorlagePfad"
eine Vorlage als .doc öffnen.
 
Zuletzt bearbeitet:
Hallo. Ich habe ebendfalls eine Frage die vielleicht mit der vorherigen Frage zusammenhängt. In diesem Artikel wird das Ersetzen der Textmarken angewendet um die Einträge in einer Datenbank mit den vorhandenen zu ersetzen. Muss man aber so viele zu ersetzende Textmarken im Worddokument haben passend mit der Menge an Daten in der Datenbank oder kann man das auch so machen das es einmal reicht eine Textmarke zu setzen und dann mehrere Daten aus der Datenbank in das Dokument einzulesen. Z.B. habe ich ein Datensatz mit "Bezeichnung 1" und der andere Datensatz hat einen Eintrag mit "Bezeichnung 2" usw. Alle sollen dann in das Dokument. Bei eurer Lösung kann man aber nur z.B. 2 Datensätze einlesen wenn man 2 Textmarken eingetragen hat.

Mein Gedanke ist gefilterte Datensätze also diese bestimmten in ein Worddokument einzulesen mittels Button im Formular.

Wäre für Hilfe dankbar.
 
Zurück