[opgelost] tekst vervangen in een veld bij ieder record.

Status
Niet open voor verdere reacties.

Frits1969

Gebruiker
Lid geworden
29 nov 2009
Berichten
64
Hallo,

Ik heb een tabel, die bevat een tekst veld.
Bij ieder record heb ik in dat bewuste veld vaste woorden die ik wil muteren. Ik kan dat natuurlijk doen met zoek en vervang, maar als ik dat vaak moet doen wordt ik er natuurlijk gek van.

Overal staat bijvoorbeeld "Kenmerk:" ik wil daar 2 enters voor en 1 er achter plaatsen. Zo heb ik mee worden. Kan ik dat doe n met een query of moet dat met macro's of VBA?

Met vriendelijke groet,
Frits van Leeuwen
 
Laatst bewerkt:
Gaat het om een memo veld, of een gewoon tekstveld?
 
Dat kan je dan met een Bijwerkquery doen:
Code:
"Kenmerk:" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & [Omschrijving] & Chr(13) & Chr(10)
 
Bedankt voor het snelle antwoord. Werkt dat ook als ik een tekst als dit heb?

bla bla bla bla.Kenmerk:Materiaal: bla bla bla bla

Want in die zelfde tekst kan nog meer staan dat ik op de zelfde wijze moet aanpassen.
Waar plaats ik deze code?

Ik heb er het volgende van gemaakt, maar dat geeft nog 0 mutatieregels

Code:
UPDATE entry SET entry.description = "Kenmerk:" & Chr(13) & Chr(10) & Chr(13) & Chr(10)
WHERE (((entry.description) Like "*Kenmerk:*"));
 
Laatst bewerkt:
Dat lijkt ook niet op de code die ik heb gepost :). Jij zet alleen de tekst Kenmerk: vooraan gevolgd door twee lege regels. Bij mij staat er nog een veldnaam achter.
 
Dan denk ik dat ik het niet snap. Het gaat in het veld entry.description om een tekst, waar ergens de tekst Kenmerk: staat. daar wil ik dus enters om heen zetten. Ik heb verder geen andere velden die ik er in wil zetten.
 
Ik had begrepen dat je de tekst “Kenmerk:” met twee lege regels aan het begin wilde hebben, gevolgd door de oorspronkelijke tekst. Ik begrijp dat je in het veld Description ergens Kenmerk hebt staan, en dat je op dát punt de enters wilt hebben. Dat is inderdaad een stuk ingewikkelder. Je zult dan met Instr() de beginpositie van de tekst kenmerk moeten opsporen, die waarde gebruiken om met Left(Description;Instr(Description;”Kenmerk”) het linker deel van de tekst er uit te filteren, en met Mid() het rechterdeel. Ik sta niet te popelen om dit in de db na te maken :). Dus als je een voorbeeldje kan posten als je er niet uitkomt, dan kijk ik er wel even naar.
 
Ik was er al bang voor.
Dus ik moet het in VBA doen?! Ik ga nu naar bed, maar dan wil ik hier later wel op terug komen met een stukje code dat ik dan gebouwd heb.
 
Het kan nog steeds met een query denk ik, maar een lastige :). VBA is in ieder geval een stuk simpeler te doen.
 
Frits1969,

In een bijwerkQuery



Code:
Replace([Jouw Veld];"Kenmerk: ";Chr(13) & Chr(10) & Chr(13))

Gr. Cor
 
I would use vba like this. In the query, create a calculated field like this: ReplacedContent: fncReplaceContent([fieldforreplacement]). Then create a user defined function like this:

function fncReplaceContent(pFieldForReplacement as string) as string
dim val as string
val = ''
val = replace(pFieldForReplacement ,"aaa","xxx")
val = replace(pFieldForReplacement ,"bbb", "yyy")
val = replace(pFieldForReplacement ,"ccc", "zzz")


fncReplaceContent = val

end function

Jack
https://www.datacontrolllc.com
 
@pletter: het is de bedoeling dacht ik dat Kenmerk moet blijven staan. Dat zou dan dit worden:
Code:
Replace([Description];"Kenmerk: ";Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Kenmerk: " & Chr(13) & Chr(10) )
Je kan het eens proberen. Ik zou in ieder geval eerst checken of de veldlengte niet over de 250 tekens komt in die velden, anders ga je tekst kwijt raken.
 
Heel fijn!!! Bedankt allemaal.
Met z'n alle komen we er uit.
Het werkt. Natuurlijk moet ik kijken naar de veldlengte.
Is het een idee om dit op 500 te zetten of om te zetten naar memo? Ik weet niet of dat de werking bij memo het zelfde blijft. En ook niet of dat ik een tekst veld op 500 kan zetten.
 
Een ‘normaal’ tekstveld kan maximaal 255 tekens bevatten, en dan zijn ongeveer 3 regels tekst. Daar zit je zo aan, zeker als je overbodige tekens gaat toevoegen. Vandaar mijn waarschuwing en vraag of je een tekstveld gebruikt of een memo veld. Tegenwoordig heet dat: kort tekstveld of lang tekstveld. Maar het principe blijft hetzelfde.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan