Qoute in sql string

Status
Niet open voor verdere reacties.

richard99

Gebruiker
Lid geworden
17 apr 2010
Berichten
95
Ooit had ik dit opgelost maar telkens wanneer een qoute in mijn tekst zit en ik deze tekst via een insert into statement probeert weg te schrijven krijgt ik een error.
INSERT INTO tbltabel (ID, Veld1) Values (1,'qoute ' loopt vast')
Ik kon me herinneren dat je de qoute kon vervangen met twee aanhalingstekens maar die loopt vast.
Wie weet deze nog?
 
Geef de volledige syntax eens, want hier klopt niet zoveel van.
 
Beide varianten zouden moeten werken:
Code:
INSERT INTO tbltabel (ID, Veld1) Values (1,'Dit is een test' )
En
Code:
INSERT INTO tbltabel (ID, Veld1) Values (1,"dit is een tekst")
 
Laatst bewerkt:
Goedemorgen,

Kennelijk was ik niet duidelijk genoeg.
INSERT INTO tbltabel (ID, Veld1) Values (1,'Dit is een test' )
Bovenstaande werkt echter gaat het fout wanneer er een qoute in de tekst staat zoals hieronder:
INSERT INTO tbltabel (ID, Achternaam) Values (1,'van 't Hart' )
INSERT INTO tbltabel (ID, Plaats) Values (1,''s-Gravenhage' )

Er is een methode om de qoute dan te coderen zodat het niet vastloopt.
 
Als het vaste tekst is, zal het wel gaan (de ascii waarde gebruiken) maar zit het in een veld, dan heb je een probleem. Zelf los ik dat op door met een Replace de quootjes te vervangen door een herkenbare string, en daarna op de recordset een query los te laten die de vervangstring weer omzet naar een quootje.
 
Laatst bewerkt:
Haha ja die doe ik al.
Gebruik twee tildes daarvoor en inderdaad vraag ik via een recordset deze weer op en pas ik deze aan.
In ieder geval bedankt voor het meedenken!
Ik heb het vroeger eens opgelost maar dat was in 2002 alleen ben de oplossing kwijt.
 
Da's jammer, want voor zover ik weet is er geen andere oplossing. En nou blijk jij die niet alleen gehad te hebben, maar te zijn kwijtgeraakt...
 
Het was iets met drie aanhalingstekens kon ik me herinneren alleen die werkt niet meer.
Bijv INSERT INTO tbltabel (ID, Achternaam) Values (1,'van """t Hart' )
Echt irritant want dat is natuurlijk veel sneller.
 
Die functie vervangt een enkele quote door en dubbele. En die moet je achteraf alsnog corrigeren. Toch?
 
Goedemorgen,

Nee want Access knipt de tweede quote weg.
Enige wat je dus moet doen is de replace functie
 
Maar dan heb je toch nog steeds dubbel werk, of drink ik nou teveel? Ik zie trouwens (met dank aan dezelfde fles) dat je moeite hebt met met woord 'quote' :)
Enige wat je moet doen is de qoute met een extra qoute aanbrengen en MS Access haalt dan één qoute weg.
Je hebt, als je deze truc denkt nodig te hebben, overigens geen functie nodig. Kan gewoon in je querystring.

Code:
INSERT INTO tbltabel (ID, Achternaam) Values (1," & Replace(Replace(Me.Achternaam;"'";"''");"""";"""""") & ")[B][/B]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan