Open Word object uit een OLE-control

Status
Niet open voor verdere reacties.

JelleKoen

Gebruiker
Lid geworden
30 okt 2012
Berichten
58
Dag Access-vba liefhebbers,

In een aantal oude access-databases kom ik veel 'Unbound Object Frame Control's tegen waarin een Word-document is geplaatst. Ik wil deze niet handmatig openen en vervolgens als een 'gewoon'-Worddocument opslaan, maar dit met een vba-routine doen.
Inmiddels heb ik de volgende code al geschreven, maar de stap om het Ole-object in Word te openen lukt me nog niet.
Code:
Sub prcRapportOLE()
    Dim objProject      As Object
    Dim objObject       As AccessObject
    Dim rpt             As Report
    Dim strRpt          As String
    Dim ctl             As control

    On Error GoTo prc_err
    autoexec
    Set objProject = Application.CurrentProject()
        For Each objObject In objProject.AllReports
            i = i + 1
'           MsgBox objObject.Name
            strRpt = objObject.Name
            DoCmd.OpenReport (strRpt), acViewDesign
            Debug.Print strRpt
            Set rpt = Reports([strRpt])
            For Each ctl In rpt.Controls
               MsgBox ctl.ControlType & ": " & ctl.Name
                If ctl.ControlType = 103 Then GoTo volgende1
                If InStr(1, ctl.Name, "OLE") Then
                    If ctl.Class = "Word.Document.8" Then
                        Debug.Print ctl.Name
                        ctl.Action = acOLEActivate
                    End If
                End If
volgende1:
            Next
            DoCmd.Close acReport, strRpt
volgende:
        Next objObject
    Set objProject = Nothing
    
prc_exit:
    Exit Sub
    
prc_err:
    If Err.Number = 438 Then
        Debug.Print ctl.ControlType
        GoTo volgende
    ElseIf Err.Number = 7784 Then
        GoTo volgende
    Else
        msgFout
        Resume prc_exit
        Resume
    End If
End Sub

Ik had de ijdele hoop dat acOLEactivate het zou doen, maar helaas. Kan iemand mij verder helpen?
 
Lijkt mij handiger als je een db meepost; ik heb ze in het verleden ook wel eens gebruikt, maar sta niet te popelen om de situatie eerst na te moeten bouwen :).
 
Dummy database

Bijgaand de database. Ik heb de lorum ipsum tekst gebruikt. Vlgs mij zitten er geen verwijzingen meer naar het bedrijf in.
 

Bijlagen

  • HelpMijVoorbeeld.zip
    165,5 KB · Weergaven: 34
Dag Octafish,
Mocht je nog wat gevonden hebben, dan lees ik het graag. Inmiddels ben ik met kopiëren en plakken gestart. Het betreft ruim 175 rapporten :(
GrJ
 
Je krijgt, met een kleine aanpassing, wel degelijk alle tekst in Word. Maar omdat je een wat ongelukkige foutafhandeling hebt, naast de verkeerde manier van het rapport openen, gooi je alles ook gelijk weer weg. Maar loop er maar eens in de stap modus doorheen, dan zal je zien dat je wel degelijk documenten opent in Word met de inhoud.
Code:
Sub prcRapportOLE()
Dim objProject      As Object
Dim objObject       As AccessObject
Dim rpt             As Report
Dim strRpt          As String
Dim ctl             As control

    On Error GoTo prc_err
    Set objProject = Application.CurrentProject()
        For Each objObject In objProject.AllReports
            i = i + 1
            strRpt = objObject.Name
            DoCmd.OpenReport (strRpt), acViewPreview
            Debug.Print strRpt
            Set rpt = Reports([strRpt])
            For Each ctl In rpt.Controls
                If ctl.ControlType = 103 Then GoTo volgende1
                If InStr(1, ctl.Name, "OLE") Then
                    If ctl.Class = "Word.Document.8" Then
                        Debug.Print ctl.Name
                        ctl.Action = acOLEActivate
                    End If
                End If
volgende1:
    Next
    DoCmd.Close acReport, strRpt

volgende:
    Next objObject
    Set objProject = Nothing
    
prc_exit:
    Exit Sub
    
prc_err:
    If Err.Number = 438 Then
        Debug.Print ctl.ControlType
        GoTo volgende
    ElseIf Err.Number = 7784 Then
        GoTo volgende
    Else
        msgFout
        Resume
    End If
End Sub
 
Dank voor je antwoord.
Ik was er even tussenuit en niet mee bezig. Bij mij wordt het document in de print-preview geopend, maar helaas niet in Word. En de ctl.action-opdracht geeft de foutmelding:
2771, Het kader voor het afhankelijke of niet-afhankelijke object dat u probeert te bewerken, bevat geen OLE-object
Als het in Word zou zijn geopend, had ik het als zodanig kunnen opslaan.
Overigens kan ik het ook niet handmatig als .rtf of .txt exporteren. Er volgen dan een of meer blanco pagina's.
Zou je nog eens willen kijken?

De foutafhandeling Volgende2 had ik inderdaad niet mee moeten zenden.
GrJ
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan