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 :

Erreur d'exécution - Type de données incompatible dans l'expression du critère [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Homme Profil pro
    Manager de projets
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Manager de projets
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Erreur d'exécution - Type de données incompatible dans l'expression du critère
    Bonjour à tous,

    Je viens de récupérer l'administration d'une base de données Access ayant pour objectif de générer des reportings. N'ayant pas créé la base, ni écrit les codes, je suis un peu perdu, surtout qu'une erreur d'exécution survient.

    Lorsque j'exécute un module, le message d'erreur "Erreur d'exécution '-2147217913 (80040e07)' - Type de données incompatible dans l'expression du critère" apparaît. Voici le code où l'erreur se produit:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Private Sub calcul_NbFournisseurs(objMyDB As ADODB.Connection, mois As String)
    Dim rsData As ADODB.Recordset
    Dim strSQL As String
    Dim leSecteur As String
    Dim nbFournisseurs As Double
    
    strSQL = "SELECT c.nomSecteur, Count(a.supplierCode) AS CountOfsupplierCode "
    strSQL = strSQL & "FROM (SELECT DISTINCT b.codeSecteur, supplierCode, IIf(CurrentETD<>'',month(CurrentETD),month(InitialETD)) as leMois FROM TimportFollowUp, TDrayonSecteur as b "
    strSQL = strSQL & "      WHERE IIf(CurrentETD<>'',month(CurrentETD),month(InitialETD))=" & Month(mois) & " "
    strSQL = strSQL & "      AND left(Department,2)=b.codeRayon "
    strSQL = strSQL & "      AND orderCurrentStatus<>'A') AS a, TDsecteur as c "
    strSQL = strSQL & "WHERE c.idSecteur=a.codeSecteur "
    strSQL = strSQL & "GROUP BY c.nomSecteur;"
    
    Set rsData = New ADODB.Recordset
    rsData.Open strSQL, objMyDB, adOpenDynamic
    Do Until rsData.EOF
        leSecteur = rsData.Fields("nomSecteur")
          
        majTRresultat objMyDB, mois, "AIG", 87, leSecteur, Nz(rsData.Fields(1), "")
    
        rsData.MoveNext
    Loop
    
    rsData.Close
    Set rsData = Nothing
    
    End Sub
    En rouge il s'agit de la ligne que le déboggeur souligne en anomalie.

    Pouvez-vous m'aider? Ayant récupérer le bébé depuis 4 jours je ne connais pas encore toutes les données mais si vous souhaitez des précision sur des champs n'hésitez pas à me demander.

    Merci pour votre aide!

  2. #2
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    subslizer,

    Probablement une comparaison ou une jointure sur des champs de type différent !

    Regarde ce post

    http://vb.developpez.com/faq/?page=Bdd#type_critere

    Est ce que par exemple Department en texte et codeRayon en numérique ?

    Un truc du genre en tout cas...

    JimBoLion

  3. #3
    Candidat au Club
    Homme Profil pro
    Manager de projets
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Manager de projets
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par jimbolion Voir le message
    subslizer,

    Probablement une comparaison ou une jointure sur des champs de type différent !

    Regarde ce post

    http://vb.developpez.com/faq/?page=Bdd#type_critere

    Est ce que par exemple Department en texte et codeRayon en numérique ?

    Un truc du genre en tout cas...

    JimBoLion
    Le champ codeRayon est bien en format texte dans la table TDRayonSecteur, tout comme le champ Department.

    En regardant ton lien, l'anomalie vient visiblement d'un problème de format... Sachant que le champ CurrentEDT est une date positionnée en format texte, l'anomalie ne viendrait pas de là?

  4. #4
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    subslizer,

    Effectivement c'est une piste, tu peux dans ce cas tenter de formater ton champ texte en type date !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(CurrentETD,"mm/dd/yyyy")

    Mais attention si une date ne respecte pas les conventions de date (règles de validité) ta requête pourrait te générer de nouvelles erreurs.

    JimBoLion

  5. #5
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    subslizer,

    Vérifie également InitialETD


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE IIf(CurrentETD<>'',month(format(CurrentETD,"mm/dd/yyyy")),month(format(InitialETD,"mm/dd/yyyy")))=" & Month(mois) & " "
    Quelque chose comme çà

    JimBoLion

  6. #6
    Candidat au Club
    Homme Profil pro
    Manager de projets
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Manager de projets
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par jimbolion Voir le message
    subslizer,

    Vérifie également InitialETD


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE IIf(CurrentETD<>'',month(format(CurrentETD,"mm/dd/yyyy")),month(format(InitialETD,"mm/dd/yyyy")))=" & Month(mois) & " "
    Quelque chose comme çà

    JimBoLion
    Bonsoir,

    Le problème venait effectivement des champs CurrentETD et InitialETD qu'il fallait positionner en format "MM/YYYY" comme le champ "mois".
    De plus les formules month étaient également en trop.

    Merci beaucoup pour ton aide!

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/05/2014, 18h01
  2. Réponses: 3
    Dernier message: 23/12/2013, 12h05
  3. Réponses: 2
    Dernier message: 25/03/2013, 13h15
  4. Réponses: 5
    Dernier message: 31/08/2007, 14h01
  5. Réponses: 3
    Dernier message: 22/05/2006, 20h23

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