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 Computerworld it-jobbank
Mød 3.500+ it-talenter på IT-DAY 2026
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
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