Ett set att göra det är använda replace som söker upp en sträng och byter den till något annat. Tack för svaret, If InStr(minsträng,Chr$(34)) Then _ Om du ska använda värdet i SQL eller liknande så kan man koda om värdet att tolkas korrekt av SQL. SQL och VB fungerar på samma sätt vad det gäller " tecknet. En sträng med två efterföljande "-tecken tolkas som en sträng med ett " tecken i:Kontroll av sträng
Hur kollar man att en sträng inte innehåller något " och om den gör det byter det
eller tar bort det t.ex
Axeln är 8" lång
blir
Axeln är 8t lång
alt
Axeln är 8 lång
Jag har en fil där fälten är avgränsade med "" så det ställer till det när det kommer med ett extra ".
mvh //AndersSv: Kontroll av sträng
tex
<code>
Text2.Text = Replace(Text1.Text, Chr$(34), " ")
</code>
Detta exempel byter ut " i text1 till ett mellanslag i text2.
//TobbeSv: Kontroll av sträng
Hur kollar jag om strängen innehåller "
Det replace exemplet du angav, ersätter det alla " med ett mellanslag, om det tex står
Axel 8"x3"x6"
Eller tar den bara ett av dem?
// AndersSv: Kontroll av sträng
Text2.Text = Replace(Text1.Text, Chr$(34), " ")
/SvenSv: Kontroll av sträng
<code>
strText = "This is a ""Test"""
</code>
Ger: This is a "Test"
Samma gäller SQL:
<code>
strSQL = "SELECT * FROM TabellNamn WHERE FältNamn LIKE ""*""""*"""
</code>
Detta ger en sträng som ser ut så här:
SELECT * FROM TabellNamn WHERE FältNamn LIKE "*""*"
SQL kommer sedan tolka "*""*" som:
*"*
Alltså säga på fälte som innehåler "-tecknet.
Så då ersätter man helt enkelt alla "-tecken med två "-tecken:
<code>
strSQL = "SELECT * FROM TabellNamn WHERE FältNamn LIKE """ & Replace("This is a ""Test""") & """"
</code>