Brevflet med word.
Jeg har fundet ud af at åbne et worddokument med følgende kode:Dim myword As Word.Application
Set myword = New Word.Application
myword.Documents.Open filename:=CurrentProject.Path & "\elevplan_elev.doc"
myword.Visible = True
myword.Activate
og den afsluttes med:
Set myword = Nothing
Jeg har optaget en makro i word med lidt brevfletning, hvilket gav denne kode:
ActiveDocument.MailMerge.OpenDataSource name:= _
CurrentProject.Path & "\vm_work.mdb" _
, ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=" & CurrentProject.Path & "\vm_work.mdb;Mode=Read;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Je" _
, SQLStatement:="SELECT * FROM `student_plan`", SQLStatement1:="", _
SubType:=wdMergeSubTypeAccess
Selection.MoveRight Unit:=wdCharacter, count:=1
Selection.MoveDown Unit:=wdLine, count:=1
Selection.MoveLeft Unit:=wdCharacter, count:=21
ActiveDocument.Fields.Add Range:=Selection.Range, type:=wdFieldMergeField _
, Text:="""t_name"""
Selection.MoveDown Unit:=wdLine, count:=3
ActiveDocument.Fields.Add Range:=Selection.Range, type:=wdFieldMergeField _
, Text:="""t_prev_subject"""
ActiveDocument.Fields.Add Range:=Selection.Range, type:=wdFieldMergeField _
, Text:="""t_prev_subject"""
Selection.TypeBackspace
Selection.TypeBackspace
Selection.MoveDown Unit:=wdLine, count:=3
ActiveDocument.Fields.Add Range:=Selection.Range, type:=wdFieldMergeField _
, Text:="""t_prev_methods"""
Selection.MoveDown Unit:=wdLine, count:=3
ActiveDocument.Fields.Add Range:=Selection.Range, type:=wdFieldMergeField _
, Text:="""t_prev_sociale"""
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
Det virker for så vidt fint første gang jeg afspiller koden fra access, men hvis jeg lukker den fremkomne wordfil og så afspiller koden igen, så meldes der fejl:
Run-Time error '4248':
Kommandoen er ikke tilgængelig, da der ikke er noget åbent dokument.
Derudover generer det mig at både 'skabelonfil'(ikke en .dot, men .doc da det ikke ville køre med .dot) og den flettede fil åbnes med ovenstående kode - er det ikke muligt kun at have den flettede fil fremme?
