MS Access VBA Word Automatisierung Probeleme mit Platzierung von Tabelle

Madebuvie

Mitglied
Hallo zusammen,
ich möchte aus MSAcess (MSAccess 2016) heraus eine Word-Datei erstellen, die aus verschiedenen Kaptieln mit Textpassagen diversen
Tabellen, die ich später aus der Datenbank befülle. Zu diesen Kapiteln soll auf der ersten Seite ein Inhaltsverzeichnis erstellt werden.
Die grobe Struktur bekomme ich technisch schon hin.
Im Moment habe ich das Problem, daß die Tabelle, die ich eingebaut habe nicht an der korrekten Stelle eingebaut wird, sondern an das Ende
der Datei.
Vielleicht weiß jemand was ich da falsch mache (Die Tabelle sollte eigentlich zwischen den beiden Textpassagen in Kapitel 1.1 eingefügt werden).
Hier mein Quellcode

Visual Basic:
Private Sub CreateDoc_Click()
   
  Dim wdApp As Word.Application
  Dim wdDoc As Word.Document
   
  Dim objTable As Table
       
  'Verwendung von "on error resume next", damit VBA keine Fehlermeldung ausgibt,
  'wenn es Word Open nicht finden kann
  On Error Resume Next
  Set wdApp = GetObject(, "Word.Application")

  'Bei "Nothing" öffne neue Instanz von Word
  If wdApp Is Nothing Then Set wdApp = New Word.Application
  'Setze die Fehler zurück
  On Error GoTo 0
 
  'Erstelle ein neues Dokument
  Set wdDoc = wdApp.Documents.Add
  'Word arbeitet nach dem Ort der "Selection"
   
  wdApp.Selection.Document.TablesOfContents.Add Range:=Selection.Range, _
                                                RightAlignPageNumbers:=True, _
                                                UseHeadingStyles:=True, _
                                                IncludePageNumbers:=True, _
                                                UseHyperlinks:=True, _
                                                HidePageNumbersInWeb:=True, _
                                                UseOutlineLevels:=False
   
   
  'Seitenumbruch einfügen
  wdApp.Selection.InsertBreak (7)
       
  wdApp.Selection.Style = ActiveDocument.Styles("Überschrift 1")
  wdApp.Selection.TypeText Text:="1 Mein erstes Kapitel"
  wdApp.Selection.TypeParagraph
   
  wdApp.Selection.Style = ActiveDocument.Styles("Überschrift 2")
  wdApp.Selection.TypeText Text:="1.1 Einleitung"
  wdApp.Selection.TypeParagraph
   
  wdApp.Selection.Style = ActiveDocument.Styles("Standard")
  wdApp.Selection.TypeText Text:="Dies ist ein Beispieltext."
  wdApp.Selection.TypeParagraph
   
  'wdApp.Selection.Tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:=2
  wdDoc.Tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:=2
  wdDoc.Tables(1).Cell(1, 1).Range.Text = "Typ 1"
  wdDoc.Tables(1).Cell(1, 2).Range.Text = "123"
  wdDoc.Tables(1).Cell(2, 1).Range.Text = "Typ 2"
  wdDoc.Tables(1).Cell(2, 2).Range.Text = "456"
   
  wdApp.Selection.InsertBreak (7)
   
  wdApp.Selection.TypeText Text:="Dies ist ein Beispieltext2."
  wdApp.Selection.TypeParagraph
   
  wdApp.Selection.Style = ActiveDocument.Styles("Überschrift 3")
  wdApp.Selection.TypeText Text:="1.1.1 Einleitung im Detail"
  wdApp.Selection.TypeParagraph
   
  'Inhaltsverzeoichnis aktualisieren
  wdApp.Selection.Document.TablesOfContents(1).UpdatePageNumbers
   
  'Speichern und schließen
  wdDoc.SaveAs CurrentProject.Path & "\TestDoc.doc"
  wdDoc.Close
  MsgBox "Datei wurde erstellt!"
 
   
  'Objekte löschen
  Set wdDoc = Nothing
  Set wdApp = Nothing
 
End Sub

Über Eure Hilfe würde ich mich sehr freuen

Viele Grüße
MaDeBuVie
 
Zuletzt bearbeitet von einem Moderator:
Zurück