Comparaison de date avec MySQL [Résolu]

Signaler
Messages postés
8
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
28 septembre 2010
-
Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Bonjour à tous,

Voilà mon soucis:

J'utilise un outil de gestion de parc, et il faudrait que je puisse exploiter sa bdd pour en tirer des statistiques. Ces stats concerneraient à chaque fois une période donnée, c'est pourquoi j'ai sur ma feuille excel 2 champs de texte permettant de saisir la date de début et la date de fin de la période.

Simplement je n'arrive pas à récupérer la valeur de ce champ de texte dans vba, et à la comparer à celles de ma bdd ('aaaa-mm-jj'). J'ai essayé avec les attributs .Value, .Text, essayer CDate pour convertir la chaine en date etc, mais m'y connaissant assez peu en vba je préfère poser la question avant de perdre encore plus temps :)

Merci d'avance

12 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
je ne connais pas la syntaxe que tu utilises, néanmoins cela semble fonctionner.

faire, donc :

"SELECT ..
FROM ..
WHERE (glpi_tracking_0.date>={ts '" & Format$(Date1.Value, "YYYY-MM-DD \0\0\:\0\0\:\0\0") & "'} And glpi_tracking_0.date<{ts '" & Format$(Date2.Value, "YYYY-MM-DD \0\0\:\0\0\:\0\0") & "'})
GROUP BY .."



Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
8
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
28 septembre 2010

Au final ta requête fonctionne en rajoutant ActiveSheet devant le nom des objets (ActiveSheet.date1.Value). Tout ça pour ça..
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
4
Bonjour,

Déjà il faut faire attention que le format soit identique entre la base de données et ton champ texte.

Ensuite il faudrait voir ta requête mais pour séletionner entre 2 dates, tu peux utiliser Between et les dates en requête sql doivent être encadrées par des #

Si tu effectues une recherche sur le site tu devrais trouver la syntaxe exacte..


L'expérience, c'est une connerie par jour, mais jamais la même..
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
Déjà il faut faire attention que le format soit identique entre la base de données et ton champ texte.


Je vote contre

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
8
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
28 septembre 2010

Merci pour ta réponse rapide!

Voici la requête telle qu'elle est générée par Microsoft Query:

"SELECT ..
FROM ..
WHERE (glpi_tracking_0.date>={ts '2010-08-01 00:00:00'} And glpi_tracking_0.date<{ts '2010-09-01 00:00:00'})
GROUP BY .."

L'idée c'est de remplacer les dates en orange par une variable qu'on va chercher dans un champ de texte de la feuille excel. Si je met en dur '2010-05-01' par exemple, ça fonctionne, par contre si je saisis cette même date dans mon champ de texte (date1) et que je met date1.Value ou .Text ça ne va pas. J'ai vraiment essayé pas mal de trucs. Il y a surement qquechose à modifier ds la façon de faire référence à un objet de la feuille dans la requête mais je ne trouve pas. Ou peut être au niveau du format de date, ms ça m'étonne car ça fonctionne lorsque j'inscris la même date directement ds le code.

Je cherche toujours avant de poster, ms là j'en ai juste marre de rester bloqué tant de temps sur un truc si bidon! :/
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
"SELECT ..
FROM ..
WHERE glpi_tracking_0.date BETWEEN #" & Format$(MaVariable, "YYYY-MM-DD") & # AND #" & Format$(MaBorneMax, "YYYY-MM-DD") & "# GROUP BY .."

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
8
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
28 septembre 2010

WHERE glpi_tracking_0.date BETWEEN #" & Format$(date1.Value, "YYYY-MM-DD") & # AND #" & Format$(date2.Value, "YYYY-MM-DD") & "#

Ca me renvoie une erreur de syntaxe, j'ai creusé un peu Format mais je ne vois tjs pas. Vs voyez le souci? Je fais peut être mal référence à mes champs de texte..? Ils contiennent respectivement 2010-05-01 et 2010-05-31.

Merci en tout cas
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
glpi_tracking_0.date est bien un champs typé date ?


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
8
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
28 septembre 2010

datetime pour être exact
Messages postés
8
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
28 septembre 2010

Merci pour ton aide,

Je pense qu'on est pas loin du but ms il me fait encore une erreur de compil:

Attendu : séparateur de liste ou )

Peut être une histoire de & ou de simple quote/double quote?

Je cherche dans mon coin dis moi quoi si tu as une idée :)
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
Je ne peux répondre a ta place, c'est une erreur que TU as introduite :
? "SELECT .. FROM .. WHERE (glpi_tracking_0.date>={ts '" & Format$(now, "YYYY-MM-DD \0\0\:\0\0\:\0\0") & "'} And glpi_tracking_0.date<{ts '" & Format$(now, "YYYY-MM-DD \0\0\:\0\0\:\0\0") & "'}) GROUP BY .."


me donne bien
? "SELECT .. FROM .. WHERE (glpi_tracking_0.date>={ts '" & Format$(now, "YYYY-MM-DD \0\0\:\0\0\:\0\0") & "'} And glpi_tracking_0.date<{ts '" & Format$(now, "YYYY-MM-DD \0\0\:\0\0\:\0\0") & "'}) GROUP BY .."
SELECT .. FROM .. WHERE (glpi_tracking_0.date>={ts '2010-09-17 00:00:00'} And glpi_tracking_0.date<{ts '2010-09-17 00:00:00'}) GROUP BY ..




Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
ok ok

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp