Excel : varaibles dans requête sql

Fermé
christof - 21 juil. 2008 à 14:40
christof59 Messages postés 3 Date d'inscription lundi 21 juillet 2008 Statut Membre Dernière intervention 23 juillet 2008 - 23 juil. 2008 à 10:32
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 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 717
23 juil. 2008 à 09:23
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 Date d'inscription lundi 21 juillet 2008 Statut Membre Dernière intervention 23 juillet 2008 1
23 juil. 2008 à 10:32
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