Supportnet / Forum / Datenbanken
Word Dokument aus Acces öffnen
Frage
Hallo habe da ein kleines problem.
Wie kann ich aus Acces ein Word Dokument öffnen.
Sprich habe eine Pfadangabe in einem Textfeld und möchte dann über einen Button dieses Dokument öffnen. Habe es schon mit getObject versucht, ging aber schief.
Danke und viele Grüße
Antwort 1 von Armin
Hi ,
ich habe es so gemacht:
mit Word Template
Achtung: ist nicht gerade elegant (For each vrt in ...), aber geht.
Ohne Template, einfach nur file öffnen:
zunächst zwei funktionen (Aus Access Code Book)
Hier dann der Aufruf in der Anwendung
gruesse armin
ich habe es so gemacht:
mit Word Template
Dim dlgWordTemplate As FileDialog
Dim vrt As Variant
Set dlgWordTemplate = FileDialog(msoFileDialogFilePicker)
With dlgWordTemplate
.AllowMultiSelect = False
.Filters.Add "Word Vorlagen", "*.dot", 1
.FilterIndex = 1
.Title = "Bitte wählen Sie die Word-Vorlage aus:"
If .Show = -1 Then
´ multiselect is false, only one file returned.
For Each vrt In .SelectedItems
strTemplateName = vrt
Next vrt
Else
MsgBox "Keine Word Vorlage ausgewählt.", vbInformation, "Mailing"
End If
End With
Achtung: ist nicht gerade elegant (For each vrt in ...), aber geht.
Ohne Template, einfach nur file öffnen:
zunächst zwei funktionen (Aus Access Code Book)
Public Function GetOfficeApp( _
ByVal strOfficeApp As String) As Object
´Usage: Dim objExcel As Excel.Application
´ Set objExcel = GetOfficeApp("excel")
On Error Resume Next
If IsOfficeAppRunning(strOfficeApp) Then
Set GetOfficeApp = GetObject(, strOfficeApp & _
".Application")
If err.Number <> 0 Then
MsgBox err.Description
End If
Else
Set GetOfficeApp = CreateObject(strOfficeApp & _
".Application")
End If
End Function
Public Function IsOfficeAppRunning( _
ByVal strOfficeApp As String) As Boolean
Dim lngHandle As Long
Dim strClassName As String
On Error GoTo IsOfficeAppRunning_Error
Select Case LCase$(strOfficeApp)
Case "excel"
strClassName = "XLMain"
Case "word"
strClassName = "OpusApp"
Case "access"
strClassName = "OMain"
Case "powerpoint"
strClassName = "PP9FrameClass"
Case "outlook"
strClassName = "rctrl_renwnd32"
Case "frontpage"
strClassName = "FrontPageExplorerWindow40"
Case Else
strClassName = ""
End Select
If strOfficeApp <> "" Then
lngHandle = FindWindow(strClassName, vbNullString)
If lngHandle <> 0 Then
IsOfficeAppRunning = True
End If
End If
IsOfficeAppRunning_Exit:
Exit Function
IsOfficeAppRunning_Error:
On Error GoTo 0
End Function
Hier dann der Aufruf in der Anwendung
Dim wrdWordApp As Word.Application
Set wrdWordApp = GetOfficeApp("Word")
With wrdWordApp
´ ... Existiert die Datei schon ?!
If Dir(strDirFileName) <> "" Then
.Documents.Open strDirFileName
.Application.Visible = True
Else
.Documents.Add Template:=strTemplateName
.ActiveDocument.SaveAs strDirFileName
.Application.Visible = True
End If
end with
gruesse armin