IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

calcul heure dans une requête


Sujet :

VBA Access

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    446
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2006
    Messages : 446
    Points : 89
    Points
    89
    Par défaut calcul heure dans une requête
    bonsoir,
    moi j'ai une query qui visualise les commandes effectuée par un client moi je vudrais recuperer les enregistrement à la date d jour et l'heure systeme moins 10 minute.
    pour la date du jour j'ai trouvé la solution mais comment on fais pour sortir les records qui correspond: records > H - 10 minutes.

    Merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 353
    Points : 23 819
    Points
    23 819
    Par défaut
    Tu peux utiliser Time() qui va te donner l'heure courrante ou Now() qui te donne la date et l'heure courrante.

    Un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateAdd("nn";-10;now())
    dans le critere de ta colonne date devrait faire l'affaire.

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    446
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2006
    Messages : 446
    Points : 89
    Points
    89
    Par défaut
    mais il faut que je fasse un beforeupdate?
    merci merci

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 353
    Points : 23 819
    Points
    23 819
    Par défaut
    J'ai commis une petite erreur c'est DateAdd("n";-10;now()) avec un seul n au lieu de 2.

    Il suffit que tu mettes cela dans la ligne critère de ta requête.

    Ta requête en SQL devrait avoir l'air de :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    select MaTable.* from MaTable where MaTable.MaDateHeure<=DateAdd("n";-10;now());
    qui est une requête qui donne tous les champs de MaTable et tous les enregistrements dont la date MaDateHeure est inférieure ou égale à la date et l'heure actuelle.

    BeforeUpdate c'est un événement de formulaire.

    A+

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    446
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2006
    Messages : 446
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par marot_r Voir le message
    J'ai commis une petite erreur c'est DateAdd("n";-10;now()) avec un seul n au lieu de 2.

    Il suffit que tu mettes cela dans la ligne critère de ta requête.

    Ta requête en SQL devrait avoir l'air de :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    select MaTable.* from MaTable where MaTable.MaDateHeure<=DateAdd("n";-10;now());
    qui est une requête qui donne tous les champs de MaTable et tous les enregistrements dont la date MaDateHeure est inférieure ou égale à la date et l'heure actuelle.

    BeforeUpdate c'est un événement de formulaire.

    A+

    moi j'ai fais ça mais il me dit qu'il y a un erreur dans l'ecriture il manque une paranthese mais je sais pas où

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Uscita_bar.ID_Art, Uscita_bar.Dataconsumazione, Uscita_bar.OraConsumazione, Uscita_bar.Quantità, Uscita_bar.IDContatto FROM Uscita_bar WHERE ((Uscita_bar.Dataconsumazione)=Date() and Uscite_bar.Oraconsumazione=<=DateAdd("n";-10;now())) ORDER BY Uscita_bar.Oraconsumazione DESC , uscita_bar.dataconsumazione DESC;

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 353
    Points : 23 819
    Points
    23 819
    Par défaut
    Désolé je me suis encore trompé dans la syntaxe.

    Je verrifierai avec Access avant de poster mon SQL au lieu de travailler de mémoire.

    Si tu écrit directement en SQL il faut remplacer les ; par des , dans DateAdd("n",-10,now())) . Ta requête doit être correct comme cela :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Uscita_bar.ID_Art, Uscita_bar.Dataconsumazione, Uscita_bar.OraConsumazione, Uscita_bar.Quantità, Uscita_bar.IDContatto FROM Uscita_bar WHERE ((Uscita_bar.Dataconsumazione)=Date() and Uscite_bar.Oraconsumazione=<=DateAdd("n",-10,now())) ORDER BY Uscita_bar.Oraconsumazione DESC , uscita_bar.dataconsumazione DESC;

    A+

  7. #7
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    446
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2006
    Messages : 446
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Désolé je me suis encore trompé dans la syntaxe.

    Je verrifierai avec Access avant de poster mon SQL au lieu de travailler de mémoire.

    Si tu écrit directement en SQL il faut remplacer les ; par des , dans DateAdd("n",-10,now())) . Ta requête doit être correct comme cela :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Uscita_bar.ID_Art, Uscita_bar.Dataconsumazione, Uscita_bar.OraConsumazione, Uscita_bar.Quantità, Uscita_bar.IDContatto FROM Uscita_bar WHERE ((Uscita_bar.Dataconsumazione)=Date() and Uscite_bar.Oraconsumazione=<=DateAdd("n",-10,now())) ORDER BY Uscita_bar.Oraconsumazione DESC , uscita_bar.dataconsumazione DESC;

    A+
    il y a un probleme, la query marche mais le problme est qui ne marche plus le bouton que j'ai cree pour visualiser les commandes dans le sous formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub salva_comanda_Click()
    On Error GoTo Err_salva_comanda_Click
     
        DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
        CurrentDb.Execute "insert into Uscita_bar(ID_Art,Dataconsumazione,OraConsumazione,Quantità,IDContatto) values('" & Me.ID_Art & "','" & Me.DataConsumazione & "', '" & Me.OraConsumazione & "', " & Me.Quantità & ", '" & Me.IDContatto & "') "
        CurrentDb.Execute "insert into uscite select * from uscita_bar"
        Me!Uscita_bar1.Form.Requery
    Exit_salva_comanda_Click:
        Exit Sub
    Err_salva_comanda_Click:
        MsgBox Err.Description
        Resume Exit_salva_comanda_Click
     
    End Sub

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 353
    Points : 23 819
    Points
    23 819
    Par défaut
    Les données sont-elles bien insérées dans la table Uscita_bar même si tu ne les vous pas à l'écran ?

    Ajoutes-tu une date et une heure dans ta table Uscita_bar ?

    Si oui, est-ce la date et l'heure courante ?

    Si oui, ta requête n'affichant plus que les dates et heures <= Now()-10 il est normal que ta nouvelle entrée n'apparaisse pas.

    A+

  9. #9
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    446
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2006
    Messages : 446
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Les données sont-elles bien insérées dans la table Uscita_bar même si tu ne les vous pas à l'écran ?

    Ajoutes-tu une date et une heure dans ta table Uscita_bar ?

    Si oui, est-ce la date et l'heure courante ?

    Si oui, ta requête n'affichant plus que les dates et heures <= Now()-10 il est normal que ta nouvelle entrée n'apparaisse pas.

    A+
    le probleme vien de l'heure parce que avec la date tout marche bien...

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 353
    Points : 23 819
    Points
    23 819
    Par défaut
    Désolé mais je ne comprends pas ta réponse.

    Ton champ qui sert de critère contient-il la date et l'heure ou seulement la date ?

    A+

  11. #11
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    446
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2006
    Messages : 446
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Désolé mais je ne comprends pas ta réponse.

    Ton champ qui sert de critère contient-il la date et l'heure ou seulement la date ?

    A+

    il y a un champ qui contient la date et un qui contien l'heure.

  12. #12
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 353
    Points : 23 819
    Points
    23 819
    Par défaut
    OK alors tu peux soit combiner tes 2 champs pour avoir la date et l'heure soit changer ton test pour tester seulement l'heure. Si tu n'as pas des demandes aux alentours de minuit, c'est cette dernière option qui est la plus simple.

    Pour combiner Date et Heure en un seule champ tu peux procéder de façon semblable cela :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    DateSerial(Year([ChampDate] ,month([ChampDate]), day([ChampDate])) + TimeSerial(hour([ChampHeure]), minute([ChampHeure]), seconde([ChampHeure])) as CHampDateHeure

    Pour Tester seulement sur l'heure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateAdd("n",-10,time())
    qui va prendre l'heure courrante moins 10 minutes.

    Attention si tu es à moins de 10mn de minuit (Timeserial(0,0,0)) cela donne un résultat abérant.

    A+

Discussions similaires

  1. Calcul d'heure dans une requête
    Par Antichoc dans le forum SQLite
    Réponses: 2
    Dernier message: 26/07/2011, 22h35
  2. [AC-2003] calculs spécifiques dans une requète
    Par jerem2007 dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 15/05/2009, 23h45
  3. Comparer date/heure dans une requête SQL
    Par ach152 dans le forum Débuter
    Réponses: 9
    Dernier message: 13/07/2008, 14h24
  4. Calcul heure dans une requête
    Par Accessbeotien dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 07/09/2007, 10h12
  5. Calculs complexes dans une requête
    Par ARRG dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/06/2005, 19h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo