Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: mariposas am April 14, 2014, 20:10:16

Titel: WORD-Etikettendruck von Accessdatei aus steuern
Beitrag von: mariposas am April 14, 2014, 20:10:16
Ich möchte Etiketten, die im Word-Format vorliegen, je nach Bedarf von Access aus drucken. Der jeweilige Bedarf wird in einer Accessdatei ermittelt. Habe geringe Programmierkenntnisse und bitte um Hilfe
Titel: Re: WORD-Etikettendruck von Accessdatei aus steuern
Beitrag von: database am April 14, 2014, 20:24:37
Guten Tag!

ZitatDer jeweilige Bedarf wird in einer Accessdatei ermittelt
In welcher Form und mit welchen Parametern?
Titel: Re: WORD-Etikettendruck von Accessdatei aus steuern
Beitrag von: mariposas am April 14, 2014, 20:30:00
Es handelt sich um eine einfache Datei, aus der die erforderliche Anzahl an Etikettenbögen hervorgeht.
Titel: Re: WORD-Etikettendruck von Accessdatei aus steuern
Beitrag von: database am April 14, 2014, 20:57:09
Na dann - probiern wir's ...

Erzeuge auf deinem Formular einen Button, z.B. cmdEtikettendruck
In dessen Klick-Ereignis legst du folgenden Code:


Private Sub cmdEtikettendruck_Click()

     Dim anzahl as Integer, i as Integer
     'Dim DocVariable as String
     Dim objWord As Word.Application

     anzahl = Me!DeinFormFeldMitDerAnzahlDerAusdrucke
     'DocVariable = ErmittlungDesDateinamens
     Set objWord = CreateObject("Word.Application")

     With objWord
         .Visible = True
         'das zu öffnende Worddokument
         'Wenn es unterschiedliche Dateien gibt,
         'muss die entsprechende Datei durch eintraqen der DocVariable
         'zwischen den Klammern ohne die Gänsefüße erfolgen
         .Documents.Open ("C:\DeinVerzeichnis\DeineEtikettendatei.doc")
         
         For i = 1 To anzahl
         .ActiveDocument.PrintOut     'x mal ausdrucken
         Next i

     End With
     
     'Etikettendatei unverändert lassen und nicht speichern
     objWord.ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
     objWord.Quit
     Set objWord = Nothing

End Sub


HTH

p.s. der Code ist NICHT getestet!
Titel: Re: WORD-Etikettendruck von Accessdatei aus steuern
Beitrag von: mariposas am April 14, 2014, 21:03:37
Den Code habe ich mehr oder weniger so schon getestet, und er funktioniert auch. Mein Problem ist: es gibt viele unterschiedliche Etiketten-Word.DOCs, die je nach Bedarf gedruckt werden sollen. Die erforderliche Anzahl erhalte ich aus der Access-Datei; was mir fehlt, ist der Code, der nacheinander die einzelnen Word-Dateien öffnet, bis die Access-Datei abgearbeitet ist.
Titel: Re: WORD-Etikettendruck von Accessdatei aus steuern
Beitrag von: database am April 14, 2014, 21:23:30
Hallo,

na du bist gut ...

Zitat von: mariposas am April 14, 2014, 20:30:00
Es handelt sich um eine einfache Datei, aus der die erforderliche Anzahl an Etikettenbögen hervorgeht.

und....

Zitatwas mir fehlt, ist der Code, der nacheinander die einzelnen Word-Dateien öffnet, bis die Access-Datei abgearbeitet ist.

