Excel et requete ODBC avec date

  • Initiateur de la discussion Initiateur de la discussion mario_fr
  • 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 !

mario_fr

XLDnaute Nouveau
Bonjour à tous,

Je suis manager d'une équipe de support utilisateurs (Support bureautique).
Chaque lundi je fais un report de la semaine précédente, sur les nombres d'incidents et de taches traitées par les techniciens.
Pour cela, j'ai créé une requête ODBC dans excel qui attaque la base de données de notre outil de ticketing. (Remedy pour ne pas le nommer).

Dans ma requête Query (Fichier joint), j'ai un champ nommé "Status_History_Closed_Time" pour lequel je renseigne les dates de la semaine précédente. Exemple : >#13/04/2009# Et <#18/04/2009#

Mon problème est le suivant : C'est que je suis obligé de rentrer dans ma requête Query pour modifier ces dates.
Ce que je souhaiterais c'est avoir une macro me permettant de changer les dates directement depuis Excel.

Si l'un d'entre vous avait la solution vous feriez un heureux.

Merci d'avance.
 

Pièces jointes

  • Query.jpg
    Query.jpg
    44.4 KB · Affichages: 305
Re : Excel et requete ODBC avec date

Voici le requête utilisée :

SELECT "ITC:RPT:ReportDataNew".Status, "ITC:RPT:ReportDataNew".Classification, "ITC:RPT:ReportDataNew"."Group+", "ITC:RPT:ReportDataNew"."Requester+", "ITC:RPT:ReportDataNew".Summary, "ITC:RPT:ReportDataNew"."Individual+", "ITC:RPT:ReportDataNew"."Record-Entry-ID", "ITC:RPT:ReportDataNew".Status, "ITC:RPT:ReportDataNew"."Response-in-Time?", "ITC:RPT:ReportDataNew"."Fix-80%-in-Time?", "ITC:RPT:ReportDataNew"."Fix-99%-in-Time?"
FROM "ITC:RPT:ReportDataNew" "ITC:RPT:ReportDataNew"
WHERE ("ITC:RPT:ReportDataNew".Status_History_Resolved_TIME>{ts '2009-04-19 00:00:00'} And "ITC:RPT:ReportDataNew".Status_History_Resolved_TIME<{ts '2009-04-25 00:00:00'}) AND ("ITC:RPT:ReportDataNew"."Group+"='FR_VBN1_PCSupportVilleurbanne') AND ("ITC:RPT:ReportDataNew"."Record-Entry-ID" Like '%HD%')
ORDER BY "ITC:RPT:ReportDataNew".Status, "ITC:RPT:ReportDataNew"."Group+"
 
Re : Excel et requete ODBC avec date

Tu voulais peut etre plutot parler de cela :

Sub test()
'
' test Macro
' Macro enregistrée le 28/04/2009 par GB
'

'
With Selection.QueryTable
.Connection = Array(Array( _
"ODBC;DSN=Remedy;ARServer=remedy.alstom.com;ARServerPort=3111;UID=******;PWD=*****;ARAuthentication=;ARDiaryDescend=1;ARNameReplac" _
), Array("e=1;SERVER=NotTheServer"))
.CommandText = Array( _
"SELECT ""ITC:RPT:ReportDataNew"".Status, ""ITC:RPT:ReportDataNew"".Classification, ""ITC:RPT:ReportDataNew"".""Group+"", ""ITC:RPT:ReportDataNew"".""Requester+"", ""ITC:RPT:ReportDataNew"".Summary, ""ITC:RPT:ReportD" _
, _
"ataNew"".""Individual+"", ""ITC:RPT:ReportDataNew"".""Record-Entry-ID"", ""ITC:RPT:ReportDataNew"".Status, ""ITC:RPT:ReportDataNew"".""Response-in-Time?"", ""ITC:RPT:ReportDataNew"".""Fix-80%-in-Time?"", ""ITC:RPT:Repo" _
, _
"rtDataNew"".""Fix-99%-in-Time?""" & Chr(13) & "" & Chr(10) & "FROM ""ITC:RPT:ReportDataNew"" ""ITC:RPT:ReportDataNew""" & Chr(13) & "" & Chr(10) & "WHERE (""ITC:RPT:ReportDataNew"".Status_History_Resolved_TIME>{ts '2009-04-19 00:00:00'} And ""ITC:RPT:ReportDataNew""." _
, _
"Status_History_Resolved_TIME<{ts '2009-04-25 00:00:00'}) AND (""ITC:RPT:ReportDataNew"".""Group+""='FR_VBN1_PCSupportVilleurbanne') AND (""ITC:RPT:ReportDataNew"".""Record-Entry-ID"" Like '%HD%')" & Chr(13) & "" & Chr(10) & "ORDER BY ""I" _
, "TC:RPT:ReportDataNew"".Status, ""ITC:RPT:ReportDataNew"".""Group+""")
.Refresh BackgroundQuery:=False
End With
End Sub
 
Re : Excel et requete ODBC avec date

re

Normalement d'après ton code, il suffit de changer

