problème requete Sql avec variable - VB/VBA/VBS - Programmation
Marsh Posté le 21-02-2005 à 09:40:51
varSql est une variable qui contient la liste des colones à récupérer.
Par exemple : plus haut j'ai par exemple
Citation : varSql = "INV_HIS, INV_Code, INV_PTF, ... , INV_CPT" |
Donc la variable peut etre plus ou moi longue.
Lorsqu'elle est courte ca va, mais au bout d'un certain nombre de caractère il faudrait que je repasse à la ligne aparament !
Marsh Posté le 21-02-2005 à 11:06:43
salut
d'abord un var string peut contenir 4 milliards de caractères si je ne me trompe pas. donc pas de probleme de ce coté.
deuxièment ton message d'erreur :
ta requete est du string, tes vars varDate, varCode ... sont-elles string ? si non mets cstr(varcode) ...
c'est quoi ce truc? INV" & Chr(13) & "" & Chr(10) & "WHERE pourquoi vas tu à la ligne? bon toujours est il que tu peux ajouter un espace à " WHERE et de meme pour les autres portions.
Enfin : qand tu mets une variable :
-si nombre : " & var & " (ok pour ca)
-si string : '" & var & "'
-date/heure : #" & var & "#
A+
Marsh Posté le 21-02-2005 à 09:40:36
Bonjour à tous,
j'ai un problème lors d'une requete Sql en vba avec l'utilisation d'une variable.
Pour commencer voici mon bout de code qui pose probème :
Le problème apparait lorsque ma variable [-i]varSql[/i] (qui est un string biensur) est trop grande (après un certain nombre de caractère j'ai l'erreur suivante :
Erreur d'éxécution '13' :
Incompatibilité de type
Comment faire pour ne plus avoir cette erreur ? ou comment formater ma requete ?
je pensais faire une fonction qui me permettrait d'avoir le format suivant :
.CommandText = Array( _
"SELECT INV.HIS, INV.PTF, INV.C_INS, INV.PAY, INV.L_PAY, INV.C_PAY, INV.L_PAY, INV.C_SEC, INV.L_SEC, INV.C_CLAS, INV.L_" _
, _
"T.V_PTF, INV.V_N" & Chr(13) & "" & Chr(10) & "FROM DBA.INV INV" & Chr(13) & "" & Chr(10) & "WHERE (INV.HIS={ts '" & varDate & " 00:00:00'}) AND (INV.PTF=" & varCode & " )" & Chr(13) & "" & Chr(10) & "ORDER BY INV.HIS, INV.CLAS, INV.L_CLAS" _
, "_ACT" )
avec les retours à la ligne au bout d'un certain nombre de caractère mais je ne vois pas comment !
Merci beaucoup de votre ! VRAIMENT MERCI
MM