Variable dans macro Excel et requête SQL - VB/VBA/VBS - Programmation
Marsh Posté le 12-04-2007 à 15:30:26
"09200" <- quand tu saisis ça, sous excel, il détecte un nombre. il vire donc le 0. le "=" dans la requête porte donc sur "9200", qui n'existe pas.
essaie de changer le format de la cellule en "texte" (ou saisi '09200) pour voir.
ps : pour le reste, mise à part que ton code n'est pas du tout protégé contre les SQL Injection, ça peut aller, effectivement ça devrait marcher
Marsh Posté le 12-04-2007 à 15:36:02
MagicBuzz a écrit : "09200" <- quand tu saisis ça, sous excel, il détecte un nombre. il vire donc le 0. le "=" dans la requête porte donc sur "9200", qui n'existe pas. |
-----------------------
Merci de ta réponse,
La cellule est deja en texte et je récupère bien la valeur '09200' au niveau de la variable.
Si je mets dans la procédure la commande suivante :
Excel.Range("Feuil2!B10" ).Value = valcel
La valeur récuperée est bien : 09200
Cordialement
...
Marsh Posté le 12-04-2007 à 15:42:04
chelou
ah, quoique... t'as pas plutôt un bon gros fatal error ? vire tes on error resume next que t'as collé partout si c'est pas le cas.
j'avais pas fait gaffe à ça :
Code :
|
faut écrire
Code :
|
Marsh Posté le 12-04-2007 à 16:00:38
MagicBuzz a écrit : chelou
|
---------------
MagicBuzz t'es un magicien...
ça marche bien... Merci beaucoup.
D'autre part, quand tu marques :
'mise à part que ton code n'est pas du tout protégé contre les SQL Injection'
cela veut dire quoi ?
Encore merci et
a+
Marsh Posté le 12-04-2007 à 16:04:22
essaie de taper ça comme code produit :
a' or 1=1;--
je te laisse imaginer ce qu'il se passe si tu écrits "drop table cdes" entre le ; et les -- (évite de le faire )
Marsh Posté le 12-04-2007 à 15:25:47
Bonjour,
J'ai un classeur Excel avec deux feuilles. Sur la feuil2-cel B4, je saisis un numéro d'article
(alpha-numérique)
Un bouton qui lance une macro quand on clique dessus.
Cette macro lance une requête sur une base sql et ramène les données sur toutes les commandes
concernant le code article saisi en Feuil2-cel B4 (ex : 09200)
La valeur saisie, je la passe en variable dans la macro, quand je clique sur le bouton pour lancer
la macro, aucune donnée n'est ramenée et aucun message d'erreur.
Si je mets le code article 'en dur' dans la requête, la j'ai les informations qui sont importées
correctement de la base sql.
OS : Win2K + SqlServer 2K
Qui peut m'aider ??
Ma macro :
-------------------------------------------
Sub Macro1()
Dim env As rdoEnvironment
Dim valcel As String
valcel = Excel.Range("Feuil2!B4" ).Value
Dim cnBat As ADODB.Connection
Set cnBat = New ADODB.Connection
Dim strConn As String
strConn = "PROVIDER=SQLOLEDB;"
strConn = strConn & "DATA SOURCE=curie;UID=sa;PWD=holdup;DATABASE=spca_prod"
cnBat.Open strConn
'------------------
Dim rsBat As ADODB.Recordset
Set rsBat = New ADODB.Recordset
With rsBat
.ActiveConnection = cnBat
.Open "select codeart,numcde,totht
from cdes
where codeart=' & valcel'"
Feuil1.Range("A2" ).CopyFromRecordset rsBat
.Close
End With
cnBat.Close
Set rsBat = Nothing
Set cnBat = Nothing
End Sub
'-------------------------------
Merci à vous....