Office: Adressdatenbank - über Formular ein Word-Dokument erstellen

Helfe beim Thema Adressdatenbank - über Formular ein Word-Dokument erstellen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Zusammen, ich benötige eure Unterstützung. Ich habe in Access eine Adressdatenbank aufgebaut. Grundsätzlich möchte ich Word-Dokumente... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von joscha_h, 26. April 2012.

  1. joscha_h Erfahrener User

    Adressdatenbank - über Formular ein Word-Dokument erstellen


    Hallo Zusammen,

    ich benötige eure Unterstützung.

    Ich habe in Access eine Adressdatenbank aufgebaut.

    Grundsätzlich möchte ich Word-Dokumente (Vorlagen) aus Access öffnen und dabei mit Variablen aus der Datenbank z.B. Anschrift befüllen. Die Auswahl des Datensatzes dessen Felder als Variablen in das Word-Dokument eingefügt werden sollen, soll mit Hilfe eines Formulars (Benutzerfreundlicher als Access) erfolgen.

    Ich kann Afragen und Formulare in Access erstellen und kenne die Kettenbrieffunktion in Word.

    Ich schaffe es gerade jedoch nicht meine Kenntnisse in einen "Bauplan" für mein obiges Vorhaben umzusetzen. Insbesondere mit der Steuerung der Abfrage über ein Formular habe ich gerade Probleme.

    Bitte erklärt mit wie ich die einzelnen Arbeitsschritte zu einem Gesamtwerk zusammenfügen kann über eine Beispiellösung wäre ich natürlich auch dankbar.

    Vielen Dank!

    Grüße

    Joscha
     
    joscha_h, 26. April 2012
    #1
  2. miriki Erfahrener User
    Vielleicht hilft Dir als Ansatz ja das Ding im Anhang.

    Schritte relativ simpel:

    Word-Dokument mit Formular-Feldern erstellen
    Formular-Felder über "Eigenschaften" einen vernünftigen Namen geben

    im Access eine Routine erstellen, die:
    - eine Word-Instanz mit dem Dokument als Vorlage öffnet
    (das machen die SET Zeilen)
    - alle Formular-Felder in einer Schleife durchklötert
    (das ist die FOR n=... Schleife)
    - bekannte Felder mit entsprechenden Werten aus dem aktuellen Datensatz füllt
    (das macht im Beispiel die SELECT CASE Struktur)

    Die Routine wird dann sinnvollerweise aus einem Formular heraus aufgerufen, in dem der an Word zu übertragende Datensatz gerade angezeigt wird. Im Beispiel ist das der "Word"-Button rechts oben im Detail-Bereich des Formulars.

    Gruß, Michael
     
    miriki, 27. April 2012
    #2
  3. joscha_h Erfahrener User
    Hallo,

    genau so etwas habe ich gesucht! Vielen Dank!

    Ich wollte immer zuerst die Serienbrief-Felder verwenden, aber mit Formular-Feldern funktioniert es sehr gut. Gibt es hier einen Unterschied, ob man Formular- oder Serienbrieffelder verwendet?

    Ich habe mir die Funktionen angeschaut und schon ein bißchen damit herumgespielt und komme bisher gut damit zu Recht.

    Wenn ich Laufe der Anpassung noch Fragen auftauchen, würde ich gerne auf dich zurückkommen.

    Noch einmal vielen Dank!

    Joscha
     
    joscha_h, 29. April 2012
    #3
  4. miriki Erfahrener User

    Adressdatenbank - über Formular ein Word-Dokument erstellen

    Zunächst mal zur Frage, die Du per PN gestellt hattest: Das Speichern des Dokuments ist im Prinzip ganz einfach. Mit der Methode .SaveAs kannst Du den Speicherort und Dateinamen angeben. Ich hab mal die Routine hinter dem Button etwas umgebastelt:

    a) die rs("...") hab ich noch zusätzlich mit Trim$() gekapselt, damit "unzulässige Verwendung von Null" verhindert wird.
    b) Die Vorlage ist durch "dotd" (.dot drive), "dotp" (path) und "dotf" (file) in Konstanten definiert.
    c) Das Ergebnis ist durch "docd", "docp" und "docf" in Variablen definiert, die zur Laufzeit gesetzt werden.

    Das ganze sieht dann so aus:
    Code:
    Private Sub btn_Word_Click()
    On Error GoTo Err_btn_Word_Click
    
        Const dotd = "z:"
        Const dotp = "\projektentwicklung\mdb zu doc-form\"
        Const dotf = "mdb zu doc-form.dot"
    
        'Const docd = "c:"
        'Const docp = "\temp\"
        'Const docf = "mdb zu doc-form.doc"
    
        Dim docd As String
        Dim docp As String
        Dim docf As String
    
        Dim wdAnw As Word.Application
        Dim wdDok As Word.Document
        Dim rs As DAO.Recordset
        Dim feld As DAO.Field
        Dim n As Long
        Dim s As String
    
        Set rs = Me.Recordset
    
        Set wdAnw = CreateObject("Word.Application")
        wdAnw.Visible = True
        Set wdDok = wdAnw.Documents.Add(Template:=dotd & dotp & dotf)
    
        For n = 1 To wdDok.FormFields.Count
            s = ""
            Select Case wdDok.FormFields(n).Name
                Case "txtNachname":
                    s = Trim$(rs("PersonNachname") & " ")
                Case "txtVorname":
                    s = Trim$(rs("PersonVorname") & " ")
                Case "txtStrasse":
                    s = Trim$(rs("PersonStrasse") & " ")
                Case "txtPostlz":
                    s = Trim$(rs("PersonPostlz") & " ")
                Case "txtWohnOrt":
                    s = Trim$(rs("PersonWohnort") & " ")
                Case "txtWohnLand":
                    s = Trim$(rs("PersonWohnland") & " ")
                Case "txtGeburtsDatum":
                    s = Trim$(rs("PersonGeburtsdatum") & " ")
                Case "txtGeburtsOrt":
                    s = Trim$(rs("PersonGeburtsort") & " ")
                Case "txtGeburtsLand":
                    s = Trim$(rs("PersonGeburtsland") & " ")
                Case "txtBeruf":
                    s = Trim$(rs("PersonBeruf") & " ")
                Case Else:
                    s = "-----"
            End Select
            If (s <> "") Then
                wdDok.FormFields(n).Result = s
            End If
        Next n
    
        docd = "C:"
        docp = "\Temp\"
        docf = "Mdb zu Doc-Form.doc"
        wdDok.SaveAs docd & docp & docf
    
    Exit_btn_Word_Click:
        Exit Sub
    
    Err_btn_Word_Click:
        MsgBox Err.Description
        Resume Exit_btn_Word_Click
        
    End Sub
    Jetzt wäre nur noch zu klären, wie die Variablen für den Speicherort und Dateinamen gefüllt werden. Die kannst Du jetzt ja aus einem Formular auslesen, per DbLookup aus einer Tabelle ziehen, von anderen Werten des aktuellen rs abhängig generieren, mit Datum erweitern oder was auch immer.

    Die andere Frage, ob Formular- oder Serienbrief-Felder... Hmmm... Muß ich leider passen, da ich mit Serienbriefen schon seit Word 97 eigentlich nicht mehr viel gemacht habe. Und soweit ich das auf die Schnelle sehe, hat sich da wohl auch einiges geändert in der Zeit.

    Aber müssen bei Serienbrief-Feldern nicht immer auch gleich die Datenquellen mit angegeben werden? Dann wäre das ja das KO-Argument, weil Du ja eigentlich gar keine Datenquelle, zumindest nicht für einen Serienbrief, hast.

    In jedem Fall ist das jetzt so kein Serienbrief, sondern ein (automatisch ausgefülltes) Formular. Es wäre sicherlich auch kein Problem, aus Access heraus eine Datenquelle zu erzeugen, die dann einen Serienbrief füttert. Das schien mir aber jetzt erstmal ein wenig zu umfangreich für diesen Zweck.

    Ich würde in dem Fall wahrscheinlich eher versuchen, das Word-Dokument in einem Access-Bericht nachzubilden. Das geht, solange die Vorlage nicht alle Nase lang von anderer Seite geändert wird (Konzern-Vorlagen, corporate design und all das Gedöns).

    Gruß, Michael
     
    miriki, 3. Mai 2012
    #4
  5. joscha_h Erfahrener User
    Hallo Michael,

    danke für deine Hilfe. Das Öffnen der Vorlage und das Ablegen unter einem neuen Pfad klappt sehr gut.

    Bezüglich der Vergabe eines Dateinnamen hast du meine Fähigkeit (leider) etwas überschätzt.

    Ich möchte in dem konkreten Beispiel den Dateinnamen aus dem Feld Nachname und Wohnort zusammensetzen lassen. Kannst du mit hierfür ein Beispiel geben?

    Ist es auch möglich im Formular ein Textfelder zu erstellen, dessen Inhalt als Dateinname verwendet wird?

    Noch einmal Danke für die Unterstützung.

    Viele Grüße

    Joscha
     
    joscha_h, 3. Mai 2012
    #5
  6. miriki Erfahrener User
    Ach, nicht weiter wild... ;-) Da ich aber bislang auch keine Info hatte, wie Du den Dateinamen denn zusammensetzen wolltest, konnte ich da ja auch noch nicht konkreter werden.

    Naja, Du siehst im Code ja die Zeilen:
    Code:
        docd = "C:"
        docp = "\Temp\"
        docf = "Mdb zu Doc-Form.doc"
        wdDok.SaveAs docd & docp & docf
    Dort ist also der Teil, wo Du eigene Angaben unterbringen kannst. Wenn Laufwerk und Pfad konstant sind, kannst Du Dich also auf die 3. Zeile (docf) konzentrieren.

    Die Angaben zu Nachname und Wohnort hast Du ja im aktuellen Datensatz, der über rs("xxx") ja auch schon zum Befüllen der Formularfelder benutzt wurde. Also zapfen wir da doch mal was ab:
    Code:
        docf = _
            Format(Date, "yyyy-mm-dd") & _
            "_" & _
            Trim$(rs("PersonNachname") & " ") & _
            "_" & _
            Trim$(rs("PersonWohnort") & " ") & _
            ".doc"
    Das setzt Dir den Dateinamen z.B. als "2012-05-04_Mustermann_Musterhausen.doc" zusammen.

    Meinst Du damit jetzt das Formular innerhalb von Access oder das Word-Formular? Im Access? Klar, wenn Du ein Textfeld mit dem Namen "Dateiname" auf dem Formular hast:
    Code:
        docf = Trim$(Me!Dateiname.Value & " ")
    Und bei manuellen Eingaben würde ich immer sehr kritisch sein und darauf achten:
    Code:
        If (Right$(docf, 4) <> ".doc") Then
            docf = docf & ".doc"
        End If
    Damit wird wenigstens gewährleistet, daß die Datei immer mit ".doc" endet, auch wenn es im Eingabefeld nicht bereits so eingetippt wurde.

    Gruß, Michael
     
    miriki, 4. Mai 2012
    #6
  7. joscha_h Erfahrener User
    Hallo Michael,

    sorry das ich mich erst jetzt erst melde.

    Auf jeden Fall habe ich mir das jetzt angeschaut und soweit in meine Version eingearbeitet.

    Bisher funktioniert alles sehr gut.

    Danke für deine Unterstützung.

    Viele Grüße

    Joscha
     
    joscha_h, 7. Mai 2012
    #7
  8. Tom1985 Neuer User

    Adressdatenbank - über Formular ein Word-Dokument erstellen

    Hallo zusammen,

    erst mal vielen Dank @ miriki.
    Die Anleitung hier war perfekt um Textfelder aus Access-Frm in Word zu übertragen.

    Wie verhält es sich mit Booleans innerhalb eines Access-Formulars? Wie bekomme ich den Inhalt (true - false) - oder ggf. mit Hilfe eines Zusatz-
    kontrollkästchens a`la :
    =Wenn([Kontrollkästchen]=Ja;"X";"") letztlich in ein Word-Kontrollkästchen?
     
    Tom1985, 4. Februar 2016
    #8
Thema:

Adressdatenbank - über Formular ein Word-Dokument erstellen

Die Seite wird geladen...
  1. Adressdatenbank - über Formular ein Word-Dokument erstellen - Similar Threads - Adressdatenbank Formular Word

  2. Formulare

    in Microsoft Outlook Hilfe
    Formulare: Hallo Zusammen, wir haben ein Problem mit vorab festgelegten Formularen. Diese sind im Dateisystem als .oft abgelegt. Wenn man nun unter Outlook unter "Neue Elemente" - "Weitere Elemente" sucht...
  3. Datensätze miteinander verknüpfen

    in Microsoft Access Hilfe
    Datensätze miteinander verknüpfen: Hallo zusammen, wir haben eine historisch gewachsene Gerätedatenbank mit PC, Monitoren usw.. Alle Geräte sind in einer Tabelle als seperate Einträge. In einem Formular werden die Daten des z.B. PC...
  4. Formular öffnen und Fokus danach auf ein anderes Formular schieben

    in Microsoft Access Hilfe
    Formular öffnen und Fokus danach auf ein anderes Formular schieben: Hallo, ich habe ein kleines Problem, mit dem ich nicht so recht weiter komme und wo die Experten vielleicht wissen, wie es geht. Und nachdem mir neulich schon geholfen wurde, komme ich nochmal....
  5. Ausfüllen von Formularen freigeben mit Vollsperrung 1. Abschnitt

    in Microsoft Word Hilfe
    Ausfüllen von Formularen freigeben mit Vollsperrung 1. Abschnitt: Hi, ich wollte mal nachfragen, ob Ihr mir sagen könnt, wie ich den 1. Abschnitt meines Dokumente komplett, also auch mit Kontrollkästchen zur Bearbeitung durch Andere sperren kann, und den 2....
  6. DS im Formular ändern

    in Microsoft Access Hilfe
    DS im Formular ändern: Hallo, Ich habe ein HF Formular, was auf einer Abfrage basiert und nicht Tabelle. Wie kann ich einen Eintrag zu einem DS ändern, der auf einer Abfrage basiert? Logischerweise soll dann die...
  7. Daten aus Zellen in Formular-Vorlage einfügen

    in Microsoft Excel Hilfe
    Daten aus Zellen in Formular-Vorlage einfügen: Hallo, folgende Situation: Datenblatterstellung über templates in geneinsam genutzten Ordnern, aus Daten einer Exceltabelle! Wird in der Ecxeltabelle was verändert, führt dies automatisch zu...
  8. Excel als Adressdatenbank

    in Microsoft Excel Hilfe
    Excel als Adressdatenbank: Folgende Situation: Ich möchte gerne in Excel eine Adressdatenbank aufbauen. Dabei wird es diverse Kategorien geben wie zum Beispiel "Kunden", "Partner, "Lieferanten" etc. Ebenfalls möchte ich die...

Users found this page by searching for:

  1. Serienbrief mit Formular verbinden

    ,
  2. Datenbank-Dokument erstellen

    ,
  3. was bedeutet Anschriftfeld mit den Daten aus der Adressdatenbank

    ,
  4. access word formular www.office-hilfe.com,
  5. access 2017 serienbrief button formular
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden