Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
gruppierte Datensätze in einzelne Dokumente speichern
zurück: Word 2003 Serienbrief zweite Seite bei bedarf anhängen weiter: Kategorien bei Serienbriefen von Word aus Outlook Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Offen Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Gast_CH
Gast


Verfasst am:
20. Jun 2011, 08:22
Rufname:

gruppierte Datensätze in einzelne Dokumente speichern - gruppierte Datensätze in einzelne Dokumente speichern

Nach oben
       Version: Office 2007

hallo an alle,

ich habe folgendes problem:
ich möchte per script datensätze in ein dokument speichern.
dazu hatte ich mir schon aus dem forum ein vba script kopiert und angepasst.
dieses script speichert jeden datensatz in ein eigenes dokument.

ich habe aber datensätze die zusammen gehören und die sollen in ein fortlaufendes dokument gespeichert werden.

ungefähre struktur von access sieht so aus:
Code:

ID  | DokNr    | Inhalt
1   | 10       | Text1
2   | 10       | Text2
3   | 20       | Text3


das script:
Code:

Sub speichern()
'
' speichern Makro
'
'
Dim nTitel As String, Pfad As String
nTitel = "Dokumententitel"  'Ist bei mir ein Serienfeld und gibt dann die Dateinamen
Pfad = "C:\SB_export\"  'Wohin auch immer du es haben möchtest

 With ActiveDocument.MailMerge
    .DataSource.ActiveRecord = wdLastRecord
    anzahl = .DataSource.ActiveRecord
    flag = False
    For Each x In .DataSource.DataFields
     If x.Name = nName Then
      flag = True
      Exit For
     End If
    Next
    .Destination = wdSendToNewDocument
    For i = 1 To anzahl
     .DataSource.ActiveRecord = i
     dsname = Pfad & _
     .DataSource.DataFields(nTitel).Value
     .DataSource.FirstRecord = i
     .DataSource.LastRecord = i
     .Execute
     ActiveDocument.Range.Find.Execute findtext:="^b", replacewith:=""
     Set fs = CreateObject("Scripting.FileSystemObject")
   
   'speichern unter C:\SB_export
    ActiveDocument.SaveAs FileName:=dsname, AddToRecentFiles:=False
    'alles aktualisieren
    Selection.WholeStory
    Selection.Fields.Update
    'Dokument speichern
    ActiveDocument.Save
    'Dokument schließen
    ActiveDocument.Close
   Next i
     .DataSource.FirstRecord = 1
   
 End With
 
End Sub


Eigentlich müsste ja nur eine Abfrage hinein, die die Dokumenten Nummer (Tab DokNr.) vom aktuellen Datensatz mit der DokuNr. des nächsten Datensatz vergleicht.
Ich habe es schon mal probiert, aber dadurch das ich in VBA nich nicht viel gemacht habe, ist es mir nicht gelungen.

Evtl. habt ihr einen Lösungsansatz?

Noch zur Erklärung warum ich zuerst speichere, dann aktualisiere und noch mal speichere.
In den Dokument werden Bilder eingefügt. ich muss also erstmal das Dokument abspeichern um dann die Bilder über die Aktualisierung reinzubekommen.

Danke schonmal

MfG Christian
Gast_CH
Gast


Verfasst am:
22. Jun 2011, 10:29
Rufname:


AW: gruppierte Datensätze in einzelne Dokumente speichern - AW: gruppierte Datensätze in einzelne Dokumente speichern

Nach oben
       Version: Office 2007

Ich habe es jetzt etwas anders gelöst.
im hauptdatensatz der zusammengehörenden Datensätze, steht jetzt jeweils immer die anzahl der dokumente.

der code sieht jetzt so aus:
Code:
Sub speichern()

