Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: thomut am Juni 12, 2010, 14:34:35

Titel: Import expor word access
Beitrag von: thomut am Juni 12, 2010, 14:34:35
Hallo, habe mal eine kleine Frage. Ich habe eine access Datenbank mit Patientendaten (Name ,Vorn. geb.Dat.e.c.t.), ich möchte nun gern verschiedene Daten wie Name Vorname geb.Dat. in eine vorhande Word 2007 Datei in den Kopfbogen schreiben, das ganze soll auch noch an immer derselben stelle im Kopfbogen stehen und zum schluss möchte ich das ganze noch unter dem aktuellen Patientennamen als word datei speichern. Ich finde leider keinen ansatz, hat womöglich jemand eine Idee wie man das ganze realisieren kann?
Mfg T.Muth
Titel: Re: Import expor word access
Beitrag von: DF6GL am Juni 12, 2010, 14:45:16
Hallo,

klar gibt es Ideen und sogar Lösungen:  ;)

1) In Word ein Hauptdokument für die Basis eines Serienbriefes erstellen und damit auf eine Abfrage in der MDB-Datei zugreifen.

2) Eine Word-Vorlage-Datei erstellen, die passende Textmarken enthält. Aus Access heraus Word fernsteuern( automatisieren) und damit ein neues Dokument auf Basis der Vorlage erstellen. Die Textmarken mit den Werten aus der DB (z. B. mittels DAO/ADO-Recordsets ersetzen.

3) Wie P2, jedoch statt Textfelder Serienbrieffelder benutzen und mittels der Word-Mailmerge-Methode einen Word-Serienbrief generieren, (auch wenn er nur aus einem einzigem Einzelbrief besteht.)



Weiterhin bringt die Forensuche nach z. B. "Serienbrief", "Bookmark", "Mailmerge"  jede Menge Tipps und Infos...
Titel: Re: Import export word access
Beitrag von: thomut am Juni 12, 2010, 16:28:15
Hallo, vielen dank für die schnelle Antwort, klingt recht gut aber habe trotzdem keinen Plan, Serienbrief erstellen in word o.k. aber wie erstelle ich Textmarken und wie erfolgen dann die ganzen abfragen aus access herraus auf dieses Dokument und wie kann ich das ganze noch als neues dokument dann Abspeichern, das ganze mit office 2007?????????????????????????
Gibt es womöglich schon eine Testdatenbank um das ganze mal gesehen zu haben???????????
MfG T.Muth
Titel: Re: Import expor word access
Beitrag von: DF6GL am Juni 12, 2010, 17:04:58
Hallo,


naja, wenn Du nicht weißt, was Word-Textmarken sind, dann wird es eh etwas schwierig.

"Serienbrief" ist eine eingebaute Word-Funktionalität, für die es eine separate Menüleiste (in Word) gibt.


Hier findest Du eine Beispiel-DB:

http://www.freeaccess.de/downloadfollow.asp?ID=21


und wie gesagt: die Forensuche fördert auch Einiges zu Tage..
Titel: Re: Import expor word access
Beitrag von: thomut am Juni 12, 2010, 19:29:42
O.K hab den Serienbrief mit Textmarken hab ich nun erstellt, wie sag ich nun access das er mir die Daten wie Name, Nachname und Geburtsdatum aus einer Abfrage oder Tabelle ich beforzuge die Abfrage in der ich schon eine Auswahl getroffen habe, so dass immer nur ein Patient zur auswahl steht , das Dokument mit Textmarken öffnet, hineinschreibt es wieder schließt und wenns geht das ganze noch über einen Button zu bedienen ist.
Titel: Re: Import expor word access
Beitrag von: database am Juni 12, 2010, 21:24:02
Hallo,

ZitatO.K hab den Serienbrief mit Textmarken hab ich nun erstellt
Sehr gut, ich kann dir keine fertige Lösung für DEINEN Bedarf anbieten aber immerhin einen Codeausschnitt aus dem ersichtlich wird wie Word von Access aus angesteuert wird sowie einen 2. Teil aus dm hervorgeht, wie Werte aus einem Abfrageergebnis an ein Wordfile mit Textmarken übergeben wird.

