problème requete Sql avec variable

problème requete Sql avec variable - VB/VBA/VBS - Programmation

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 :

Code :
  1. .CommandText = Array( _
  2.         "SELECT " & varSql & " 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" _
  3.         , "_ACT" )


 
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 :

Citation :

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 :

Citation :

.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

Reply

Marsh Posté le 21-02-2005 à 09:40:36   

Reply

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 !

Reply

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+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed