cs_akaii
Messages postés109Date d'inscriptionmardi 10 janvier 2006StatutMembreDernière intervention14 février 2014
-
8 sept. 2006 à 14:45
PROTEUS91
Messages postés156Date d'inscriptionmardi 4 novembre 2003StatutMembreDernière intervention28 décembre 2010
-
8 oct. 2008 à 11:32
Hello,
Petit soucis avec une requête que je lance depuis VB6 avec ADODB vers une BD de type SQL Access voici la requête :
UPDATE CONFIG
SET designation = replace(designation,'DocuDoc','DocuDoc3')
WHERE designation LIKE '*DocuDoc*';
ADODB me dit :
Fonction 'replace' non définie dans l'expression.
Quelqu'un aurait-il une idée sur où se situe le problème?
cs_akaii
Messages postés109Date d'inscriptionmardi 10 janvier 2006StatutMembreDernière intervention14 février 2014 11 sept. 2006 à 08:41
C'est tout bon j'ai réussi à le faire dans la requête SQL directement.
Pour info ADODB ne supporte pas la fonction replace() - ce qui est bien dommage - voici donc la requete qui m'a permis de faire ce que je voulais:
UPDATE config SET designation = 'c:\progra~1\docudoc3' + mid(designation,20,len(designation))
WHERE mid(designation,1,19) = 'C:\progra~1\docudoc';
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 8 sept. 2006 à 15:00
salut,
d'après ce que tu écris (du moins ce que j'en comprends), designation est un objet (SET). il ne peut donc pas recevoir une chaîne...
si je fais fausse route, c'est peut-être la fonction replace qui n'est plus reconnue. vois dans ce cas du côté de tes références, ou tape plus haut (strings.)
++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
cs_akaii
Messages postés109Date d'inscriptionmardi 10 janvier 2006StatutMembreDernière intervention14 février 2014 8 sept. 2006 à 15:07
En fait designation est le champ de ma table qui contient l'enregistrement sur lequel je veux effectuer ma modification.
tu penses à une référence en particulier?
cs_akaii
Messages postés109Date d'inscriptionmardi 10 janvier 2006StatutMembreDernière intervention14 février 2014 8 sept. 2006 à 15:21
En fait c'est un programme qui lance un fichier SQL donc il faudrait que le travail soit fait dans la requête SQL elle-même pas dans le programme.
Et j'ai oublié de dire que la requête suivante fonctionne bien dans Access directement :
UPDATE CONFIG
SET designation = replace(designation,'DocuDoc','DocuDoc3')
WHERE designation LIKE '*DocuDoc*';
Dolphin Boy
Messages postés630Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention17 février 2007 8 sept. 2006 à 15:41
'création du recordset
rs.open "select designation WHERE designation LIKE '*DocuDoc*'", TaConnexion, adOpenKeyset, adLockPessimistic
'replace
do while not rs.eof
rs!designation = replace(rs!designation,"'DocuDoc"',"'DocuDoc3")
rs.update
rs.movenext
loop
PROTEUS91
Messages postés156Date d'inscriptionmardi 4 novembre 2003StatutMembreDernière intervention28 décembre 2010 8 oct. 2008 à 11:32
Oui mais bon la c'est pas une solution c'est une bifurcation d'autoroute. Cet enchainement ne marchera que si tu connais a l'avance la position du caractere recherché.
Et pour simplifier la chose la fonction InStrRev ne marche pas non plus sous ADODB