Code:
2009-04-19

par
Code:
"& annee &"-" & moisdeb & "-" & jourdeb &"

en nommant tes variables par rapport aux dates que tu veux et faire idem pour la date de fin.

Attention a bien respecter les ' qui se trouvent dans le code.
 
Re : Excel et requete ODBC avec date

Bonjour à tous,

sans aucune macro, on peut utiliser des paramètres dans Query. Pour celà, à la place du critère

>#13/04/2009# Et <#18/04/2009#

on peut mettre

Code:
>[Date1] Et <[Date2]

ou

Code:
between [Date1] and [date2]
(les bornes seront incluses dans ce cas)

à chaque mise à jour il demandera les valeurs de Date1 et Date2. On peut même associer les paramètres à la valeur de cellules de la feuille grace à la barre d'outils Données externes, bouton Paramètres de la requête.
 
Re : Excel et requete ODBC avec date

Es ce que ce code est censé fonctionné ?
Parce qu'il ne marche pas... je renseigne mal mes variables….. ?
Il s'arrête sur la ligne
Code:
.Refresh BackgroundQuery:=False


Code:
Sub test()
Dim annee, moisdeb, jourdeb As Integer

annee = "2009"
moisdeb = "04"
jourdeb = "13"

    With Selection.QueryTable
        .Connection = Array(Array( _
        "ODBC;DSN=Remedy;ARServer=remedy.alstom.com;ARServerPort=3111;UID=*******;PWD=******;ARAuthentication=;ARDiaryDescend=1;ARNameReplac" _
        ), Array("e=1;SERVER=NotTheServer"))
        .CommandText = Array( _
        "SELECT ""ITC:RPT:ReportDataNew"".Status, ""ITC:RPT:ReportDataNew"".""Group+"", ""ITC:RPT:ReportDataNew"".""Requester+"", ""ITC:RPT:ReportDataNew"".Summary, ""ITC:RPT:ReportDataNew"".""Individual+"", ""ITC:RPT:ReportDa" _
        , _
        "taNew"".""Record-Entry-ID"", ""ITC:RPT:ReportDataNew"".Status_History_Closed_TIME, ""ITC:RPT:ReportDataNew"".Item" & Chr(13) & "" & Chr(10) & "FROM ""ITC:RPT:ReportDataNew"" ""ITC:RPT:ReportDataNew""" & Chr(13) & "" & Chr(10) & "WHERE (""ITC:RPT:ReportDataNew"".Status_" _
        , _
        "History_Closed_TIME>{ts '" & annee & "-" & moisdeb & "-" & jourdeb & "'} And ""ITC:RPT:ReportDataNew"".Status_History_Closed_TIME<{ts '2009-04-18 00:00:00'}) AND (""ITC:RPT:ReportDataNew"".""Group+""='FR_LPT1_PCSupportLevallois') AN" _
        , _
        "D (""ITC:RPT:ReportDataNew"".""Record-Entry-ID"" Like '%TSK%')" & Chr(13) & "" & Chr(10) & "ORDER BY ""ITC:RPT:ReportDataNew"".Status, ""ITC:RPT:ReportDataNew"".""Group+""" _
        )
        .Refresh BackgroundQuery:=False
    End With
End Sub
 
Dernière édition:
Re : Excel et requete ODBC avec date

Bonjour tototiti2008,

Ta solution m'intéresse
Cela fonctionne très bien dans MSQuery, mais lorsque je veux renvoyé les donnée dans Excel, j'ai l'erreur suivante : "Driver]Parameter missing"

Sais tu pourquoi ?

Merci

Cdt
 
Re : Excel et requete ODBC avec date

Re,

Non, pas vraiment. Tu affichais bien les résultats dans Excel jusqu'à présent et ça fonctionnait, et en ajoutant les paramètres [Date1] et [Date2] ça ne marche plus ?
à quel type de serveur te connectes-tu ?

Sinon, je te fais remarquer que dans le post où tu as mis ton code on peut lire ton login et mot de passe d'accès à la base de données, ce qui n'est pas trés sûr... il serait intéressant d'éditer ton message pour les effacer ou les remplacer par des données fausses...
 
Re : Excel et requete ODBC avec date

Re a tous

Intuituivement, j'aurai mis:

Code:
annee = 2009
moisdeb = 04
jourdeb = 13

Mais bon seul des tests en essayant plusieurs type de données pourront t'aider dans ton problème.
 
Re : Excel et requete ODBC avec date

Bonjour,

Seriez vous ce qui pourrais dysfonctionné dans ce code :

