15. maj 2000 - 17:37Der er
3 kommentarer og 1 løsning
VB6 & Word dokumenter
Hej
Vi har en samling word dokumenter, hvor vi har udfyldt diverse felter i dokumenternes Properties. Vi vil så gerne have mulighed for at søge på indhold i "Subject"-feltet. Det kunne vi sagtens klare med Word. MEN, det giver en del trafik på en lille server i netværket. Så var det jeg fik den ide, at skrive et Visual Basic program som kunne tage alle subject værdier og smide dem ind i vores SQL database. Så kunne jeg så bare skrive et lille ASP script som vi kunne bruge til at søge med,istedet for Word. VB programmet kunne så køre engang om natten.
Men. Mit spørgsmål er så: Hvordan kan jeg i VB hente alle subject felter ud fra de forskellige dokumenterne? Jeg bruger Visual Basic 6.0
Det gøres ved at lave en rutine som via automation åbner word i baggrunden, åbner hvert af de dokumenter du er interesseret i, læser subject feltet, og gemmer oplysningerne i databasen.
Du starter med at lave en reference til "Microsoft Word x.x Object Library".
Derefter laver du en rutine med koden:
Dim wApp As Word.Application Dim wd As Word.document Dim dp As Word.d
Set wApp = New Word.Application Set wd = wApp.Documents.Open(FileName, ReadOnly:=True, AddToRecentFiles:=False)
Du skulle nu kunne finde den ønskede felt i:
wd.BuiltInDocumentProperties
Husk at lukke dokumentet og sætte alle objektreferencer til Nothing når du er færdig.
Det er en god ide at lade Word.Application stå åben imellem hvert dokument da det tager noget tid at initialisere Word, MEN det kan gå galt. Jeg har observeret at Word nogen gange låser når man laver langvarige ting igennem automation, så hvis du oplever det, så luk Word for hvert X dokument, og åben den igen. Du skal i det hele taget regne med at det er noget der KAN tage lang tid at køre igennem.
Tak for det fine svar. Men jeg må indrømme at jeg ikke er så hård i VB6 (Jeg bruger det næsten kun, hvis jeg vil afvikle et ASP script lokalt). Men hvordan laver jeg en reference til mit Microsoft Word 2000 Object Library?
Du åbener dit VB projelt & vælger menuen Project -> References. I references dialogen ruller du ned til du finder det ønskede library, sætter et flueben ud for det, og vælger OK.
Dette gør at VB "lærer" Word's objekthiraki at kende.
Philip
PS: Hvis du vil have hjælp til Word's objektmetoder (det er næsten umuligt uden), skal du installere hjælpefilen til Visual Basic for Applications. Det gøres med Office installationsbrogrammet under Word -> Hjælpefiler. Hvis du har valgt total installation har du den allerede, ellers er den der kun hvis du har bedt specifikt om det. Alt dette gælder for Office 97. Hvordan det virker med 2000 og dens automatiske installer, er jeg ikke sikker på. Det kan være at den automatisk gør det.
Et andet tip: Hvis du vil finde alle word filer i et bibliotek, skal du bruge VB's Dir() funktion.
Mange Tak! Men hvad gør: Dim dp As Word.d VB6 sagde at den var user-defined. Virker fint uden. ??
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.