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 :

Comparaison de date dans requete. [AC-2010]


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 62
    Points : 39
    Points
    39
    Par défaut Comparaison de date dans requete.
    Bonjour,

    J'ai une petite appli dans laquelle je souhaite comparait deux dates,
    malheureusement je suis un peu nul sur le traitement des dates.
    Ceci pour eviter les doublons puisque l'utilisateur ne peut saisir qu'un élément par jour.
    il ne peut pas y avoir deux enregistrements pour le même jour.
    J'ai donc établie une requête pour vérifier l'existence de doublon en terme de date et cela ne marche pas.

    Dans cette requête appelée "sql_doublon" je regarde si dans ma table T_timming j'ai déjà un enregistrement ou pas.
    La dernière condition n'est pris e en compte et je ne sais pas pourquoi ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sql_doublon = " select * from T_timming" _
                           & " where num_section = " & Me!num_section _
                           & " and date = " & Me!date

  2. #2
    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,

    Il faut utiliser les identificateurs de date # et le format date US, donc on devrait avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sql_doublon = " select * from T_timming" _
    & " where num_section = " & Me!num_section _
    & " and date =# " & Format(Me!date,'yyyy/mm/dd') & "#"
    Cordialement,
    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

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 62
    Points : 39
    Points
    39
    Par défaut
    bonjour

    merci pour le tuyau ça marche même sans le format américain ???
    Voici mon code maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sql_doublon = " select * from T_timming" _
                           & " where num_section = " & Me!num_section _
                           & " and date = # " & Me!date & "#"
    Seul petit problème cela semble fonctionner correctement sauf pour la date d'aujourd'hui le 02/03/2015.
    pour une date avant ou après celle ci c'est bon mais pas le 02 mars ????????????

  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 un index unique sur num_section et date
    Salut
    Je pense qu'un INDEX UNIQUE sur num_section et date fera mieux l'affaire qu'autre chose.
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  5. #5
    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
    Re-,

    Seul petit problème cela semble fonctionner correctement sauf pour la date d'aujourd'hui le 02/03/2015.
    C'est pour éviter cela que je proposais de mettre le format américain :
    Cela enlève toute ambiguïté sur la date.
    De plus, j'aime pas trop ton champ "date" dans la requête. J'espère que c'est uniquement pour illustration mais non pas dans ton application.

    La proposition de alassanediakite n'est pas mauvaise en soi . A méditer...

    Cordialement,
    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

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 62
    Points : 39
    Points
    39
    Par défaut
    Salut

    je comprends pas trop comment un index unique resoudrait mon problème ???
    je suis contraint de tester ces deux conditions simultanément.
    cela marche très bien sauf pour la date d'aujourd'hui ???

    encore merci pour l'aide

  7. #7
    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
    Re-,

    Un index unique sur les 2 champs voudrait dire que tu ne peux avoir les mêmes valeurs dans la combinaison de ces 2 champs.
    Si tu as déjà num_section = 1 et date = 2/2/15, la nouvelle saisie de ces mêmes valeurs va être refusée par Access.
    Tu peux par contre saisir num_section = 1 et date = 3/2/15.

    Le fait que le code ne lève pas le doublon pour la date d'aujourd'hui est par contre étonnant. Je dirais que c'est parce que tu utilises "Date" comme nom de champ et ça doit causer problème.

    Cordialement,
    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

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 62
    Points : 39
    Points
    39
    Par défaut
    désolé je suis un peu lent................
    tu as raison c'est ok avec évidemment le format américain.
    seule particularité j'ai du mettre le format entre double cote comme ci dessous et ça marche parfaitement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sql_doublon = " select * from T_timming" _
                           & " where num_section = " & Me!num_section _
                           & " and date = # " & Format(Me!date, "yyyy/mm/dd") & "#"
    encore merci

  9. #9
    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
    OK, c'était possible que ça pouvait faire la différence selon l'endroit où on insérait le code SQL.
    Si c'est bon, mets le topic en RESOLU pour que les autres membres ne se perdent pas trop dans nos échanges.

    Cordialement,
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comparaisons de dates dans un SELECT
    Par lodan dans le forum Requêtes
    Réponses: 4
    Dernier message: 06/10/2006, 14h26
  2. comparer date dans requete
    Par lazzeroni dans le forum Oracle
    Réponses: 1
    Dernier message: 23/05/2006, 15h55
  3. Pb critère date dans requete
    Par STANDBOY dans le forum Access
    Réponses: 1
    Dernier message: 27/03/2006, 19h13
  4. [XE] Comparaison de dates dans un Trigger
    Par Nicodemus dans le forum Oracle
    Réponses: 2
    Dernier message: 20/02/2006, 16h37
  5. [INSERTION DATE] dans requete d'insertion et mysql
    Par vincedjs dans le forum Requêtes
    Réponses: 9
    Dernier message: 03/02/2006, 17h11

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