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

Requêtes et SQL. Discussion :

SQL critère heure + 2 heures ?


Sujet :

Requêtes et SQL.

  1. #1
    Membre actif Avatar de samlepiratepaddy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 320
    Points : 217
    Points
    217
    Par défaut SQL critère heure + 2 heures ?
    Slt,
    Mon problème est le suivant !
    J'ai dans ma T_RendezVous
    un champ Date (format Date, abrégé, masque saisie 00/00/00;0; )
    Un champ Heure (Format Heure, abrégé, masque saisie 00:00;0;_)

    Je veux batir une requete qui retrace les enregistrements correspondant à un date récupérée dans le formulaire qui sont entre l'heure correspondante a cette enregistrement les deux heures suivantes !

    Mon problème est que j'ai chercher via une requte avec l'interface sur le champ heure mais surprise, quand je le transforme l'heure en jour d'avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format$([T_RendezVous].[HeureRendezVous],'Long Date')
    Samedi 30 Décembre 1899
    Hargthhhhhhhhh!
    Comment vais-je faire pour faire comprendre a cette requete que je veux les enregistrements du jour de la DateRendezVous qui sont Entre HeureRendezVous et HeureRendezVous +2 !!!!
    La date ne correspond pas !
    Je comprend pourquoi car en fait quand on rentre une heure ce n'est en fait qu'une date,complet qui est filtrée ou plutot masquée et on note juste l'heure !
    Donc tous les enregsitrements fait de cette façon ont en réalité Samedi 30 Décembre 1899 comme date !
    Aurai t-il fallut que je note une date complète dans ma table pour retrouver :
    01/10/2005;10:00:00 et enfin pouvoir faire en critère requete, un truc du genre :
    =DateComplèteRendezVous + 0,08333 (qui est l'équivalence de 2 heures! (1jour/24heures*2))
    Trou noir !
    Ou alors comment batir ma requete avec ce que j'ai actuellement, parce que je vois vraiment pas comment faire ??!!??
    Merci d'avance

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Regarde du coté de la fonction DateAdd

  3. #3
    Membre actif Avatar de samlepiratepaddy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 320
    Points : 217
    Points
    217
    Par défaut
    Houp's
    je passe par VBA car avec l'interface des requetes ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub HeureRendezVous_AfterUpdate()
    If DateAnd("hh", 1, [HeureRendezVous])Then
    MsgBox "ATTENTION il y a déja un rdv dans l'heure qui suit !"
    End If
    End Sub
    Mais le souci :
    Elle ne me montre pas le msg !
    Ps: j'ai un enregistrement test prévu pour cela !
    HeureRendezVous = 10:00:00
    HeureRendezVous = 11:00:00
    Et il faut arriver a lui faire comprendre que c'est sur le jour saisi dans le formulaire qu'il faut qu'il fasse sa requete !
    d'ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub HeureRendezVous_AfterUpdate()
    Dim SqlHeure As Integer
    If (SqlHeure = "SELECT T_RendezVous.DateRendezVous T_RendezVous.HeureRendezVous Where (DateAnd("hh", 1, [HeureRendezVous]))") then
    MsgBox "ATTENTION il y a déja un rdv dans l'heure qui suit !"
    End If
    End Sub
    Mais la syntaxe est peut etre une horreur mais je ne vois pas comment la réctifier ???
    ça coince a ("hh", du DateAnd??? demande de : ou ) ??
    Haiaiaiaiai, quand on connait pas VBA on rame !!
    Le pire c'est qu'il faudra aussi pour avant l'heure !!
    Quelqu'un a une idée de ce qui cloche?
    Merci

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 371
    Points : 19 777
    Points
    19 777
    Billets dans le blog
    65
    Par défaut
    Salut,

    il te faut créer 1 recordset, dans le style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub HeureRendezVous_AfterUpdate() 
    Dim SqlHeure As String
    Dim rs As DAO.RecordSet 
     
    SqlHeure = "Select * From T_RendezVous Where Salarié=" & Chr(34) & Me!Salarié & Chr(34) & " And [DateRendezVous]=" & FDate(Me!Jour) & " And [HeureRendezVous] <= " & Chr(35) & Me!HeureRendezVous & Chr(35) & " And DateAdd("h",2,[HeureRendezVous])  > " & Chr(35) & Me!HeureRendezVous & Chr(35)
     
    set rs=CurrentDb.OpenRecordset(sql1, dbOpenSnapshot)
     
    If Not(rs.eof) then  's'il y a 1 rdv entre l'heure choisi et  +2 alors 
    MsgBox "ATTENTION il y a déja un rdv dans l'heure qui suit !" 
    End If 
     
    rs.Close
     
    End Sub
    ou FDate formate la date:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function FDate(p As Date) As String
    FDate = Chr(35) & Format(p, "m-d-yy") & Chr(35)  ' Date us 
    End Function
    Tu peux aussi utiliser la fonction DLookup à voir dans l'aide Access.

    N'hésite pas à me recontacter !


  5. #5
    Membre actif Avatar de samlepiratepaddy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 320
    Points : 217
    Points
    217
    Par défaut
    Slt user

    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub HeureRendezVous_AfterUpdate()
    Dim SqlHeure As String
    Dim rs As DAO.Recordset
     
    SqlHeure = "Select * From T_RendezVous Where T_RendezVous.IdSalariéPrévuPour=" & Chr(34) & Me!IdSalariéPrévuPour & Chr(34) & " And [DateRendezVous]=" & T_RendezVous.DateRendezVous(Me!DateRendezVous) & " And [HeureRendezVous] <= " & Chr(35) & Me!HeureRendezVous & Chr(35) & " And DateAdd("h",2,[HeureRendezVous])  > " & Chr(35) & Me!HeureRendezVous & Chr(35)
     
    Set rs = CurrentDb.OpenRecordset(sql1, dbOpenSnapshot)
     
    If Not (rs.EOF) Then 's'il y a 1 rdv entre l'heure choisi et  +2 alors
    MsgBox "ATTENTION il y a déja un rdv dans l'heure qui suit !"
    End If
     
    rs.Close
     
    End Sub
    Mais j'ai toujours a la construction
    Attendu fin d'instruction
    au
    ("h",2,...)
    puis a l'execution
    Erreur de syntaxe
    vu ce que tu m'a pondu je rame durdur !!
    t'as une idée???

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    daterendezvous +(2/24)

  7. #7
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    De mémoire, il me semble que dans une clause where, les dates doivent être au format mm/dd/yyyy

Discussions similaires

  1. [Sql Server 2k5] problème heure au format 12h
    Par sdisp+ dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/08/2008, 15h47
  2. [SQL] Comment recupérer l'heure de ma date
    Par marvelromy dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 15/01/2008, 15h25
  3. [Pl/Sql] Trigger et date, heure system
    Par brigadier dans le forum Oracle
    Réponses: 7
    Dernier message: 03/08/2006, 12h34
  4. Critère sur l'heure pour Sql
    Par samlepiratepaddy dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 30/11/2005, 15h33
  5. PL/SQL TYPE DE DONNEES HEURE
    Par mimi_été dans le forum PL/SQL
    Réponses: 3
    Dernier message: 18/10/2004, 16h33

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