Was ist unter 'Access-Datei abgearbeitet' zu verstehen?
Und woher kommen die Dateinamen? Sind die in einer Tabelle gespeichert,
wie hängt die Anzahl mit den Dateien zusammen ... ?
Wenn du konkretere Angaben machst kann ich dir auch konkreter helfen - wahrscheinlich ;)
Titel: Re: WORD-Etikettendruck von Accessdatei aus steuern
Beitrag von: mariposas am April 14, 2014, 21:41:09
Sorry, ist ja klar. Manchmal stecke ich drin und setze Dinge voraus, die so gar nicht klar sein können.
In der Accessdatei sind die Namen der Word-DOCs gespeichert sowie die Anzahl der zu druckenden Exemplare. Diese Access-Datei muss nun Datensatz für Datensatz bis zum Ende aufgerufen und die WORD-Dateien entsprechend oft gedruckt werden.
Beispiel:
Name             Anzahl
WORD1.DOC      0
WORD2.DOC      10
WORD3.DOC      2
etc.
Titel: Re: WORD-Etikettendruck von Accessdatei aus steuern
Beitrag von: database am April 14, 2014, 22:15:53
OK, besser wird' nicht ...  ;)

Ich nehme also an, dass ALLE deine Dateien im gleichen Verzeichnis zu finden sein werden.
Ich nenne deine Tabelle (das ist es nämlich und keine Access-Datei) der Einfachheit halber 'tblTabelle'.

Als erstes musst du die gesamte Tabelle in Recordset laden:

Set rst = CurrentDB.OpenRecordset("SELECT DName, AAnzahl FROM tblTabelle WHERE AAnzahl > 0")

Danach wird dieses Recordset schrittweise durchlaufen und die Ausdrucke abgerufen.
Versuche den untenstehenden geänderten Code:


Private Sub cmdEtikettendruck_Click()

     Dim anzahl as Integer, i as Integer
     Dim DocVariable as String
     Dim objWord As Word.Application
     Dim rst As DAO.Recordset
     
     Set rst = CurrentDB.OpenRecordset("SELECT DName, AAnzahl FROM tblTabelle WHERE AAnzahl > 0")

     Set objWord = CreateObject("Word.Application")
     
     Do While Not rst.EOF
     
         DocVariable = rst!DName
         anzahl = rst!AAnzahl

         With objWord
             .Visible = True
             .Documents.Open ("X:\DeinVerzeichnis\" & DocVariable)
         
             For i = 1 To anzahl
                 .ActiveDocument.PrintOut     'x mal ausdrucken
             Next i

            .ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
        End With
        rst.MoveNext
    Loop
     
     objWord.Quit
     Set objWord = Nothing
     Set rst = Nothing

End Sub



Auch dieser Code ist nicht getestet!

HTH

p.s. Name und Anzahl sind denkbar schlechte Feldbezeichnungen in einer Access-Tabelle, es handelt sich dabei um reservierte Worte!
Ich habe daher vorsorglich diese Spaltenbezeichnungen geändert (DName und AAnzahl)
Titel: Re: WORD-Etikettendruck von Accessdatei aus steuern
Beitrag von: mariposas am April 14, 2014, 22:23:25
Vielen Dank, Peter, für Deine Mühen!
Ich teste es und melde mich wieder
Burkhard
Titel: Re: WORD-Etikettendruck von Accessdatei aus steuern
Beitrag von: database am April 14, 2014, 22:30:09
Hi,
gerne!

Ändere deine Feldbezeichnungen die Spaltennamen!
Titel: Re: WORD-Etikettendruck von Accessdatei aus steuern
Beitrag von: mariposas am April 15, 2014, 10:36:30
Es funktioniert!
Ich musste nur eine Kleinigkeit ändern:
Bei Dim objWord As Word.Application kommt eine Fehlermeldung
Mit Dim objWord As Object geht es.
Vielen Dank !!!
Titel: Re: WORD-Etikettendruck von Accessdatei aus steuern
Beitrag von: database am April 15, 2014, 10:38:44
Freut mich!

ZitatBei Dim objWord As Word.Application kommt eine Fehlermeldung
Ja, da müsstest du den Verweis auf die Word-Objekte unter 'Extras' --- 'Verweise' im VBE setzen - sorry, habe ich vergessen zu erwähnen.


Setze bitte den Thread auf gelöst!

DANKE