Avatar billede m_tandrup Nybegynder
15. maj 2000 - 17:37 Der 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

Hilsen
Mads B. Tandrup
Avatar billede philiph Nybegynder
16. maj 2000 - 00:49 #1
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.

God fornøjelse
Philip


Avatar billede m_tandrup Nybegynder
17. maj 2000 - 15:42 #2
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?
Avatar billede philiph Nybegynder
17. maj 2000 - 19:28 #3
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.

God fornøjelse
Philip


Avatar billede m_tandrup Nybegynder
17. maj 2000 - 22:21 #4
Mange Tak!
Men hvad gør:
Dim dp As Word.d
VB6 sagde at den var user-defined. Virker fint uden.  ??
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
I dag 14:04 Pixeline cd’er til PC Af Mathilde i Windows
I dag 01:14 Windows 10 - IIS 10 Af bsn i Windows
I går 20:39 Boot fra USB Af poulmadsen i Windows
I går 11:43 Gmail-ikon på skrivebordet Win 10 Af ErikHg i Fri debat
I går 09:22 Lopslag Af Luffe i Excel