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 :

[VBA] erreur : Membre de méthode ou donnée introuvable


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Par défaut [VBA] erreur : Membre de méthode ou donnée introuvable
    Bonjour,


    Une erreur de compilation s'affiche: Membre de méthode ou donnée introuvable

    VBE surligne le Rowsource 3 lignes avant la fin du code et je ne comprends pas ce qu'il manquerait


    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    Public Sub RefreshQuery()
    Dim SQL As String
     
    'recherche qui sera affiché comme equipmentType pour les Umbi ou les Flying Leads
     
    SQL = "SELECT DISTINCT [EquipmentTypes].[EquipmentType], [EquipmentTypes].[IDType] FROM EquipmentTypes "
     
    If Me.chk_hyd Then
        SQL = SQL & "WHERE [EquipmentTypes]![EquipmentType] = HYD"
        End If
     
    If Me.chk_el Then
        If Me.chk_hyd Then
        SQL = SQL & "-EL"
        Else
        SQL = SQL & "WHERE [EquipmentTypes]![EquipmentType] = EL"
        End If
    End If
     
    If Me.chk_inh Then
        If Me.chk_hyd Or Me.chk_el Then
        SQL = SQL & "-INH"
        Else
        SQL = SQL & "WHERE [EquipmentTypes]![EquipmentType] = INH"
        End If
    End If
     
    If Me.chk_ch Then
        If Me.chk_hyd Or Me.chk_el Or Me.chk_inh Then
        SQL = SQL & "-CH"
        Else
        SQL = SQL & "WHERE [EquipmentTypes]![EquipmentType] = HYD"
        End If
    End If
     
    If Me.chk_gl Then
        If Me.chk_hyd Or Me.chk_el Or Me.chk_inh Or Me.chk_ch Then
        SQL = SQL & "-GL"
        Else
        SQL = SQL & "WHERE [EquipmentTypes]![EquipmentType] = GL"
        End If
    End If
     
    If Me.chk_sp Then
        If Me.chk_hyd Or Me.chk_el Or Me.chk_inh Or Me.chk_ch Or Me.chk_gl Then
        SQL = SQL & "-SP"
        Else
        SQL = SQL & "WHERE [EquipmentTypes]![EquipmentType] = SP"
        End If
    End If
     
    Me.zt_IDType.RowSource = SQL
    Me.zt_IDType.Requery
     
    End Sub
    Merci

  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,

    D'abord, vérifie bien que la propriéré "Origine source" de ta liste est sur Table/Requête.

    Ensuite, que sont HYD, EL ... ? S'il s'agit de chaînes de caractères servant de critères aux requêtes, il faut mettre :
    "... = 'HYD'", "... = 'EL'", etc

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Par défaut
    En fait j'avais mis une zone de texte, j'ai changé pour une liste et j'ai rajouté les ' ' autour de mes chaines de caractères
    Problème : l'erreur précédente n'y ait plus en revanche j'ai une erreur classique : 91 utilisation incorrecte de Null

    au niveau de


  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
    Bon. Cela signifie que ton champ chk_Hyd n'est pas renseigné. De deux choses l'une :

    La fonction Nz retourne son deuxième argument si le premier est Null

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Par défaut
    Je pense que je vais prendre la formule Nz "pas coché" elle m'a l'air bien

    Je te dis si ça fonctionne

    Merci

    Progression

    ça fonctionne si une seul chkBox est cochée mais pas plusieurs, c'est à dire qu'il y a un problème de compatibilité Or et Nz

    J'ai mi : Nz() Or Nz()

    Il faudrait faire Nz( Or , ) ?

    j'ai testé Nz( Or , 0) mais ça ne marche pas :'(

    ah non ça doit être la combinaison de 'HYD' et '-EL' il faudrait que ça soit 'HYD-EL'

    :S

  6. #6
    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 voulais dire :
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    ...
    If Nz(Me.chk_hyd,0) Then
        SQL = SQL & "WHERE [EquipmentTypes]![EquipmentType] = 'HYD'"
    End If
     
    If Nz(Me.chk_el,0) Then
        If Nz(Me.chk_hyd,0) Then
        SQL = SQL & " & '-EL'"
        Else
        SQL = SQL & "WHERE [EquipmentTypes]![EquipmentType] = 'EL'"
        End If
    End If
     
    If Nz(Me.chk_inh,0) Then
        If Nz(Me.chk_hyd,0) Or Nz(Me.chk_el,0) Then
        SQL = SQL & " & '-INH'"
        Else
        SQL = SQL & "WHERE [EquipmentTypes]![EquipmentType] = 'INH'"
        End If
    End If
     
    If Nz(Me.chk_ch,0) Then
        If Nz(Me.chk_hyd,0) Or Nz(Me.chk_el,0) Or Nz(Me.chk_inh,0) Then
        SQL = SQL & " & '-CH'"
        Else
        SQL = SQL & "WHERE [EquipmentTypes]![EquipmentType] = 'HYD'"
        End If
    End If
     
    If Nz(Me.chk_gl,0) Then
        If Nz(Me.chk_hyd,0) Or Nz(Me.chk_el,0) Or nz(Me.chk_inh,0) Or Nz(Me.chk_ch,0) Then
        SQL = SQL & " & '-GL'"
        Else
        SQL = SQL & "WHERE [EquipmentTypes]![EquipmentType] = 'GL'"
        End If
    End If
     
    If Nz(Me.chk_sp,0) Then
        If Nz(Me.chk_hyd,0) Or Nz(Me.chk_el,0) Or Nz(Me.chk_inh,0) Or Nz(Me.chk_ch,0) Or Nz(Me.chk_gl,0) Then
        SQL = SQL & " & '-SP'"
        Else
        SQL = SQL & "WHERE [EquipmentTypes]![EquipmentType] = 'SP'"
        End If
    End If
    Autrement dit, il faut faire les tests non pas sur tes check-boxes, mais sur les valeurs retournées par Nz.

    Au passage, je me suis permis d'ajouter des & au formules en SQL = SQL & ... car je ne suis pas sûr que ces formules fonctionnent sinon. Enfin, je n'ai pas fait l'essai...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Par défaut
    C'est ce que j'ai fait les test sur les Nz () comme tu l'as écri la seul différence que j'ai avec ton code c'est les & que tu as rajouté.

    Mais je vais les mettre sinon le problème doit être quand on assemble , par ex :

    'HYD' et '-EL' ça donne 'HYD''-EL' alors qu'i lfaudrait 'HYD-EL' alors pour ça j'ai ouvert une autre discussion ( [VBA] Fonction qui en transforme " 'mot1' " & " 'mot2' " en " 'mot1mot2' " )

    J'te fais signe si ça marche avec les &

    Merci

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Par défaut
    ça marche !! pour la combinaison!! par contre si je décoche il n'y a plus rien qui s'affiche comme si la requête ne donnait rien !

    En fait c'est si je coche tout dans l'ordre que ça marche mais si j'en saute un ça foire

Discussions similaires

  1. membre de méthode ou données introuvable
    Par aba_tarn dans le forum VBA Access
    Réponses: 15
    Dernier message: 03/04/2012, 16h48
  2. [XL-2003] Membre de méthode ou données introuvables
    Par hankmarvin dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 19/06/2011, 09h39
  3. Réponses: 2
    Dernier message: 01/10/2010, 16h01
  4. Membre de méthode ou données introuvable
    Par planete.gonz dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/01/2009, 14h47
  5. Membre ou méthode de données introuvable
    Par mouaa dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/02/2008, 09h12

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