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 :

Type de données incompatible dans l'expression du critère


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2015
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Type de données incompatible dans l'expression du critère
    Erreur access.docx
    Bonjour,
    Je vous transmets ci-joint une erreur sur Access,

    Est-ce que vous pourriez m'aider à la résoudre?
    cordialement

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour

    Il est assez fréquent d'avoir des problèmes avec les dates dans Access et VBA. La cause en est que tous les pays n'ont pas la même façon de les encoder. Pour le cas présent, je vous propose d'utiliser cette formulation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dDate: CDate(Gauche([AAMMJJ_XX];4) & "-" & ExtracChaîne([AAMMJJ_XX];5;2) & "-" & Droite([AAMMJJ_XX];2))
    qui présente la date sous une forme "aaaa-mm-jj", laquelle cause beaucoup moins de problèmes.

    Cordialement.

  3. #3
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonsoir,
    je pense plutôt que la conversion peut générer des dates fausses ou nulles dans ce cas il y a #Erreur à la place, du coup le critère ne peut pas fonctionner et renvoie l'erreur
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    pour vérifier si toutes les dates sont correctes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       Champ: Expr2:EstDate((Gauche([AAMMJJ_XX];4) & "/" & ExtracChaîne([AAMMJJ_XX];5;2) & "/" & Droite([AAMMJJ_XX];2)))
    Critères: Vrai
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    C'est à la limite du bug ce problème ...
    j'ai pu en détecter l'origine: l'erreur apparait si il existe au moins une date invalide ou nulle lorsque on met le critère <AjDate("j";-365;Date()) sous une date construite et cela même si la requête est utilisée en sélectionnant les dates valides dans une requête nommée (enregistrée sous un nom) dans une autre requête...

    Il faut donc au préalable détecter toutes les dates incorrectes, les corriger dans la table, ensuite mettre le critère.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  6. #6
    Candidat au Club
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2015
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    Je vous remercie pour votre réponse; lorsque je renseigne la fonction Expr2:EstDate((Gauche([AAMMJJ_XX];4) & "/" & ExtracChaîne([AAMMJJ_XX];5;2) & "/" & Droite([AAMMJJ_XX];2))), le résultat est -1 sur toute la colonnes.
    Ensuite quelque soit le critère que je renseigne dans la fonction CDate(Gauche([AAMMJJ_XX];4) & "-" & ExtracChaîne([AAMMJJ_XX];5;2) & "-" & Droite([AAMMJJ_XX];2)), le message d'erreur s'affiche.

    Merci encore pour votre aide,
    Cordialement

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    c'est bizarre, d'avoir l'erreur si toutes les dates sont valides
    y a-t-il beaucoup d'enregistrements ?

    Sinon, dernière solution: enregistrer le résultat de la requête dans un nouvelle table en transformant la requête sélection en requête création de table, puis mettre le critère dans une nouvelle requête avec cette nouvelle table ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

Discussions similaires

  1. Requête: type de donnée incompatible dans l'expression du critère
    Par abambad dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 31/10/2007, 15h48
  2. Réponses: 5
    Dernier message: 31/08/2007, 13h01
  3. Réponses: 8
    Dernier message: 20/06/2007, 14h38
  4. Réponses: 7
    Dernier message: 22/08/2006, 17h10
  5. Réponses: 3
    Dernier message: 22/05/2006, 19h23

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