Aantal pagina's opvragen van Worddoc in Access

Status
Niet open voor verdere reacties.

jpspoor

Gebruiker
Lid geworden
6 apr 2007
Berichten
9
Hi,
ik wil graag van een groot aantal Word documenten het aantal pagina invullen in een Access database tabel. Een van de velden in de tabel bevat het pad en docnaam. En een door middel van van het onderstaand stukje VBA kan ik weel bijv. de File grootte (size) opvragen maar niet het aantal pagina's. Bij dubbelklikken op veld 'Txt_2' word het pad en docnaam meegegeven aan de Sub ShowFileInfo. En die geeft dan via een MsgBox de filesize weer.

Maar hoe kan ik datzelfde voor andere DocProperties zoals het aantal pagina's of auteur enz. Als er iemand een oplossing weet graag, alvast bedankt. Jan Paul

Code:
Private Sub Txt_2_DblClick(Cancel As Integer)

ShowFileInfo (Me.Txt_1)

End Sub

Sub ShowFileInfo(filespec)
    Dim fs, f, s
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFile(filespec)
    s = f.Size
    MsgBox s & " bytes"
End Sub
 
Laatst bewerkt door een moderator:
Dit werk in Excel, maar je moet er wel het bestand voor openen (door code welteverstaan):

Code:
Sub OpenAndReadWordDoc()

    Dim wrdApp As Word.Application
    Dim wrdDoc As Word.Document
    Dim cProp As DocumentProperty

    Set wrdApp = CreateObject("Word.Application")
    Set wrdDoc = wrdApp.Documents.Open("C:\bestand.doc") 'pas aan

    With wrdDoc
        .Repaginate
        MsgBox .BuiltinDocumentProperties(wdPropertyPages)
        .Close False
    End With

    wrdApp.Quit
    Set wrdDoc = Nothing
    Set wrdApp = Nothing

End Sub

Wigi
 
Hee,
bedankt voor je reactie. Maar het werkt (nog) niet in Access. Net even geprobeerd. Ik krijg de melding Fout 5 tijdens uitvoering. Ongeldige procedure-aanroep of ongeldig argument.

Het loopt goed tot aan de regel "MsgBox .BuiltinDocumentProperties(wdPropertyPages)".

Ik heb geprobeerd toen de verwijzingen aan te zetten naar de Object libraries van Word en Office (Onder 'Extra - verwijzingen' in VBA). Maar dat hielp niet.
 
OK, gevonden

Nog een beetje er mee zitten stoeien. Ik heb hetzelfde gevonden in Access als wat jij in Excel kreeg. Als ik het index nummer aangeef werkt het.

Code:
Sub OpenAndReadWordDoc()

    Dim wrdApp 'As Word.Application (geblokkeerd met ' )
    Dim wrdDoc 'As Word.Document (geblokkeerd met ' )
    Dim cProp 'As DocumentProperty (geblokkeerd met ' )
    Dim wdPropertyPages
    Dim wrdPath As String
    
    wrdPath = "C:\Test.doc"

    Set wrdApp = CreateObject("Word.Application")
    Set wrdDoc = wrdApp.Documents.Open(wrdPath)

    With wrdDoc
        .Repaginate
        MsgBox .BuiltinDocumentProperties(14) 'Index nummer aangeven van aantal pagina's aangeven.
        .Close False
    End With
    
    wrdApp.Quit
    Set wrdDoc = Nothing
    Set wrdApp = Nothing

End Sub


De oplossing werkt. Maar het is maar zo, zo.. Vanwege het feit dat Word start.
 
Laatst bewerkt door een moderator:
Maar het is maar zo, zo.. Vanwege het feit dat Word start.

Dat zou ik niet weten te verhelpen.

Over index en naam: schrijf eens een lus doorheen de bestandseigenschappen, en haal de Name eigenschap op. Kijk dan bij nummer 14, dan weet je wat het had moeten zijn.

In plaats van ++++++ rondom code kan je ook code tags plaatsen, dan komt de code in een apart venstertje.

Wigi
 
Bedankt..

Ga ik doen, en bedankt voor hulp. Het stukje code bespaart me een heleboel muisklikken.

Code:
Ahaah... Ook gevonden.
 
Beloofd

Zoals beloofd: Stukje code voor het uitlezen van docproperties (Te gebruiken in Word). Lijstje word ana het eind toegevoegd
Code:
Sub ListProperties()
    Dim rngDoc As Range
    Dim proDoc As DocumentProperty

    Set rngDoc = ActiveDocument.Content

    rngDoc.Collapse Direction:=wdCollapseEnd

    For Each proDoc In ActiveDocument.BuiltInDocumentProperties
        With rngDoc
            .InsertParagraphAfter
            .InsertAfter proDoc.Name & "= "
            On Error Resume Next
            .InsertAfter proDoc.Value
        End With
    Next
End Sub

Resultaat:
Title= Titel
Subject= Onderwerp
Author= Jan Paul Spoor
Keywords=
Comments= Opmerkingen
Template= Normal.dot
Last author= ……….
Revision number= 8
Application name= Microsoft Office Word
Last print date=
Creation date= 26-05-2008 15:33:00
Last save time= 26-05-2008 15:41:00
Total editing time= 8
Number of pages= 1
Number of words= 0
Number of characters= 0
Security= 0
Category= Categorie
Format=
Manager= Manager
Company= ……….
Number of bytes= 28672
Number of lines= 0
Number of paragraphs= 0
Number of slides=
Number of notes=
Number of hidden Slides=
Number of multimedia clips=
Hyperlink base=
Number of characters (with spaces)= 0
 
Laatst bewerkt:
DSO file

Ik heb het bekeken. Leuk tooltje:thumb:. Maar de source code is voor VB en is niet zo te gebruiken in Access VBA (werkt niet). Het gaat mijn kennis te boven om het om te bouwen. Ik kan voorlopig uit de voeten met bovenstaande oplossing. Ondanks de belasting voor de PC werkt het. Bedankt voor de tip. Wel handig voor mensen die de props van verschillende docs achter elkaar willen wijzigen. Ik houd hem op de pc.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan