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 :

Limiter des résultats en fonction d'une date dans un entête de formulaire


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Août 2005
    Messages : 525
    Points : 194
    Points
    194
    Par défaut Limiter des résultats en fonction d'une date dans un entête de formulaire
    Bonjour

    Ma requête suivante extrait des activités d'un planning en fonction d'un praticien et d'une date. Le critère de date se trouve dans l'en tête du formulaire, dans un champ indépendant DebutDate

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT T_Activites.User, T_CreneauActivite.DetailCreneau AS Subject, T_Activites.DateDebutActivite AS [End Date], T_Activites.DateDebutActivite AS [Start Date], 
    IIf([DetailCreneau] Like "*Matin",#12/30/1899 7:0:0#,IIf([DetailCreneau] Like "*AM",#12/30/1899 13:0:0#)) AS [Start Time], IIf([DetailCreneau] Like "*Matin",#12/30/1899 13:0:0#,
    IIf([DetailCreneau] Like "*AM",#12/30/1899 18:0:0#)) AS [End Time], "FALSE" AS Private, 
    IIf([DetailCreneau] Not Like "*Matin" And [DetailCreneau] Not Like "*AM","TRUE","FALSE") AS [All Day Event], "Hopital Haut Leveque" AS Location
    FROM T_Activites INNER JOIN T_CreneauActivite ON T_Activites.CreneauActivite = T_CreneauActivite.CreneauActivite
    WHERE (((T_Activites.User)=[Formulaires]![F_Login]![NomComplet]) AND ((T_CreneauActivite.DetailCreneau) Is Not Null) AND ((T_Activites.DateDebutActivite)>=[Formulaires]![F_PraticienActivites]![DateDepart]));
    Si je retire le critère qui fait appel à la date entrée dans le champ DateDepart, la requête fonctionne. Je fais une erreur de syntaxe ?
    Merci pour vos suggestions

  2. #2
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Avec le critère, il y message d'erreur ou simplement pas de résultat (pas données)?
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Août 2005
    Messages : 525
    Points : 194
    Points
    194
    Par défaut
    Il n'y a pas de données

  4. #4
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Donc la syntaxe est correcte, mais aucune donnée ne valide les critères donnés.
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Août 2005
    Messages : 525
    Points : 194
    Points
    194
    Par défaut
    Pourtant quand dans la requête je remplace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AND ((T_Activites.DateDebutActivite)>=[Formulaires]![F_PraticienActivites]![DateDepart]));
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AND ((T_Activites.DateDebutActivite)>=#01/04/2013#));
    la requête me trouve 5 record, mais si je rentre dans l'en tête du formulaire dans le champ [DateDepart] la date 01/04/2013, pas de résultat. J'ai essayé de désigner le champ DateDepart comme format de date puis dans la requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AND ((T_Activites.DateDebutActivite)>=Format([Formulaires]![F_PraticienActivites]![DateDepart];"dd/mm/yyy")));
    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AND ((T_Activites.DateDebutActivite)>=Cdate([Formulaires]![F_PraticienActivites]![DateDepart])));
    Aucun ne fonctionne. On dirait qu'il ne reconnait pas le champ comme une date.

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    ta variable date fait partie du texte SQL, normal si elle n'est pas reconnue.
    De plus, je dirais qu'il faudrait l'utiliser entre # :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "AND ((T_Activites.DateDebutActivite)>=#" & [Formulaires]![F_PraticienActivites]![DateDepart] & "#));"
    @+
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  7. #7
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Le formulaire en question, est-il dépendant ou non. Comment tu ouvre la requête après entrée de la date (par un bouton du formulaire ou double-clic sur la requête dans le volet navigation)?
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Août 2005
    Messages : 525
    Points : 194
    Points
    194
    Par défaut
    Le formulaire est indépendant. Le champ de date DateDepart se remplit automatiquement sur ouverture par le premier jour du mois en cours et DateFin par le dernier jour du mois en cours. La source contrôle du formulaire est basée sur la requête. J'essaye les "#". Merci pour vos suggestions.

  9. #9
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Le # n'est pas nécessaire!
    ça...
    Citation Envoyé par docjo Voir le message
    Le formulaire est indépendant.
    et
    La source contrôle du formulaire est basée sur la requête.
    sont incompatibles!!!
    Vu que...
    Le champ de date DateDepart se remplit automatiquement sur ouverture par le premier jour du mois en cours et DateFin par le dernier jour du mois en cours.
    et
    La source contrôle du formulaire est basée sur la requête.
    A l'ouverture du formulaire, la requête s'exécute AUTOMATIQUEMENT puisqu'elle trouve le champs date VIDE alors elle ne renvoie aucune donnée.
    Maintenant il faut un code VBA pour REACTUALISER la requête.
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/06/2013, 09h14
  2. Supprimer des fichiers en fonction d'une date
    Par Sh4dow49 dans le forum Administration système
    Réponses: 1
    Dernier message: 02/06/2009, 22h36
  3. choisir un prix en fonction d'une date dans un sous form
    Par Stéph utilisateur d'acces dans le forum VBA Access
    Réponses: 6
    Dernier message: 21/04/2008, 20h20
  4. Réponses: 2
    Dernier message: 25/09/2007, 20h03
  5. Afficher des résultats en fonction d'une valeur de liste
    Par subnox dans le forum VBA Access
    Réponses: 13
    Dernier message: 14/08/2007, 11h54

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