[vba] Fout -2147023174 Automatiseringsfout

Pagina: 1
Acties:

  • Rene59
  • Registratie: April 2000
  • Laatst online: 08-07 20:34
Google laat me vandaag in de steek.

Ik heb een stukje vba geprogrammeerd, waarmee ik vanuit Access een Word document genereer.
Alles gaat goed, totdat ik .PageSetup gebruik om de marges in te stellen. Op dat punt krijg ik de foutmelding zoals in de titel van deze post.

Hieronder de sub waarmee ik Word aanroep (die goed werkt):

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Sub StartWord()
On Error GoTo Fout
Set Woord = New Word.Application
Set MyDoc = Woord.Documents.Add
With Woord
    .Visible = True
    .WindowState = wdWindowStateMaximize
End With
GoTo EindeSub
Fout:
FoutMelding
EindeSub:
End Sub

Daarna roep ik een sub aan welke de opmaak van het document moet aanpassen:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Public Sub SetupWord()
On Error GoTo Fout
With Woord.Selection
    .Font.Name = "Arial"
    .Font.Size = 10
    .Font.Bold = False
    .Font.Italic = False
    .Font.Underline = wdUnderlineNone
    .Sections(1).Headers(wdHeaderFooterPrimary).Range.Text = ""
    .Sections(1).Footers(wdHeaderFooterPrimary).Range.Text = ""
    .Sections(1).PageSetup.TopMargin = CentimetersToPoints(2)
    .Sections(1).PageSetup.BottomMargin = CentimetersToPoints(2)
    .Sections(1).PageSetup.LeftMargin = CentimetersToPoints(2)
    .Sections(1).PageSetup.RightMargin = CentimetersToPoints(2)
End With
GoTo EindeSub
Fout:
FoutMelding
EindeSub:
End Sub

En daarna wordt de tekst ingevoegd en alles netjes 'nothing' geset. Je kan dan nog het document bewerken in word en je moet het handmatig opslaan en afsluiten.

Dit lijkt goed te werken. Namelijk, de eerste keer dat ik het uitvoer werkt alles prima.
Maar als ik dan word afsluit en hetzelfde daarna nogmaals uitvoer, dan gaat het mis en krijg ik dus die foutmelding op het punt waar de marges ingesteld worden.

Als ik dan word afsluit en het weer probeer gaat het weer wél goed... :?
Dus het gaat om en om wel en niet goed...

Iemand enig idee of er een workaround voor is? Want volgens mij is mijn code wel in orde...

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

-2147023174 dec = 800706BA hex = The RPC server is unavailable

Er staat nog een verwijzing in Woord naar een MS-Word instantie die je afgesloten hebt. Sluit MS-Word niet ondertussen af of start MS-Word elke keer als het nog niet gestart is...

We adore chaos because we like to restore order - M.C. Escher


  • Rene59
  • Registratie: April 2000
  • Laatst online: 08-07 20:34
Ik maak juist steeds een nieuwe instantie van Word aan.
En waar sluit ik Woord dan tussendoor af?
Zelfs als ik Word naderhand via het script netjes sluit krijg ik bij de 2e keer draaien dezelfde foutmelding bij de marges.
Waarom gaat het überhaupt bij de headers en footers wél goed, en bij de marges niet?

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Dat afsluiten doet je gebruiker zeg je zelf: 'handmatig opslaan en afsluiten'

We adore chaos because we like to restore order - M.C. Escher


  • Rene59
  • Registratie: April 2000
  • Laatst online: 08-07 20:34
Ik krijg de foutmelding ook als ik Word met vba code sluit.

  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Zit het probleem niet in de aanroep van CentimetersToPoints?
Als je die eens voor testen vervang door harde waardes.
Mogelijk is de referentie naar Word niet goed meer?

  • Rene59
  • Registratie: April 2000
  • Laatst online: 08-07 20:34
Lister: het zat hem inderdaad in de aanroep van CentimetersToPoints. Bedankt voor de tip!
Heb je enig idee wat de oorzaak zou kunnen zijn, waardoor met het gebruik van die aanroep ik die foutmelding krijg?
Pagina: 1