Zitatwie sag ich nun access das er mir die Daten wie Name, Nachname und Geburtsdatum aus einer Abfrage oder Tabelle ich beforzuge die Abfrage in der...
Im aktuellen Fall wird allerdings keine Abfrage als solche verwendet sondern ein SQL-Code. Das musst du halt bei Gefallen anpassen wenn du den Aufruf einer Abfrage über deren Namen bevorzugst... ;)

Bitte zu beachten, dass in dem Beispiel keine ordentlichen Fehlerbehandlungen implementiert sind. Weiter stellt dieses Beispiel kein 1:1 übernehmbares Codesnippet dar, da es aus einer TestDB entnommen wurde - ich habe die Funktionalität des Codes NICHT geprüft! :-\

1. Word ansprechen und Objektvariablen initialisieren    
   Findest du im Anhang in modul.doc

2. Code für den Aufrufbutton und Übergabe von Werten an Textmarken in Word
   Findest du im Anhang in buttonCode.doc

Unter Beachtung der oben angeführen Argumente kannst du den Code gerne so modifizieren, dass er deinen Gegebenheiten entpricht und uneingeschränkt verwenden. :)

Zum Beispiel, das DF6GL in seinem letzten Posting angeführt hat ist noch zu sagen, dass es sich dabei um eine Acc97 / Word97 Lösung handelt.
Durch fehlen der vba332.dll entsteht ein Fehler, wenn der Speicherpfad der Worddatei geändert werden soll.

... und dann bitte nochmals mit Nachdruck die Empfehlung von DF6GL ... :
Zitatund wie gesagt: die Forensuche fördert auch Einiges zu Tage

LG

Peter

[Anhang gelöscht durch Administrator]
Titel: Re: Import expor word access
Beitrag von: thomut am Juni 14, 2010, 19:30:10
Hallo, vielen dank für die vilen Infos, hab jetzt etwas zusammenbebastelt bekomme aber immer Fehlermeldung. Hier der Code:

Private Sub Befehl70_Click()

On Error Resume Next
    Dim objWord As Word.Application
    Dim strPfad As String
   
    'Bestehende Word-Instanz suchen
    Set objWord = GetObject(, "Word.Application")
    If Err.Number = 429 Then  'keine Word-Instanz vorhanden
        Err.Clear
        Set objWord = CreateObject("Word.Application") 'Word-Instanz erzeugen
        On Error GoTo Fehler
      ElseIf Err.Number = 0 Then
        'einfach weiter
      Else
        On Error GoTo Fehler
    End If
    strPfad = "C:\CarolaBadfüralle\E-Berichtweiblich.dot"
    With objWord
        .Visible = True
        .WindowState = 1
        .Activate
        .Documents.Add Template:=strPfad, NewTemplate:=False
        .Bookmarks("Nachname").Range = Nz(Me!Nachname)
        .Bookmarks("Vorname").Range = Nz(Me!Vorname)
    End With
    'Word-Objekt schließen
    objWord.ActiveDocument.Close SaveChanges:=wdPromptToSaveChanges
   
Ende:
    Set objWord = Nothing
    Exit Sub
Fehler:
    'wenn ein Feld leer ist
    If Err.Number = 4198 Then
        Resume Ende
      Else
        MsgBox Err.Number & vbCr & Err.Description
    End If


End Sub

Die Melung heißt Fehler beim Kompilieren: Benutzerdefinierter Type nicht definiert und objWord As Word.Application ist dann blau hinterlegt. Ich dachte eigentlich das es funktionieren sollte, kann mir da irgendjemand helfen??

MfG T.Muth
Titel: Re: Import expor word access
Beitrag von: Manfred S am Juni 14, 2010, 19:45:09
Hallo,
vielleicht ist dies auch ein Lösungsansatz für Dich. Und wenn es auch Codebeispiele sind:

http://www.access-home.de/cms/?kat=29&subsite=1&cms_id=&bsp_db_id=212

Gruß

Manfred S
Titel: Re: Import expor word access
Beitrag von: thomut am Juni 14, 2010, 20:23:27
Danke Manfred, bringt hier nicht wirklich weiter.
Titel: Re: Import expor word access
Beitrag von: DF6GL am Juni 14, 2010, 21:26:32
Hallo,


setz mal den Verweis auf die Word-xx Library...

bzw. schreib , weil late binding :

Dim objWord As Object



