|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : mai 2010 Messages : 14 ![]() |
Bonjour,
je cherche une méthode pour filtrer les données d'une table via une requête avec un critère de date et heure (format mm/jj/aaaa hh:nn:ss) provenant d'un formulaire. je pense que mon problème vient du fait de concaténer un champ date et un champ heure. la solution pourrait être de filtrer sur la date et l'heure séparément, vu que dans ma table ces données sont indépendantes, mais la je sèche. merci pour votre aide. |
|
|
00
|
|
|
#2 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 470 ![]() |
Critère date :
DateSerial(Year([forms]![NomTonForm]![nomTonChamp]); Month([forms]![NomTonForm]![nomTonChamp]); Day([forms]![NomTonForm]![nomTonChamp])) Critère heure : TimeSerial(Hour([forms]![NomTonForm]![nomTonChamp]); Minute([forms]![NomTonForm]![nomTonChamp]); Second([forms]![NomTonForm]![nomTonChamp])) Tu peux aussi regarder DatePart() mais, personnellement, je préfère DateSerial() et TimeSerial(). Note : Access va traduire le nom des fonctions en français. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : mai 2010 Messages : 14 ![]() |
En fait, pour exposer un peu plus précisément mon problème, j'importe des données depuis un fichier "csv" dans une table temporaire. dans cette table tous les champs sont au format texte et le but de la manip est de filtrer les données les plus récentes de manière à les ajouter dans la table définitive sans importer de doublon. c'est la que ça se gâte, je n'arrive pas à sélectionner les dates et heures qui m'intéresse.
|
|
|
00
|
|
|
#4 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 470 ![]() |
Ok donc ma solution ne marchera pas car elle suppose que tu as des champs de type date.
Tu peux alors utliser la fonction Format() qui te permet de formater des dates. Pour le critère date je mettrai par exemple si ta date dans ton fichier CSV est au format AAAA-MM-JJ : Format([forms]![NomTonForm]![nomTonChamp],"aaaa\-mm\-jj") et pour l'heure Format([forms]![NomTonForm]![nomTonChamp],"hh:nn:ss") Note que Mid(), Left(), Right() sont aussi très utiles pour manipuler des chaîens de caractères. Les fonction CDate(), CDbl(), Clng() et autres fonctions C... te permettent de convertir tes données de texte à autre chose. A+ A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#5 | ||
|
Invité régulier
![]() Inscription : mai 2010 Messages : 14 ![]() |
J'ai testé la requête sélection suivante:
Code sql :
tba_TmpAl est la table temporaire dans laquelle j'ai importé mon fichier CSV. A l'exécution de ma requête, j'ai le message d'erreur suivant: Cette expression présente une syntaxe incorrecte, ou est trop complexe pour être évaluée. Par exemple, une expression numérique peut contenir des éléments trop compliqués. Essayez de la simplifier en en affectant des parties à des variables. (Erreur 3071) Dès que j'utilise la fonction CDATE, j'ai ce message Merci pour votre aide |
||
|
|
00
|
|
|
#6 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 470 ![]() |
Je t'ai suggéré d'utilser Format() sur ta date de paramêtre, ça donne quoi ?
Le problème de CDate c'est que tu ne peux pas spécifier le format de la date de départ donc c'est assez hazardeux. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : mai 2010 Messages : 14 ![]() |
Cela n'a rien changé
le problème ne vient pas du critère mais du format du champ dans ma table qui est en texte Dès que je le passe en Date/Heure, tout fonctionne bien sauf que lors de l'importation du fichier CSV la première ligne n'est pas prise en compte vu qu'elle est au format texte et qu'elle contient le nom de la table ou les données vont être ajoutées. Je pense que la solution sera de lire la première ligne du CSV de manière à récupérer le nom de la table puis de procéder à l'importation des données et la mise à jour de la table. Merci pour ton aide @+ |
|
|
00
|
|
|
#8 | ||
|
Invité régulier
![]() Inscription : mai 2010 Messages : 14 ![]() |
Voici ma requête finalisée
Code :
Encore merci pour ton aide
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com