Avatar billede rudymadsen Nybegynder
28. september 2004 - 14:00 Der er 8 kommentarer og
1 løsning

Flette fra Access til Word

Jeg har følgende kode til at overføre data fra en form til et word dokument. Når jeg aktiverer koden får jeg følgende fejl:

91: Object variable or With block variable not set

Koden er:

Private Sub Kommandoknap33_Click()

On Error GoTo errorHandler
   
    Dim objWord As Word.Application
   
    With objWord
   
        .Visible = True

        .documents.Open ("C:\data\skabelon.doc")

        .ActiveDocument.Bookmarks("navn").Select
        .Selection.Text = (CStr(Forms!fKontaktpersoner!KontaktpersonFornavn))
        .ActiveDocument.Bookmarks("efternavn").Select
        .Selection.Text = (CStr(Forms!fKontaktpersoner!KontaktpersonEfternavne))
        .ActiveDocument.Bookmarks("adresse").Select
        .Selection.Text = (CStr(Forms!fKontaktpersoner!KontaktpersonAdresse1))
        .ActiveDocument.Bookmarks("postnr").Select
        .Selection.Text = (CStr(Forms!fKontaktpersoner!KontaktpersonPostnr))
        .ActiveDocument.Bookmarks("by").Select
        .Selection.Text = (CStr(Forms!fKontaktpersoner!Kombinationsboks24))
        .ActiveDocument.Bookmarks("tekst").Select
       
    End With
   
    objWord.ActiveDocument.SaveAs "C:\data\Output.doc"
       
    Set objWord = Nothing

errorHandler:
    MsgBox Err.Number & " : " & Err.Description
    Exit Sub
End Sub

Hvad er der galt...

Håber nogen kan hjælpe.

(Kører Access 2003. Har aktiveret referencen MS Word 11.0 object library)

P.f.t.
Rudy
28. september 2004 - 14:09 #1
Prøv med:

Private Sub Kommandoknap33_Click()

On Error GoTo errorHandler
   
    Dim objWord As New Word.Application
   
    With objWord
   
        .Visible = True
        .Activate
        .documents.Open ("C:\data\skabelon.doc")
        ...
        ...
Avatar billede rudymadsen Nybegynder
28. september 2004 - 14:17 #2
Hej Thomas
Tak for dit svar. Det hjalp meget. Dog kommer den med en ny fejl, som kort og godt hedder "0:". Det er selvfølgelig ikke smart med en messagesbox med denne besked. Tror du, jeg blot kan deaktivere den?

/Rudy
28. september 2004 - 14:20 #3
kan du se hvilken linie, som giver fejlen? Prøv at fjerne (eller sæt ' foran) linien On Error GoTo errorHandler
Avatar billede rudymadsen Nybegynder
28. september 2004 - 14:26 #4
Nej, det kan jeg ikke se. Selvom jeg udkommenterer denne linje, giver den blot samme fejl, men uden at debugge... hmmm...
28. september 2004 - 14:43 #5
hmm, det lyder mærkeligt...

Men hvis fejlen ikke betyder noget, kan du vælge at ignorere den i din fejlhåndtering:

Private Sub Kommandoknap33_Click()

On Error GoTo errorHandler
   
    Dim objWord As New Word.Application
   
    With objWord
   
        .Visible = True
        .Activate
        .documents.Open ("C:\data\skabelon.doc")

        .ActiveDocument.Bookmarks("navn").Select
        .Selection.Text = (CStr(Forms!fKontaktpersoner!KontaktpersonFornavn))
        .ActiveDocument.Bookmarks("efternavn").Select
        .Selection.Text = (CStr(Forms!fKontaktpersoner!KontaktpersonEfternavne))
        .ActiveDocument.Bookmarks("adresse").Select
        .Selection.Text = (CStr(Forms!fKontaktpersoner!KontaktpersonAdresse1))
        .ActiveDocument.Bookmarks("postnr").Select
        .Selection.Text = (CStr(Forms!fKontaktpersoner!KontaktpersonPostnr))
        .ActiveDocument.Bookmarks("by").Select
        .Selection.Text = (CStr(Forms!fKontaktpersoner!Kombinationsboks24))
        .ActiveDocument.Bookmarks("tekst").Select
       
    End With
   
    objWord.ActiveDocument.SaveAs "C:\data\Output.doc"
       
    Set objWord = Nothing

errorHandler:
    Select Case Err
        Case 0: resume next
        case else
            MsgBox Err.Number & " : " & Err.Description

    End select
End Sub
Avatar billede rudymadsen Nybegynder
28. september 2004 - 15:19 #6
Ja, så betød alligevel noget. Da jeg satte den case sætning ind, kom en anden fejl:

20: Resume witout error

Any ideas :-)
28. september 2004 - 16:09 #7
nå, ja selvfølgelig :o)

Du mangler jo en Exit Sub lige inden Errorhandleren.

Derfor kom der en fejl 0 (ingen fejl) når alt gik godt.

Her følger den rigtige kode:
Private Sub Kommandoknap33_Click()

On Error GoTo errorHandler
   
    Dim objWord As New Word.Application
   
    With objWord
   
        .Visible = True
        .Activate
        .documents.Open ("C:\data\skabelon.doc")

        .ActiveDocument.Bookmarks("navn").Select
        .Selection.Text = (CStr(Forms!fKontaktpersoner!KontaktpersonFornavn))
        .ActiveDocument.Bookmarks("efternavn").Select
        .Selection.Text = (CStr(Forms!fKontaktpersoner!KontaktpersonEfternavne))
        .ActiveDocument.Bookmarks("adresse").Select
        .Selection.Text = (CStr(Forms!fKontaktpersoner!KontaktpersonAdresse1))
        .ActiveDocument.Bookmarks("postnr").Select
        .Selection.Text = (CStr(Forms!fKontaktpersoner!KontaktpersonPostnr))
        .ActiveDocument.Bookmarks("by").Select
        .Selection.Text = (CStr(Forms!fKontaktpersoner!Kombinationsboks24))
        .ActiveDocument.Bookmarks("tekst").Select
       
    End With
   
    objWord.ActiveDocument.SaveAs "C:\data\Output.doc"
       
    Set objWord = Nothing
    Exit sub
errorHandler:
    Select Case Err
        case else
            MsgBox Err.Number & " : " & Err.Description

    End select
End Sub
Avatar billede rudymadsen Nybegynder
28. september 2004 - 18:39 #8
Er der nogensinde nogen, der har fortalt dig, at du er et geni ;-)

Tak for hjælpen!!!

/Rudy
28. september 2004 - 21:03 #9
Det hænder, men jeg lever jo at arbejde med bla. Access, så man behøver ikke være geni, men blot have erfaring. Men det er dejligt at høre alligevel :o)

tak for point?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester