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 :

DLookup, Erreur d'incompatibilité de type (13)


Sujet :

VBA Access

  1. #1
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Points : 70
    Points
    70
    Par défaut DLookup, Erreur d'incompatibilité de type (13)
    Voilà! Je tente dexécuter un DLookup qui, lorsque je clique dans une zone de liste, regarde si une valeur en particulier est présente dans une de mes tables. Si cette valeur est présente dans cette table, alors l'une de mes cases à cocher devient active. Sinon, si cette valeur n'apparait pas dans ma table, ma case à cocher se désactive.

    Malheureusement, Access m'envoie comme message "Erreur 13, Incompatibilité de type" et je ne comprends pas pourquoi. Voici à quoi ressemble mon code!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If (DLookup("mois", "TableAnnee", "mois='JANVIER'")) Then
    CaseJanvier.Enabled = True
    Else: CaseJanvier.Enabled = False
    End If
    Merci de votre aide!

  2. #2
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Salut,

    DlookUp renvoi une valeur de type Variante, il faut effectuer soit un test soit charger le résultat dans une variable.

    je verrais plus ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If DLookup("mois", "TableAnnee") = "JANVIER" Then
    CaseJanvier.Enabled = True
    Else: CaseJanvier.Enabled = False
    End If
    mais je pense que ton code n'est pas optimisé que veux-tu faire éxactement ? tu veux tester tous les mois ? peut être un Select Case ?

    Dolphy

  3. #3
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Points : 70
    Points
    70
    Par défaut
    Yabadabadooo!!! ÇA fonctionne!!! Merci beaucoup!!!

    Pour ce qui est de ta question, effectivement il est fort possible que mes codes ne soient pas optimisés au maximum. Ca ne fait pas tellement longtemps que je commence à tenter de faire de la programmation. En ce moment, je tente de créer des formulaires à sélections multiples et j'ai plusieurs boutons qui sont indépendants, c'est pourquoi je dois répeter plusieurs fois le même code sur plusieurs boutons différents (où leur code possède une légère nuance pour chacun).

    Ici, j'ai plusieurs boutons représentant chacun un mois de l'année. J'ai une zone de liste qui, lorsqu'on sélectionne une valeur à l'intérieur de celle-ci, crée une table avec critères mes sélections. Donc, dépendemment de mes sélections effectués, ce ne sont pas tous les mois de l'année qui y sont présent. C'est pourquoi, si l'un de ces mois n'apparait dans ma nouvelle table, la case à cocher qui y est relié se désactive automatiquement pour empêcher à l'utilisateur de l'utiliser. C'est un peu ça en gros

    Merci encore Dolphy!!!

  4. #4
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Points : 70
    Points
    70
    Par défaut
    Zut...Ça fonctionne plus ou moins finalement. LE Dlookup ne fait que regarder la première valeur de ma colonne "mois". Moi je voudrais qu'elle regarde partout dans ma colonne "mois" et si elle voit le mot "JANVIER" une seule fois dans la colonne, alors ma caseJanvier s'active, et si elle ne voit pas ce mot du tout, ma caseJanvier se désactive.

    Merci encore!

  5. #5
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Moi je voudrais qu'elle regarde partout dans ma colonne "mois" et si elle voit le mot "JANVIER" une seule fois dans la colonne, alors ma caseJanvier s'active,
    En suivant le raisonnement de Dolphy :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If DCount("mois", "TableAnnee", "mois='JANVIER'")>0 Then
    En espérant t'aider.

  6. #6
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Points : 70
    Points
    70
    Par défaut
    Je suis tout admiratif par toute cette lucidité ! Merci encore! Grâce à vous, tout fonctionne .

    Merci 1000 fois

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

Discussions similaires

  1. [E-03] Erreur 13 : incompatibilité de type
    Par bong03 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/04/2009, 10h27
  2. [A-07] Erreur n°13 : Incompatibilité de type
    Par Leimi dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/03/2009, 11h15
  3. Erreur d'incompatibilité de types
    Par étoile de mer dans le forum Débuter
    Réponses: 27
    Dernier message: 01/06/2008, 17h14
  4. Erreur 13 : incompatibilité de type
    Par Donatelli dans le forum Access
    Réponses: 1
    Dernier message: 03/01/2007, 12h19
  5. [VBA-A] ADO - Erreur 13 Incompatibilité de Type
    Par db30 dans le forum VBA Access
    Réponses: 4
    Dernier message: 15/04/2006, 14h30

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