Code:
Sub Test()
Dim annee, moisdeb, jourdeb, moisfin, jourfin As Integer
annee = 2009
moisdeb = 4
jourdeb = 20
moisfin = 4
jourfin = 24

    With Selection.QueryTable
        .Connection = Array(Array( _
        "ODBC;DSN=Remedy;ARServer=remedy.alstom.com;ARServerPort=3111;UID=*****;PWD=*****;ARAuthentication=;ARDiaryDescend=1;ARNameReplac" _
        ), Array("e=1;SERVER=NotTheServer"))
        .CommandText = Array( _
        "SELECT ""ITC:RPT:ReportDataNew"".Status, ""ITC:RPT:ReportDataNew"".""Group+"", ""ITC:RPT:ReportDataNew"".""Requester+"", ""ITC:RPT:ReportDataNew"".Summary, ""ITC:RPT:ReportDataNew"".""Individual+"", ""ITC:RPT:ReportDa" _
        , _
        "taNew"".""Record-Entry-ID"", ""ITC:RPT:ReportDataNew"".""First-Assigned-Time"", ""ITC:RPT:ReportDataNew"".Status" & Chr(13) & "" & Chr(10) & "FROM ""ITC:RPT:ReportDataNew"" ""ITC:RPT:ReportDataNew""" & Chr(13) & "" & Chr(10) & "WHERE (""ITC:RPT:ReportDataNew"".Status_His" _
        , _
        "tory_New_TIME>{ts '" & annee & "-" & moisdeb & "-" & jourdeb & " 00:00:00'} And ""ITC:RPT:ReportDataNew"".Status_History_New_TIME<{ts '" & annee & "-" & moisfin & "-" & jourfin & " 00:00:00'}) AND (""ITC:RPT:ReportDataNew"".""Group+""='FR_VBN1_PCSupportVilleurbanne') AND (""IT" _
        , _
        "C:RPT:ReportDataNew"".""Record-Entry-ID"" Like '%HD%')" & Chr(13) & "" & Chr(10) & "ORDER BY ""ITC:RPT:ReportDataNew"".Status, ""ITC:RPT:ReportDataNew"".""Group+""" _
        )
        .Refresh BackgroundQuery:=False
    End With
End Sub

Lors de l'exécution, cellui-ci s'arrete à la ligne
Code:
.Refresh BackgroundQuery:=False

Merci pour votre aide.
 
Dernière édition:
Re : Excel et requete ODBC avec date

Bonjour

Perso je me rappelle de problème pour récupérer des données avec des dates variables et ntre 2 dates avec msquery

En les écrivant en dur ça marchait et avec des variables ça ne marchait pas (je ne me rapelle plus si j'avais une erreur ou si la récupération était erronée)

Alors que si je faisais une requête avec une seule date de départ par exemple même variable là ça marchait

J'en étais arrivé à récupérer mes données avec une date de départ et c'était la macro ensuite dans Excel qui me supprimait les dates superieures que je ne voulais pas
 
Re : Excel et requete ODBC avec date

Re

Sinon dans un premier temps voir si il accepte avec à la place de la date entre ' de mettre la date au format standard c'est à dire 39923 pour le 20/04/2009 (tu peux aussi enregistrer une macro en cliquant droit sur ta requête et choisir modifier la requête et en mettant dans le MSquery sous forme de date standard pour voir le code généré).

Mais bon, c'est vrai que c'est toujours délicat pour modifier les requêtes ODBC.

Code:
Sub Test()
Dim annee, moisdeb, jourdeb, moisfin, jourfin As Integer
annee = 2009
moisdeb = 4
jourdeb = 20
moisfin = 4
jourfin = 24
 
    With Selection.QueryTable
        .Connection = Array(Array( _
        "ODBC;DSN=Remedy;ARServer=remedy.alstom.com;ARServerPort=3111;UID=*****;PWD=*****;ARAuthentication=;ARDiaryDescend=1;ARNameReplac" _
        ), Array("e=1;SERVER=NotTheServer"))
        .CommandText = Array( _
        "SELECT ""ITC:RPT:ReportDataNew"".Status, ""ITC:RPT:ReportDataNew"".""Group+"", ""ITC:RPT:ReportDataNew"".""Requester+"", ""ITC:RPT:ReportDataNew"".Summary, ""ITC:RPT:ReportDataNew"".""Individual+"", ""ITC:RPT:ReportDa" _
        , _
        "taNew"".""Record-Entry-ID"", ""ITC:RPT:ReportDataNew"".""First-Assigned-Time"", ""ITC:RPT:ReportDataNew"".Status" & Chr(13) & "" & Chr(10) & "FROM ""ITC:RPT:ReportDataNew"" ""ITC:RPT:ReportDataNew""" & Chr(13) & "" & Chr(10) & "WHERE (""ITC:RPT:ReportDataNew"".Status_His" _
        , _
        "tory_New_TIME>{ts '39923'} And ""ITC:RPT:ReportDataNew"".Status_History_New_TIME<{ts '39927'}) AND (""ITC:RPT:ReportDataNew"".""Group+""='FR_VBN1_PCSupportVilleurbanne') AND (""IT" _
        , _
        "C:RPT:ReportDataNew"".""Record-Entry-ID"" Like '%HD%')" & Chr(13) & "" & Chr(10) & "ORDER BY ""ITC:RPT:ReportDataNew"".Status, ""ITC:RPT:ReportDataNew"".""Group+""" _
        )
        .Refresh BackgroundQuery:=False
    End With
End Sub
 
- 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
Retour