Dim nTitel As String, Pfad As String, i As Integer, nLast As Integer
nTitel = "Dokumententitel"  'Ist bei mir ein Serienfeld und gibt dann die Dateinamen
nDokAnzahl = "Dok_Anzahl"
Pfad = "C:\SB_export\"  'Pfadangabe
i = 1
nLast = 1
 
 With ActiveDocument.MailMerge
    .DataSource.ActiveRecord = i
    anzahl = .DataSource.RecordCount
     
    For i = 1 To anzahl
     .DataSource.ActiveRecord = i
     dsname = Pfad & _
     .DataSource.DataFields(nTitel).Value
     .DataSource.ActiveRecord = i
     .DataSource.FirstRecord = i
     nLast = .DataSource.DataFields(nDokAnzahl).Value - 1
     .DataSource.LastRecord = i + nLast
     .Execute
     
   'speichern unter Pfad
    ActiveDocument.SaveAs FileName:=dsname & ".doc", AddToRecentFiles:=False
    'alles aktualisieren
    Selection.WholeStory
    Selection.Fields.Update
    'Dokument speichern
    ActiveDocument.Save
    'Dokument als PDF exportieren
    ChangeFileOpenDirectory Pfad
    ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        dsname & ".pdf", ExportFormat:= _
        wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
        Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=True, UseISO19005_1:=False
    'Dokument schließen
    ActiveDocument.Close SaveChanges:=False
    'i weiterstellen
    i = .DataSource.LastRecord
    Next i
   
 End With
 
End Sub


es wird jetzt zudem ein pdf mit dem gleichen dokumententitel erstellt.

man muss zwar die datensätze händisch anpacken(muss ich aber wegen ein paar anderen sachen sowieso), aber bei momentan 1000 datensätzen und auch mal 32seiten je "Datensatzgruppe" ist es eine erleichterung. Wink

evtl. hat ja noch einer eine bessere lösung parat.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Word Serienbriefe: Serienbrief aus xls nur Datensätze anzeigen wenn Name gleich 0 means 1307 08. Jan 2010, 09:11
means Serienbrief aus xls nur Datensätze anzeigen wenn Name gleich
Keine neuen Beiträge Word Serienbriefe: Einzelne Werte aus Excel in eine Word-Datei übernehmen... 1 Oliver-HB 1510 29. Dez 2009, 13:51
iso Einzelne Werte aus Excel in eine Word-Datei übernehmen...
Keine neuen Beiträge Word Serienbriefe: Neues Leerdokument mit Verknüpfungen in andere Dokumente 1 alex.krumnow 1202 01. Jul 2009, 23:27
charlybrown Neues Leerdokument mit Verknüpfungen in andere Dokumente
Keine neuen Beiträge Word Serienbriefe: Seriendruck einzelne Druckjobs erzeugen 1 onit 2722 01. Mai 2009, 20:38
charlybrown Seriendruck einzelne Druckjobs erzeugen
Keine neuen Beiträge Word Serienbriefe: Datum verändern - Datensätze aus SQL-DB 2 fanman 1395 13. Jan 2009, 12:27
fanman Datum verändern - Datensätze aus SQL-DB
Keine neuen Beiträge Word Serienbriefe: Abfrageoptionen, Datensätze filtern- nach Datum 2 Lysias 4131 30. Jan 2008, 20:22
du machst es die zu einfa Abfrageoptionen, Datensätze filtern- nach Datum
Keine neuen Beiträge Word Serienbriefe: mehrere Datensätze auf ein Serienbrief 6 derkoch 1103 20. Jan 2008, 22:38
der koch mehrere Datensätze auf ein Serienbrief
Keine neuen Beiträge Word Serienbriefe: zu bearbeitende Datensätze durch Parameterabfrage beeinfluss 0 crus 806 21. Sep 2007, 17:27
crus zu bearbeitende Datensätze durch Parameterabfrage beeinfluss
Keine neuen Beiträge Word Serienbriefe: Nur bestimmte Datensätze aus Excel untereinander auflisten 0 Michaela L. 2621 03. Jul 2007, 16:37
Michaela L. Nur bestimmte Datensätze aus Excel untereinander auflisten
Keine neuen Beiträge Word Serienbriefe: Datensätze lesen 0 3ek 595 10. Apr 2007, 12:37
3ek Datensätze lesen
Keine neuen Beiträge Word Serienbriefe: jede Seite eines Worddokuments in eigene Datei speichern 1 computerschmied 2625 30. März 2007, 12:24
Gast jede Seite eines Worddokuments in eigene Datei speichern
Keine neuen Beiträge Word Serienbriefe: Seriendruckempfänger speichern ...aber wie?? 0 MBMBMB 1303 04. März 2007, 14:47
MBMBMB Seriendruckempfänger speichern ...aber wie??
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Access Tabellen