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

Langage SQL Discussion :

Requête sur dates ASP-ACCESS


Sujet :

Langage SQL

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 2
    Par défaut Requête sur dates ASP-ACCESS
    Bonjour,

    J'ai cherché, sans succès, une solution à mon problème :

    Je développe en ASP/IIS

    J'ai une base Access contenant des évènements de toutes sortes. chaque évènement a une date de début et une date de fin.

    Je dois afficher la liste des évènement qui ont lieu aujourd'hui ou/et demain.

    Les champs dte (date de début) et dte_fin sont au format date jj/mm/aaaa

    Voici ma requête telle qu'elle s'affiche avec un response.write :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT *
      from ARTICLES
     where (  (ARTICLES.dte>=#09/06/2011# or (ARTICLES.dte<=#09/06/2011# and ARTICLES.dte_fin>=#09/06/2011#))
           or (ARTICLES.dte =#10/06/2011# or (ARTICLES.dte<=#10/06/2011# and ARTICLES.dte_fin>=#10/06/2011#)))
       and ARTICLES.categorie=1
     order by ordre;

    et voici ma requête codée :
    Code ASP : Sélectionner tout - Visualiser dans une fenêtre à part
    req="SELECT * from ARTICLES where ((ARTICLES.dte>=#"&date&"# or (ARTICLES.dte<=#"&date&"# and ARTICLES.dte_fin>=#"&date&"#)) or (ARTICLES.dte=#"&dateAdd("d",date,1)&"# or (ARTICLES.dte<=#"&dateAdd("d",date,1)&"# and ARTICLES.dte_fin>=#"&dateAdd("d",date,1)&"#))) and ARTICLES.categorie="&cat&" order by ordre;"

    Je n'ai pas d'erreur, le code ne plante pas, mais le filtre par date ne fonctionne pas, tous les évènements s'affichent.
    Après avoir retourné ça dans tous les sens, je fais appel à vos éclairages.

    Merci d'avance.

  2. #2
    Membre chevronné Avatar de tumoo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 309
    Par défaut
    Salut

    essaye comme ça :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    WHERE (  
        (ARTICLES.dte<='09/06/2011' AND ARTICLES.dte_fin>='10/06/2011') 
    OR(ARTICLES.dte<='09/06/2011' AND ARTICLES.dte_fin='09/06/2011')
    OR(ARTICLES.dte='10/06/2011' AND ARTICLES.dte_fin>='10/06/2011')
    )

    là j'ai bien les événements qui commencent avant aujourd'hui et se terminent après demain,
    les événements qui commencent avant aujourd'hui et se terminent aujourd’hui et
    événements qui commencent demain et se terminent après demain

    je pense que tous les cas sont couverts

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 2
    Par défaut
    Merci pour la réponse rapide.

    ...mais ton code ne fonctionne pas.
    1- les dates doivent être encadrées de # sinon erreur de type
    2- le code corrigé ne retourne rien
    3- pire, en simplifiant au maximum, la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * from ARTICLES WHERE ( ARTICLES.dte>=#09/06/2011#)
    me retourne :

    Due partite( du 05/11/2011 au 30/06/2011 )
    Résidence de la compagnie Arnica( du 05/11/2011 au 30/06/2011 )
    alors qu'il y a un tas d'autres évènements entre le 9/06 et le 5/11.

    J'AI REMARQUE que seuls les évènements dont le mois est supérieur à 9 sont retournés par la requête !!!

    La, je ne saisis pas tout...

  4. #4
    Membre chevronné Avatar de tumoo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 309
    Par défaut
    Citation Envoyé par fatbulle Voir le message
    1- les dates doivent être encadrées de # sinon erreur de type
    2- le code corrigé ne retourne rien
    3- pire, en simplifiant au maximum, la requete

    SELECT * from ARTICLES WHERE ( ARTICLES.dte>=#09/06/2011#)

    me retourne :

    Due partite( du 05/11/2011 au 30/06/2011 )
    Résidence de la compagnie Arnica( du 05/11/2011 au 30/06/2011 )


    alors qu'il y a un tas d'autres évènements entre le 9/06 et le 5/11.

    J'AI REMARQUE que seuls les évènements dont le mois est supérieur à 9 sont retournés par la requête !!!

    La, je ne saisi pas tout...
    ah. bah ça doit être un problème de format de date alors car Access a l'air d’interpréter ta date comme étant au mois de septembre (09/06/2011)
    Essaye de voir les formats de date de Access, ça corrigera beaucoup de problèmes je pense

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Par défaut
    Bonjour,
    ma proposition Tu te crée une fois pour toute un fonction de conversion de date en SQL comme celle ci que j'ai écrite il y a des années. pour envoyer la date au bon format au SGBD.
    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
    '*****************************************************
    ' But:  Formate un variant contenant une Date dans le format de date du SGBD 
    '           yyyy-mm-dd
    ' Parametres: vTheDate variant représentant une date ou null
    'Modifier cette fonction lors d'un changement de SGBD 
    '*****************************************************
    Public Function f_Datev2SGBD_S(ByVal vTheDate As Variant)
    Dim sRetour As String
    If IsNull(vTheDate) Then
        sRetour = " NULL "
    Else
        sRetour = Format$(vTheDate , "yyyy-mm-dd")
    End If
    f_Datev2SGBD_S = sRetour
    End Function
    Tu peux aller sur ce post pour plus de détail
    http://www.developpez.net/forums/d78...iversel-dates/
    Edit: J'espère que tes dates sont bien stocké dans ta base de données comme étant des dates? et pas du texte:
    champs dte (date de début) et dte_fin sont au format date jj/mm/aaaa
    Si la colonne dte est bien de type date, alors dans ACCESS uniquement son format indique comment elle est affichée, mais hors d'access cela n'a pas de sens!
    A+
    Soazig

Discussions similaires

  1. [sql server] requête sur dates et heures (format du résultat
    Par isachat666 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 21/02/2006, 13h48
  2. Requète sur dates compliquée ...
    Par itklif2 dans le forum Requêtes
    Réponses: 7
    Dernier message: 28/11/2005, 23h31
  3. Problème de lien sur date entre Access et MySQL-4.1
    Par michou42 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 04/04/2005, 23h31
  4. [ADO] Requète sur dates
    Par cdlr27 dans le forum Bases de données
    Réponses: 3
    Dernier message: 26/01/2005, 22h39
  5. Requête sur date
    Par guenfood dans le forum Access
    Réponses: 11
    Dernier message: 08/12/2004, 16h11

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