Vraag & Antwoord

Webprogrammeren & scripting

[ASP/VBScript] Find & Replace in Word document

Anoniem
Geer
2 antwoorden
  • Hallo allemaal,

    Ik heb een vraag over het creëeren van een Word-document op de server in ASP (VBScript).

    Ben op dit moment met een stage administratie systeem bezig, dat in ASP met MS SQL server wordt gemaakt, waarbij ook brieven gemaakt moeten kunnen worden.
    Daartoe moet er een word-document op de server gecreëerd worden. Dit lukt ook allemaal maar het een probleem met het volgende.

    Voor het maken van de brieven wordt een standaard vantevoren gemaakt word-document gebruikt. Middels "variabelen" in de tekst (bijv. %NAAM%) kunnen bepaalde gegevens uit de MS SQL database ingevoerd worden.

    Zelf had ik gedacht dit middels een Find & Replace te doen, maar om de een of andere reden wil dit niet werken.

    Tot nu toe heb ik de volgende code:

    [code:1:a90b62ea21]
    Set WordApp = Server.CreateObject("Word.Application")
    WordApp.Application.Visible = False
    Set WordDoc = WordApp.Documents.Add (Server.MapPath("./test.doc"))

    if (WordApp.Selection.Find.Execute("%NAAM%",False,False,False,False,False,False,wdFindContinue,False,"NAAMVANDEPERSOON",wdReplaceAll,False,False,False,False) = True) then
    response.write "Find and Replace succesful <BR>"
    else
    response.write "Find and Replace failed <BR>"
    end if

    WordApp.ActiveDocument.SaveAs Server.MapPath("./test1.doc")
    WordDoc.Close
    WordApp.Quit
    [/code:1:a90b62ea21]

    Het document "test.doc" is gevuld. Als daar %NAAM% in staat dan krijg ik op het scherm te zien: Find and Replace succesful
    Als dit juist niet in het document staat dan krijg ik te zien: Find and Replace failed

    Zou dus kennelijk moeten werken, echter het opgeslagen document test1.doc laat geen verschil zien. Dit betekent dat er nog altijd %NAAM% in staat en deze niet vervangen is door de gewenste tekst.

    Heb me bij de parameters van Find.Execute gehouden aan de parameters zoals die in de MSDN Library staan vermeld:
    http://msdn.microsoft.com…l/womthExecuteFindObj.asp

    Heeft iemand enig idee wat ik fout doe of wat ik eventueel vergeten ben??? Kom er zelf namelijk niet meer uit, heb al enkele dingen geprobeerd, echter zonder resultaat.

    Ik maak gebruik van:
    Win 2000 Advanced Server
    IIS 6.0
    MS Word 2000 (van Office 2000)
    MS SQL Server 2000

    Alvast bedankt en groet,
    Gerard
  • Ik heb dit ooit zelf opgelost door niet gebruik te maken van een Word document (Office installeren op server was niet mogelijk) maar van een RTF document wat in Word was aangemaakt. Zo'n RTF bestand kan je gewoon met het FSO openen en daarop simpele text-replaces doen. Het uiteindelijke resultaat is weer gewoon in Word te openen.

    Als je niet met RTF kan of wil werken dan kan ik maandag wel even een collega vragen die wat meer kaas gegeten heeft van deze materie (als je intussen het antwoord nog niet hebt gevonden).

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.