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
Annonceindlæg fra Pax8
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") ... ...
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
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
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
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?
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser