Comparaison de date avec MySQL [Résolu]

dth0
Messages postés
8
Date d'inscription
jeudi 8 janvier 2009
Dernière intervention
28 septembre 2010
- 17 sept. 2010 à 09:52 - Dernière réponse : Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 20 sept. 2010 à 16:20
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
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 17 sept. 2010 à 15:59
3
Merci
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

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de Renfield
Meilleure réponse
dth0
Messages postés
8
Date d'inscription
jeudi 8 janvier 2009
Dernière intervention
28 septembre 2010
- 20 sept. 2010 à 16:04
3
Merci
Au final ta requête fonctionne en rajoutant ActiveSheet devant le nom des objets (ActiveSheet.date1.Value). Tout ça pour ça..

Merci dth0 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de dth0
lolokun
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Dernière intervention
27 août 2013
- 17 sept. 2010 à 10:31
0
Merci
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..
Commenter la réponse de lolokun
Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 17 sept. 2010 à 10:39
0
Merci
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
Commenter la réponse de Renfield
dth0
Messages postés
8
Date d'inscription
jeudi 8 janvier 2009
Dernière intervention
28 septembre 2010
- 17 sept. 2010 à 11:12
0
Merci
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! :/
Commenter la réponse de dth0
Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 17 sept. 2010 à 11:19
0
Merci
"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
Commenter la réponse de Renfield
dth0
Messages postés
8
Date d'inscription
jeudi 8 janvier 2009
Dernière intervention
28 septembre 2010
- 17 sept. 2010 à 12:29
0
Merci
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
Commenter la réponse de dth0
Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 17 sept. 2010 à 13:57
0
Merci
glpi_tracking_0.date est bien un champs typé date ?


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
dth0
Messages postés
8
Date d'inscription
jeudi 8 janvier 2009
Dernière intervention
28 septembre 2010
- 17 sept. 2010 à 14:12
0
Merci
datetime pour être exact
Commenter la réponse de dth0
dth0
Messages postés
8
Date d'inscription
jeudi 8 janvier 2009
Dernière intervention
28 septembre 2010
- 17 sept. 2010 à 16:49
0
Merci
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 :)
Commenter la réponse de dth0
Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 17 sept. 2010 à 16:54
0
Merci
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
Commenter la réponse de Renfield
Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 20 sept. 2010 à 16:20
0
Merci
ok ok

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.