tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 2011
-
17 mars 2006 à 10:42
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 2011
-
17 mars 2006 à 17:58
Bonjour à tous,
J'ai une requête SQL sous Access qui utilise la fonction Replace et elle marche très bien.
sql "Select * from Table where Champ1 Replace([Champ2],'.',':');
Or, lorsque j'utilise cette requête sous VB6, avec un recordset ou un ADODC, il me dit qu'il ne connait pas la fonction Replace. J'ai le même cas de figure avec InStrRev, MonthName et plein d'autres...
Quelqu'un pourrait-il me dire si c'est possible de faire cela sous VB6, comment le faire, ou s'il existe une liste de fonctions qui ne sont pas compatibles sous VB6..?
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 17 mars 2006 à 11:12
Salut,
As tu essayer de faire les traitement Replace, InstrRev... Directement dans ton code plutot que dans ta requete.
sql "Select * from Table where Champ1 " & Replace([Champ2],".",":") & ";"
Le seul probleme est qu il te faut connaitre la valeur de [Champ2] depuis le code
@+, Julien Pensez: Moteur de Recherche, Réponse Acceptée
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 17 mars 2006 à 13:07
Malheureusement mon exemple était mauvais, dsl...
En fait, il est vrai que dans la clause WHERE ça peut marcher en mettant les fonctions dans le code. Seuleument, dans mon cas de figure, je fais un order by, d'une expression, contenant les fameuses fonctions. Or comment pourrais-je faire pr mettre une expression en code, puisque par définition, la fonction va se faire sur toutes les lignes de la table.
donc je ne connais pas les données comme disait jrivet...
TBBUIM
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 17 mars 2006 à 14:36
C pareil, le problème est que le recordset n'accepte pas qu'on lui passe certaines fonctions, et j'ai justement besoin de cette fonction pr faire un tri de données assez complexe. donc même en passant par plusieurs requête, le recordset n'accepte pas!
TBBUIM
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 17 mars 2006 à 15:06
/auteurdetail.aspx?ID=401740 il faut faire 2 requêtes. la 2e récupérée dans une tableau, le tableau ensuite travaillé (replace), et la première en boucle sur tes éléments.
lol sincèrement, si tu te relis, tu verras que c assez peu compréhensible...
Mais bon, ma question ct de savoir si yavait une liste de fonctions autorisées qui passent avec les recordset de malheurs de VB. Mais bon, merci qd même
TBBUIM
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 17 mars 2006 à 15:25
Oui j'avais bien compris merci
Tout ce que je voulais c'est savoir qu'est-ce qui passe en ADO, parce qu'apparemment, ya pas grand chose...
Donc toutes les requêtes que je trouve sous Access, ne sont pas utilisables dans mon appli, jvais devoir bidouiller de chez bidouiller comme dhab, c pénible!
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 17 mars 2006 à 17:08
Hmmm tu parles de façon enigmatique PCPT
Qu'entends-tu par "ouvrir le résultat"? lol
Pourrais-tu t'expliquer clairement sur ce point?
Parce que les requêtes, que je les fasse sous access et que j'essaye de les lancer sous Vb dans un recordset, ou que j'écrive la requête entière sous Vb, ça me fait toujours la même erreur, il refuse l'appel aux fonctions que j'ai cité ci-dessus.
Donc je ne vois pas où tu veux en venir avec ta phrase "ouvrir le résultat"...
TBBUIM
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 17 mars 2006 à 17:30
??? là encore je ne te comrpends pas...
oui, le résultat est le bon en requête Access et marche très bien SOUS Access
En revanche, dès que j'utilise les rq qui sont dans mon .mdb sous VB,
genre sql = "select * from rq_access" rs.open sql, cn,1,2
ça plante sur la fonction se trouvant à l'intérieur de la requête Access.
En fait, sous Access, on peut créer toutes les fonctions qu'on veut et les utiliser dans les requêtes, or sous ADO, ce n'est pas possible et c'est bien dommage, car c super utile!, donc la vrai question est la suivante:
Comment utiliser une fonction que l'on a créé et qui a comme paramètre la valeur d'un champ de chaque ligne dans une requête SQL en VB?
TBBUIM