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 :

[Access] Erreur d'exécution de type 13 ?


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 84
    Par défaut [Access] Erreur d'exécution de type 13 ?
    Bonjour,

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    'Création de la zdl Région selon choix fait dans la zdl NOM_REPR + 0 commandes depuis 2005 + ajout de "Tous" à la liste
     
    Dim rWhere As String
    rWhere = "((Total_cde_5) Is Null) AND ((Total_cde_6) Is Null) AND ((Total_cde_7) Is Null)"
     
    If Not Me.NOM_REPR = "- Tous -" Then
        rWhere = rWhere & " AND NOM_REPR = " & Chr(34) & Me.NOM_REPR & Chr(34) And " & Chr(34) & " - Tous - " & Chr(34)"
    End If
     
    Me.Région.RowSource = "SELECT DISTINCT Région FROM Recap1 " & _
    "WHERE = rWhere " & _
    "UNION SELECT " & Chr(34) & "- Tous -" & Chr(34) & " FROM Recap1; "
    Me.Requery
    Quand je le fais tourner, Access me dit "Erreur d'éxécution de type 13 - incompatibilité de type"
    Et aussi opérateur absent sur 'rWhere ='

    Je débute en code et je ne comprends pas ce que cela signifie...
    Qu'est ce qu'une incompatibilité de type ?
    N'est-il pas possible de faire de cette manière ?

    Précision : Région et NOM_REPR sont des listes déroulantes, et la première est filtrée par la seconde. En y ajoutant "- Tous -".
    Pour expliquer : si je choisi 'tous' dans ZDL1 alors dans ZDL2 j'aurai 'tous' aussi et l'ensemble des régions.
    si je sélectionne un critère particulier dans ZDL1 alors, dans ZDL2 j'aurai uniquement les régions correspondantes à ce critère et 'tous' (qui dans ce cas sera restrictif puisque ce sera le 'tous' du critère de ZDL1).

    Est ce que quelqu'un aurait une idée de ce que je pourrai faire pour que cela fonctionne, ou pourrait m'expliquer où est mon erreur, parce que là je suis un peu perdue

    Merci d'avance !

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 155
    Par défaut
    Bonjour,

    Je crois que si tu choisis "Tous" dans ta première liste déroulabte, tu ne dois pas mettre de critère sur NOM_REPR, puisque tu les veux tous. Donc ta condition devrait être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Not Me.NOM_REPR <> "- Tous -" Then
        rWhere = rWhere & " AND NOM_REPR = " & Chr(34) & Me.NOM_REPR & Chr(34) 
    End If
    Ensuite, dans la définition du rowsource, le signe = est en trop et rWhere doit être hors des guillemets puisque c'est une variable qu'il faut concaténer à "WHERE ". Enfin, il faudrait mettre un espace devant UNION pour qu'il ne soit pas soudé à la fin de ton rWhere :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Me.Région.RowSource = "SELECT DISTINCT Région FROM Recap1 " & _
    "WHERE " & rWhere & _
    " UNION SELECT " & Chr(34) & "- Tous -" & Chr(34) & " FROM Recap1; "
    Tu n'as plus qu'à essayer !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 84
    Par défaut
    Salut,
    Je crois que si tu choisis "Tous" dans ta première liste déroulabte, tu ne dois pas mettre de critère sur NOM_REPR, puisque tu les veux tous. Donc ta condition devrait être

    If Not Me.NOM_REPR <> "- Tous -" Then
    rWhere = rWhere & " AND NOM_REPR = " & Chr(34) & Me.NOM_REPR & Chr(34)
    End If
    Ta remarque est très juste ! Je n'avais pas fait attention à cela.
    Mais dans ton code, cela dit "si NOM_REPR n'est pas différent de 'tous'", ce qui revient à dire: "si NOM_REPR est égal à 'tous' je l'ai donc modifié en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.NOM_REPR <> "- Tous -" Then
    Mais malheureusement cela ne fonctionne pas :
    J'ai le message d'erreur suivant :
    "La source d'enregistrement 'Faux' spécifiée dans ce formulaire n'existe pas" je ne comprends pas à quoi cela fait référence...

    De plus le code ne fonctionne pas seul !! J'ai dans la case contenu dans les propriété de ma ZDL2 (Région) le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT DISTINCT Région 
    FROM Recap1
    UNION SELECT  "- Tous -" 
    FROM Recap1
    WHERE ((NOM_REPR = Formulaires!Recherche_liste_prospects!NOM_REPR)
    AND ((Total_cde_5) Is Null) 
    AND ((Total_cde_6) Is Null) 
    AND ((Total_cde_7) Is Null));
    Et si je retire ce code, je n'ai même plus les régions qui apparaissent (aucune quelque soit le choix fait en ZDL1)... et si je passe ce code en VBA il fonctionne mais ne permet pas de mettre le 'tous' en ZDL2 quand 1 sélection est faite en ZDL1.
    Et de même, pour l'étape suivant qui est une ZDL3 dont les choix possibles dépendront de ceux effectués en ZDL1 et ZDL2 (sur le même fonctionnement que pour la ZDL2), ça fonctionne encore moins, car il ne prend pas en compte les critères des 2 ZDL à la fois.

    Je ne suis pas sure d'être très claire...
    C'est pour cela que je suis partie sur des "If" car en SQL ça ne passe pas...
    As tu une idée ?

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 155
    Par défaut
    Je ne fais que des étourderies ce matin !!

    D'abord, je n'avais pas remarqué le Not dans ta condition.

    De plus, j'ai oublié plusieurs choses dans la clause UNION. En fait essaie plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Me.Région.RowSource = "SELECT DISTINCT Région FROM Recap1 " & _
    "WHERE " & rWhere & _
    " UNION (SELECT " & Chr(34) & "- Tous -" & Chr(34) & " AS Région FROM Recap1); "
    Cette requête est une requête union qui unit un extrait (filtré par WHERE) de ta table Recap1 avec un enregistrement bidon de Recap1 qui contiendrait "- Tous -" comme nom de région.

    A part celà, je ne comprends pas non plus le sens du message
    "La source d'enregistrement 'Faux' spécifiée dans ce formulaire n'existe pas"

    Enfin, essaie de remplacer le contenu de ta ZDL2 par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT DISTINCT Région 
    FROM Recap1
    UNION (SELECT  "- Tous -" AS Région
    FROM Recap1
    WHERE ((NOM_REPR = Formulaires!Recherche_liste_prospects!NOM_REPR)
    AND ((Total_cde_5) Is Null) 
    AND ((Total_cde_6) Is Null) 
    AND ((Total_cde_7) Is Null)));
    J'espère n'avoir pas trop dit de bêtise cette fois

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 84
    Par défaut
    Un peu que tu n'as pas dit de bêtises !

    Ca marche impec !!

    Merci beaucoup de ton aide et de ton temps !!!

    PS: J'en reviens pas que c'était une histoire de parenthèses autour de la deuxième requête SELECT après l'UNION!! Ca tenait tellement à peu de chose, et bonjour le temps perdu à chercher des explications compliquées !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/03/2013, 12h15
  2. Erreur d'exécution '13' type incompatibe
    Par Rahim29 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 19/06/2008, 19h58
  3. Erreur d'exécution de type java.lang.NoClassDefFoundError
    Par lelorf1983 dans le forum JDeveloper
    Réponses: 3
    Dernier message: 01/06/2007, 15h20
  4. erreur d'exécution '48' dans access 2003
    Par SANGLIER dans le forum Access
    Réponses: 1
    Dernier message: 25/01/2007, 19h01
  5. transfert access -> excel : Erreur d'exécution 3011
    Par finesse20 dans le forum Access
    Réponses: 4
    Dernier message: 10/08/2006, 10h10

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