Ik zit met het volgende probleem. Ik heb een database geklust voor de studievereniging, met een aantal handige functies. Op het moment dat je een commissie opzoekt, is er de mogelijkheid om 'commissies instructies' te openen: een word document die staat opgeslagen op de server die de naam [CommissieID].docx draagt.
Het idee van de betreffende knop is, is dat hij de instructies opent als deze aanwezig is, of de mogelijkheid geeft om een nieuw Word bestand aan te maken, gebaseerd op een template (Template.dotx). Op het moment dat je een nieuwe instructie aanmaakt, dan slaat hij deze direct op in de betreffende map, met de juiste naam.
Echter hier komt ook het probleem om de hoek kijken: ik wil graag dat het als docx wordt opgeslagen, dat doet hij ook, alleen is Word ingesteld om by default in .doc op te slaan. Hierdoor wordt op dit moment een .doc opgeslagen als .docx, zonder dat deze wordt omgezet naar de nieuwe bestandsindeling. Het resultaat: corrupte Word bestanden. Hoe kan ik dit probleem oplossen? Ik ben vrij nieuw met VBA, dus als je een werkend voorbeeld hebt, graag! Dit is overigens de code die al redelijk werkt:
Het idee van de betreffende knop is, is dat hij de instructies opent als deze aanwezig is, of de mogelijkheid geeft om een nieuw Word bestand aan te maken, gebaseerd op een template (Template.dotx). Op het moment dat je een nieuwe instructie aanmaakt, dan slaat hij deze direct op in de betreffende map, met de juiste naam.
Echter hier komt ook het probleem om de hoek kijken: ik wil graag dat het als docx wordt opgeslagen, dat doet hij ook, alleen is Word ingesteld om by default in .doc op te slaan. Hierdoor wordt op dit moment een .doc opgeslagen als .docx, zonder dat deze wordt omgezet naar de nieuwe bestandsindeling. Het resultaat: corrupte Word bestanden. Hoe kan ik dit probleem oplossen? Ik ben vrij nieuw met VBA, dus als je een werkend voorbeeld hebt, graag! Dit is overigens de code die al redelijk werkt:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| Private Sub instructie_Click() Dim wrd As Object Dim strPath As String, strTemplate As String, strDocPath As String strPath = CurrentProject.Path & "\Commissie instructies\" If FileExists(strPath & [ID] & ".docx") = False Then box = MsgBox("Werkinstructie voor de commissie " & [Naam].Column(1) & " nog niet, wil je er een aanmaken?", vbYesNo, "Instructie aanmaken") If box = vbYes Then Set oWrd = CreateObject("Word.Application") strTemplate = strPath & "Template.dotx" oWrd.Documents.Add strTemplate oWrd.Visible = True With oWrd.ActiveDocument.Bookmarks .Item("COMMISSIE_ID").Range.Text = [ID] .Item("COMMISSIENAAM").Range.Text = [Naam].Column(1) End With strDocPath = strPath & [ID] & ".docx" oWrd.ActiveDocument.SaveAs strDocPath End If Else Set oWrd = CreateObject("Word.Application") oWrd.Visible = True strPath = strPath & [ID] & ".docx" oWrd.Documents.Open strPath End If End Sub |
[ Voor 0% gewijzigd door Verwijderd op 19-07-2009 21:50 . Reden: codetags ]