Titel: Re: Import expor word access
Beitrag von: thomut am Juni 14, 2010, 22:33:57
OK Dim objWord As Object hab ich eingefügt. Es wird nun die Wörddatei geöffnet aber die Textmarken werden nicht gefüllt es erscheint im access Programm der Fehler 438 Objekt unterstützt diese Eigenschaft oder Methode nicht. Hab ich eventuel bei den Textmarken einen Fehler gemacht??
Titel: Re: Import expor word access
Beitrag von: database am Juni 15, 2010, 07:10:30
Guten Morgen,

gemäß DF6GL ....
Zitatsetz mal den Verweis auf die Word-xx Library

...solltest du den Verweis auf die Word-Library setzen.
Im VBA-Editor unter Extras Verweise ...  Microsoft Word xx.0 Object Library
Wenn der Verweis nicht vorhanden ist, kann es sein, dass Access die Textmarken von Word nicht erkennt bzw diese nicht 'beschreiben' kann.
Titel: Re: Import expor word access
Beitrag von: DF6GL am Juni 15, 2010, 09:58:32
Hallo,

Bookmarks ist keine Auflistung des Word-Application-Objektes, sondern des aktiven Doks.


Es sollte (mindestens) so heißen:

      .ActiveDocument.Bookmarks("Nachname").Range = Nz(Me!Nachname)
      .ActiveDocument.Bookmarks("Vorname").Range = Nz(Me!Vorname)



weiterhin sollte, falls der Word-Verweis nicht gesetzt ist,
wdPromptToSaveChanges  
durch  
-2
ersetzt werden und Word mit

objWord.ActiveDocument.Close SaveChanges:=-2
objWord.Quit


geschlossen werden.
Titel: Re: Import expor word access
Beitrag von: thomut am Juni 15, 2010, 17:19:28
Hallo, du bist einfach super funktioniert einfach nur perfekt, der verweis war eingestellt. Nun noch eine kleine Sache, er öffnet nun das Dokument schreibt meine Einträge hienen und frägt mich nun wo er es abspeichern soll, schön wäre es aber um die Sache für den User zu vereinfachen das access das Worddpkument gleich noch in ein Bestimmtes Laufwerk und dort in einen bestimmten Ordner mit dem Namen, Vorrnamen des gerade im Dokument eingetragenen Namen,Vornamen. Ist dies womöglich irgendwie realisierbar?? Hab von Vba nicht so viel(ganz,ganz wenig Erfahrung).
MfG t.Muth
Titel: Re: Import expor word access
Beitrag von: DF6GL am Juni 15, 2010, 18:19:52
Hallo,

etwa so:



objWord.ActiveDocument.SaveAs FileName:="C:\BestimmterOrdner\" & Nz(Me!Nachname,"keinNachname") & Nz(Me!Vorname,"keinVorname") & ".doc"
objWord.ActiveDocument.Close
objWord.Quit
Titel: Re: Import expor word access
Beitrag von: thomut am Juni 15, 2010, 18:34:08
Hallo, ich kann es nur wiederholen "Du bist einfach klasse" natürlich funktioniert es perfekt so wi ich es wollte. Ich brauch nun bloss noch meine Datenbank auf die ganzen Wordvorlagen anpassen die bei uns so rumm liegen. Aber noch ne kleine sache kann man nich noch irgendwie zwischen nachname und vorname beim speichern die beiden durch ein komma trennen?
Titel: Re: Import expor word access
Beitrag von: DF6GL am Juni 15, 2010, 18:39:11
Hallo,

könnte man, aber ich rate davon ab, weil evtl. Windows (oder auch andere Programme) mit einem solchen Zeichen im Dateinamen ins Schleudern gerät (geraten) ...


objWord.ActiveDocument.SaveAs FileName:="C:\BestimmterOrdner\" & Nz(Me!Nachname,"keinNachname") & "," & Nz(Me!Vorname,"keinVorname") & ".doc"
Titel: Re: Import expor word access
Beitrag von: thomut am Juni 15, 2010, 19:02:50
O.K, nochmals vielen Dank an alle die mitgeholfen haben mir auf meinen Weg weiter zu helfen, den größten Dank bekommt DF6GL. Hab mal trotzdem das Komma eingefügt, weil es unsere Mitarbeiter es so gowohnt sind und jede Veränderung an der gewohnten Strucktur einen Erklärungsbedarf erfordert.
Also danke nochmals.