Excel : varaibles dans requête sql

christof -  
christof59 Messages postés 3 Statut Membre -
Bonjour,
Bonjour,
je souhaite importer des données d'une BDD Oracle dans Excel en bornant ma sélection par des dates.
pour ce faire, j'ai activé l'enregistreur de macro et j'ai créé une requête mais le code retourné est quelque peu indigeste et je n'arrive pas à insérer des variables à savoir remplacer les dates de la requête ('01/01/2008' and '30/01/2008') par deux variables.

Voilà ma requête :select releve_bt.code_pers, releve_bt.duree_mo_hd
from releve_bt where releve_bt.date_pointage between '01/01/2008' and '30/01/2008'

Voilà le code : With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=Etat;UID=mabase;PWD=pwde;SERVER=server;", Destination:= _
Range("A3"))
.CommandText = Array( _
"SELECT releve_bt.CODE_PERS, releve_bt.DUREE_MO_HS1" & Chr(13) & "" & Chr(10) & "FROM COLBERT.releve_bt releve_bt" & Chr(13) & "" & Chr(10) & "WHERE (releve_bt.DATE_POINTAGE Between '01/01/2008' And '31/01/2008')" _
)
.Name = "Lancer la requête à partir de Etatl"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With

J'ai essayé de remplacer 01/01/2008 par "&date_debut&" mais la syntaxe n'est pas bonne...Quelqu'un sait comment insérer ses variables ?Bonjour,
je souhaite importer des données d'une BDD Oracle dans Excel en bornant ma sélection par des dates.
pour ce faire, j'ai activé l'enregistreur de macro et j'ai créé une requête mais le code retourné est quelque peu indigeste et je n'arrive pas à insérer des variables à savoir remplacer les dates de la requête ('01/01/2008' and '30/01/2008') par deux variables.

Voilà ma requête :select releve_bt.code_pers, releve_bt.duree_mo_hd
from releve_bt where releve_bt.date_pointage between '01/01/2008' and '30/01/2008'

Voilà le code : With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=Etats_Ascol;UID=colbert;PWD=pilote;SERVER=colbert;", Destination:= _
Range("A3"))
.CommandText = Array( _
"SELECT releve_bt.CODE_PERS, releve_bt.DUREE_MO_HS1" & Chr(13) & "" & Chr(10) & "FROM COLBERT.releve_bt releve_bt" & Chr(13) & "" & Chr(10) & "WHERE (releve_bt.DATE_POINTAGE Between '01/01/2008' And '31/01/2008')" _
)
.Name = "Lancer la requête à partir de Etats_Ascol"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With

J'ai essayé de remplacer 01/01/2008 par "&date_debut&" mais la syntaxe n'est pas bonne...Quelqu'un sait comment insérer ses variables ?
A voir également:

2 réponses

gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

Essaies ceci après avoir correctement défini tes variables :
.CommandText = Array( _
"SELECT releve_bt.CODE_PERS, releve_bt.DUREE_MO_HS1" & Chr(13) & "" & Chr(10) & "FROM COLBERT.releve_bt releve_bt" & Chr(13) & "" & Chr(10) & "WHERE (releve_bt.DATE_POINTAGE Between date_debut And date_fin)" ) 
0
christof59 Messages postés 3 Statut Membre 1
 
oui !!! ça fonctionne avec :
.CommandText = Array( _
"SELECT releve_bt.CODE_PERS, releve_bt.DUREE_MO_HS1" & Chr(13) & "" & Chr(10) & "FROM COLBERT.releve_bt releve_bt" & Chr(13) & "" & Chr(10) & "WHERE (releve_bt.DATE_POINTAGE Between date_debut And date_fin)" )

merci !!!
0