Passer une variable dans une requete sql pour un tableau croisé dynamique

  • Initiateur de la discussion Initiateur de la discussion azmth
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

azmth

XLDnaute Nouveau
Bonjour,
Je cherche à récupérer une variable dans excel et de la passer dans une requete sql dans VBA. Voici un exemple dans lequel les variables récupérées dans excel sont StockCode et EntryDate:

ActiveSheet.PivotTableWizard SourceType:=xlExternal, SourceData:=Array("SELECT INVMOVEMENTS.StockCode, INVMOVEMENTS.EntryDate, INVMOVEMENTS.MovementType, INVMOVEMENTS.TrnType, INVMOVEMENTS.TrnQty" & Chr(13) & "" & Chr(10) & "FROM dbo.INVMOVEMENTS INVMOVEMENTS" & Chr(13) & "" & Chr(10) & "WHERE (INVMOVEMENTS.StockCode= 1000) AND (INVMOVEMENTS.EntryDate>={d '2007-01-04'}))

Le pb est une incompatibilité de données dès que je passe ces variables dans ce code.

Merci bcp de votre aide.

Azmth
 
Re : Passer une variable dans une requete sql pour un tableau croisé dynamique

Bonjour,

pour passer une variable dans SQL:

tavar=100

(INVMOVEMENTS.StockCode= 1000) devient
(INVMOVEMENTS.StockCode= " & tavar & ")


(INVMOVEMENTS.EntryDate>={d '2007-01-04'})) devient
(INVMOVEMENTS.EntryDate>={d '" & tadate &"'}))

essaies aussi (les dates en SQL, c'est prise de t^te)
{d '[tadate]'}

regarde si tu dois mettre le type de tadate en date ou string ( je pencherais pour string mais...)
 
Re : Passer une variable dans une requete sql pour un tableau croisé dynamique

Merci Michel, tu m'as vraiment mis sur la bonne voie!

La solution est:

Dim madate As String

mavar = Range("B3").Value
madate = Format((Range("B1").Value), "yyyy-mm-dd")

ActiveSheet.PivotTableWizard SourceType:=xlExternal, SourceData:=Array( _
"SELECT INVMOVEMENTS.StockCode, INVMOVEMENTS.EntryDate, INVMOVEMENTS.MovementType, INVMOVEMENTS.TrnType, INVMOVEMENTS.TrnQty" & Chr(13) & "" & Chr(10) & "FROM dbo.INVMOVEMENTS INVMOVEMENTS" & Chr(13) & "" & Chr(10) & "WHERE (INVMOVEMENTS.StockCode= " & var_code & ") A" _
, _
"ND (INVMOVEMENTS.EntryDate>={d '" & var_date_debut & "'},

MErci bcp de ton aide!

azmth
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

E
Réponses
4
Affichages
1 K
olivier
O
Retour