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 :

Une liste qui pose problème


Sujet :

VBA Access

  1. #1
    Débutant
    Inscrit en
    Mars 2007
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 258
    Points : 66
    Points
    66
    Par défaut Une liste qui pose problème
    Salut à tous, je suis entrain d'écrire une fonction qui crée une liste :
    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
     
    Dim i As Integer
    Dim j As Integer
    Dim l As Integer
     
    Liste.RowSource = ""
     
    While (i < 100)
    If Form_FLT.Treeview1.Nodes("k" & i).Checked = True Then
        Liste.AddItem ("k" & i)
        While (j < 100)
        If Form_FLT.Treeview1.Nodes("k" & i & j).Checked = True Then
            Liste.AddItem ("k" & i & j)
            While (l < 100)
            If Form_FLT.Treeview1.Nodes("k" & i & j & l).Checked = True Then
                Liste.AddItem ("k" & i & j & l)
            End If
            Wend
        End If
        Wend
    End If
    Wend
    J'ai malheureusement l'erreur : "Membre de méthode ou de donnée introuvable" quand je lance la fonction, et la ligne contenant le premier Liste.AddItem est surlignée, comment faire ?
    Merci d'avance !

  2. #2
    Membre averti
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Points : 396
    Points
    396
    Par défaut
    Bonjour,

    Que veux tu faire exactement ?

    Liste est un Control de type ListBox ??

    A+

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Sous qu'elle version d'Access es-tu, car la méthode Additem n'est apparue qu'à partir de la versions 2002.

    Starec

  4. #4
    Débutant
    Inscrit en
    Mars 2007
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 258
    Points : 66
    Points
    66
    Par défaut
    Oui en effet il n'y a pas de AddItem comme ça c'est reglé.
    Je veux récupérer dans une liste les identifiants des cases qui ont été cochés dans le formulaire précédent.
    Voici le nouveau code, cette fois j'utilise un tableau :
    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
     
    Dim i As Integer
    Dim j As Integer
    Dim l As Integer
    Dim m As Integer
     
    Dim MyArray(100, 0)
     
    While (i < 100)
    If Form_FLT.Treeview1.Nodes("k" & i).Checked = True Then
        MyArray(m, 0) = ("k" & i)
        m = m + 1
        While (j < 100)
        If Form_FLT.Treeview1.Nodes("k" & i & j).Checked = True Then
            MyArray(m, 0) = ("k" & i & j)
            m = m + 1
            While (l < 100)
            If Form_FLT.Treeview1.Nodes("k" & i & j & l).Checked = True Then
                MyArray(m, 0) = ("k" & i & j & l)
                m = m + 1
            End If
            l = l + 1
            Wend
        End If
        j = j + 1
        Wend
    End If
    i = i + 1
    Wend
    J'ai le message d'erreur : "element not found" et la ligne suivante est surlignée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Form_FLT.Treeview1.Nodes("k" & i).Checked = True Then

  5. #5
    Invité
    Invité(e)
    Par défaut
    Re

    Cela signifie qu'il n'a pas trouvé d'élément (K & i).

    En effet, dans ton code tu initialises la valeur i à 0 lorsque tu la déclares, ensuite ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Form_FLT.Treeview1.Nodes("k" & i).Checked = True Then
    Tu cherches le noeux k0, as-tu un noeud k0 ?

    Starec

  6. #6
    Débutant
    Inscrit en
    Mars 2007
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 258
    Points : 66
    Points
    66
    Par défaut
    Ok merci, il est vrai que k0 n'existe pas, c'est k10 qu'il me faut, ce qui me rappelle une autre erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim i As Integer
    Dim j As Integer
    Dim l As Integer
    Dim m As Integer
     
    Set i = 10
    .
    .
    .
    Me met l'erreur :"Erreur de compilation : objet requis", au niveau du Set...
    Pourquoi ?!

  7. #7
    Invité
    Invité(e)
    Par défaut
    Re

    Enlèves le Set, il ne sert à rien, c'est pour affecter un objet à une variable objet.

    Starec

  8. #8
    Débutant
    Inscrit en
    Mars 2007
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 258
    Points : 66
    Points
    66
    Par défaut
    Ok merci, j'ai bien initialisé i à 10 avec un "i = 10", mais ça ne marche toujours pas, cette fois-ci j'ai l'erreur "element not found".
    Quand je tape k10 je n'ai pas d'erreur, et quand je tape ("k" & i) j'ai cette erreur...

  9. #9
    Débutant
    Inscrit en
    Mars 2007
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 258
    Points : 66
    Points
    66
    Par défaut
    OUF ça y est après une après-midi entière je l'ai ma fonction !
    Voici une fonction qui affiche -dans l'ordre sil vous plait- les cases cochées dans la treeview précédante, sur 3 niveaux.
    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
     
    Private Sub Commande2545_Click()
        Dim ChnSQL As String
     
        Dim res As DAO.Recordset
        Dim res2 As DAO.Recordset
        Dim res3 As DAO.Recordset
     
        Set Db = CurrentDb()
     
        ChnSQL = "SELECT * FROM _TRAVAIL WHERE type=1"
        Set res = Db.OpenRecordset(ChnSQL)
     
        '//REINITIALISER LE TABLEAU
     
        While Not res.EOF
            If Form_FLT.Treeview1.Nodes("k" & (res!ID)).Checked = True Then
            MsgBox ("je detecte la valeur cochée :" & (res!ID)) '//AJOUTER LA VALEUR
            ChnSQL = "SELECT * FROM _TRAVAIL WHERE type=2 AND id_pere=" & (res!ID)
            Set res2 = Db.OpenRecordset(ChnSQL)
            While Not res2.EOF
                If Form_FLT.Treeview1.Nodes("k" & (res2!ID)).Checked = True Then
                MsgBox ("je detecte la valeur cochée :" & (res2!ID)) '//AJOUTER LA VALEUR
                ChnSQL = "SELECT * FROM _TRAVAIL WHERE type=3 AND id_pere=" & (res2!ID)
                Set res3 = Db.OpenRecordset(ChnSQL)
                While Not res3.EOF
                    If Form_FLT.Treeview1.Nodes("k" & (res3!ID)).Checked = True Then
                    MsgBox ("je detecte la valeur cochée :" & (res3!ID)) '//AJOUTER LA VALEUR
                    res3.MoveNext
                    Else
                    res3.MoveNext
                    End If
                Wend
                res2.MoveNext
                Else
                res2.MoveNext
                End If
            Wend
            res.MoveNext
            Else
            res.MoveNext
            End If
        Wend
    End Sub
    Bon, c'est pas tout, maintenant il faut que je mette tout ça dans un tableau plutôt que de les afficher à l'écran...

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

Discussions similaires

  1. [AC-2007] Revoir la conception d'une BD qui pose problème
    Par rch05 dans le forum Modélisation
    Réponses: 7
    Dernier message: 04/10/2011, 11h40
  2. Réponses: 11
    Dernier message: 06/05/2011, 15h34
  3. fonction qui pose problème - liste circulaire
    Par tangara001 dans le forum Lisp
    Réponses: 1
    Dernier message: 19/07/2010, 09h48
  4. Une requete qui pose problème (suite !)
    Par supertoms dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/04/2008, 09h10
  5. Une requête qui pose problème
    Par supertoms dans le forum Langage SQL
    Réponses: 7
    Dernier message: 20/04/2008, 18h25

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