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 :

Pbs de date nulle dans une requête ACCESS


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 117
    Points : 44
    Points
    44
    Par défaut Pbs de date nulle dans une requête ACCESS
    Bonjour,

    Dans une table j'ai deux champs texte représentant des dates.
    Ils sont de la forme ddmmyyyy.
    Un de ces deux champs peut être null.
    Dans ma requête j'ai besoin de faire des critères sur chacun de ces champs.
    Appelons ces 2 champs Date1 et Date2 (Date2 pouvant être null).
    Voici mes 2 lignes de critère:
    Date1<DateFin (paramètre) et Date2 Null
    ou
    Date1<DateFin (paramètre) et Date2 > DateDeb (paramètre)

    Pour transformer mes champs Date1 et Date2 en format Date, j'utilise cette expression :

    Expr1: ValDate(Gauche([Date1];2) & "/" & ExtracChaîne([Date1];3;2) & "/" & Droite([Date1];2))

    Jusqu'ici tout va bien.
    Le problème vient du fait de poser un critère sur Date2 (celui pouvant être null).Si j'affiche seulement, tout se passe correctement.
    Si je pose un critère sur ce champ Date2, il me vient l'erreur : "'Cette expression présente une syntaxe incorrecte, ou est trop complexe pour être évaluée...."

    Je trouve cela très bizarre puisque cela fonctionne avec Date1.

    Please aidez moi c'est urgent !!

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 349
    Points : 23 813
    Points
    23 813
    Par défaut
    Oui, les null dans Access c'est toujours un peu la galère. N'importe quoi et null ça devrait donner Null mais c'est souvent imprévisible.

    Je pare le problème en testant explicitement si j'ai un null grace à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    iif(not(isNull([MaDate])), Faire quelque chose quand pas null, faire quelque chose quand null)
    Ca allourdi mes expression mais je n'ai plus de surprise.

    Quand cela devient trop illisible à cause des iif() imbriqués, je fais une fonction public VBA avec des paramètres 'Variant', que j'appele de ma requète.

    A+

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2003
    Messages : 55
    Points : 40
    Points
    40
    Par défaut
    bonsoir,

    déjà, tu dis que ta date est saisi au format ddmmyyyy et tu n'extrais que les 2 derniers chiffres de l'année :

    d'autre part, il existe la fonction SerialDate (DateSerial en anglais) qui répond mieux à ton besoin puisqu'elle fait tout en même temps, la création de la date et la conversion en type Date/Heure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Expr1: SerialDate(Droite([Date1];4);ExtracChaîne([Date1];3;2);Gauche([Date1];2))
    pour ce qui est du cas ou Date2 est Null, tout à fait d'accord avec marot_r, le code suivant peut-être une bonne solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VraiFaux(EstNull([Date2]);Null;SerialDate(Droite([Date2];4);ExtracChaîne([Date2];3;2);Gauche([Date2];2)))
    essaie avec çà et donne des nouvelles, à bientôt,

    gunico.

Discussions similaires

  1. Problème format date dans une requête access
    Par helprojet dans le forum VBA Access
    Réponses: 3
    Dernier message: 27/02/2009, 03h09
  2. Compter les Dates différentes dans une requête Access
    Par maxireus dans le forum Modélisation
    Réponses: 2
    Dernier message: 11/05/2007, 00h02
  3. Réponses: 7
    Dernier message: 18/05/2005, 15h09
  4. Date nulle dans une requete paramétrée avec TParameter
    Par denrette dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/06/2004, 08h37
  5. recherche Date nulle dans une table
    Par lol_adele dans le forum Bases de données
    Réponses: 6
    Dernier message: 16/04/2004, 14h06

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