Als u dit document opent, wordt de volgende SQL-opdracht uitgevoerd: Select * From

Status
Niet open voor verdere reacties.

Withaar

Verenigingslid
Lid geworden
8 apr 2001
Berichten
3.551
Ik heb een document waarin een CSV bestand wordt gebruikt om een merge uit te voeren in Word (field).

Als we het document mailen aan anderen krijgen ze de melding; Als u dit document opent, wordt de volgende SQL-opdracht uitgevoerd: Select * From xxxx.csv.

Nu staan op internet diverse 'oplossingen' de hebben echter allemaal betrekking op registry aanpassingen op de 'ontvangende' pc om de melding te onderdrukken. M.i. is dat geen oplossing.
Ik wil het oplossen aan de bron, dus de SQL-opdrachten in het document verwijderen voor het verzenden per mail.

Code;
Selection.WholeStory
Selection.Fields.Unlink

werkt (hiervoor) niet, iemand een idee welke code ik kan gebruiken om de merge link te verwijderen?
 
Probeer deze eens:

Code:
Dim afield As Object
On Error Resume Next
For Each afield In ActiveDocument.Fields
   afield.LinkFormat.BreakLink
Next
End Sub
 
Bedankt, ga het morgen op het werk uitproberen.
 
Werk goed, maar alleen voor de field in het hoofddocument (helaas)

Ivm plaats houders e.d. zitten er ook een aantal velden in tekstblokken, deze worden niet mee genomen door het script.
Naast het 'actieve' document zou dus ook door alle tekstblokken heen gelopen moeten worden.

Zelf al wat gezocht, ik vermoed dat het iets met StoryRanges, Sections of Shapes te doen heeft.
Maar misschien kan het nog eenvoudiger door ActiveDocument.Fields te vervangen door iest van Obj.Documents.Fields o.i.d. Geen idee of de die methode op dat niveau van het object(documents) mag gebruiken.
 
Laatst bewerkt:
Ik vermoed zelf met zo iets (morgen maar even uitproberen).

Dim afield As Object
On Error Resume Next
For j = 1 To ActiveDocument.Shapes.Count
ActiveDocument.Shapes(j).Select
For Each afield In ActiveDocument.Fields
afield.LinkFormat.BreakLink
Next
Next j
 
Laatst bewerkt:
Het scheelt als je de vraag compleet formuleert; dan krijg je betere antwoorden ;)
Probeer deze eens:
Code:
Sub UnlinkAll()
Dim oStory As Range
On Error Resume Next
    For Each oStory In ActiveDocument.StoryRanges
        oStory.Fields.Update
        oStory.Fields.Unlink
        If oStory.StoryType <> wdMainTextStory Then
            While Not (oStory.NextStoryRange Is Nothing)
                Set oStory = oStory.NextStoryRange
                oStory.Fields.Unlink
            Wend
        End If
    Next oStory
    Set oStory = Nothing
End Sub
 
Laatst bewerkt:
Overigens kun je een samenvoeging prima mailen naar een ontvanger; dan krijgt die het document met de gegevens, en niet de linkjes. Zou ook een oplossing kunnen zijn, want daar hoef je verder helemaal niks voor in te richten. Bovendien staan in je brondocument de gegevens niet; die komen tenslotte uit je gegevensbestand.
 
Overigens kun je een samenvoeging prima mailen naar een ontvanger; dan krijgt die het document met de gegevens, en niet de linkjes. Zou ook een oplossing kunnen zijn, want daar hoef je verder helemaal niks voor in te richten. Bovendien staan in je brondocument de gegevens niet; die komen tenslotte uit je gegevensbestand.

Snap ik, maar dan krijgen sommige gebruikers dus tijdens het openen de SQL vraag.

Ik kan je code morgen pas testen, maar ga er blind vanuit dat dit de oplossing is. Bedankt!!
 
Toch maar even nieuw leven in de vraag, want helaas de code werkt toch niet helemaal goed in het verwijderen van de margefields.
Melding.JPG

Ondanks de code zijn er nog steeds mergefield’s aanwezig in de tekst.

Ivm de locatie op het formulier van de deze teksten staan deze in tekstvlakken.
Nb. Er is sprake van tekstvlakken in tekstvlakken.

Merge.JPG
 
Laatst bewerkt:
Stuur eens een voorbeeld documentje mee, dat kijkt wat makkelijker en scheelt ons een hoop voorbereidend werk.
 
Dank voor je inzet, maar er besloten dat de applicatie die de brieven aanmaakt op niet al te lange termijn vervangen gaat worden.
Er wordt verder niets mee mee gedaan om dit (en andere zaken) op te lossen.

Zelf denk ik dat het vermoedelijk nog maar iets kleins is om dit werkend te krijgen, maar het even niet anders... Ik sluit de vraag.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan