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 :

Messages d’erreur sous Treeview


Sujet :

VBA Access

  1. #1
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut Messages d’erreur sous Treeview
    Bonjour,

    J’ai construit un treeview. Sur double-clic du libellé d’une branche, j’ouvre un formulaire de saisie qui récupère les libellés des différents niveaux de l’arbre : soit 5 niveaux numérotés de 0 à 4.

    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
    Private Sub Xtree_DblClick()
        Dim NodX As Node
        Dim Generation As Integer
        Dim oDb As DAO.Database
        Dim oRst As DAO.Recordset
        Set oDb = CurrentDb
        Set oRst = oDb.OpenRecordset("SELECT tREN.renid, tREN.renrisid FROM tREN;", dbOpenDynaset)
        Set NodX = Xtree.SelectedItem
        ChercherGeneration NodX, Generation
        If Generation < 4 Then
            oRst.Close: oDb.Close: Set oRst = Nothing: Set oDb = Nothing
            Exit Sub
        End If
        NodeEnCours = Mid(NodX.Key, 2)
        Laclé = CLng(NodeEnCours)
        oRst.FindFirst "renid=" & Laclé
        If oRst.NoMatch Then
          'Création de l'enregistrement
          oRst.AddNew
          oRst.Fields("renid").Value = Laclé
          oRst.Fields("renrisid").Value = 73
          oRst.Update
        End If
        oRst.Close: oDb.Close: Set oRst = Nothing: Set oDb = Nothing
        'Les variables publiques
        sUTR = Me.Xtree.Nodes(Laclé).Parent.Parent.Parent.Parent.Text
        sACT = Me.Xtree.Nodes(Laclé).Parent.Parent.Parent.Text
        sTAC = Me.Xtree.Nodes(Laclé).Parent.Parent.Text
        sARI = Me.Xtree.Nodes(Laclé).Parent.Text
        sREN = Me.Xtree.Nodes(Laclé).Text
        DoCmd.OpenForm "fRENEVA", , , "renid=" & Laclé, , acDialog
    End Sub
    Cela fonctionne … mais pas tout le temps . J’ai deux messages d’erreur différents :
    Le premier Index hors limite et le second Variable objet ou variable de bloc With non définie.
    Ces erreurs se déclenchent avant l’ouverture du formulaire de saisie, lorsque j’affecte la valeur des libellés aux variables publiques pour les récupérer à l’ouverture du formulaire de saisie.

    Avez-vous une idée ?

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Bonjour

    A mon avis, le code de chargement ou d'ouverture du formulaire serait plus utile que le code sur le double-click du treeview.

    Peut-être placer un point d'arrêt sur ce code-là et voir en pas-à pas ce qu'il fait.

    Signaler la ligne sur laquelle l'erreur se produit serait aussi judicieux...

  3. #3
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    Re,

    L'erreur se produit à l'évaluation des variables publiques
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sUTR = Me.Xtree.Nodes(Laclé).Parent.Parent.Parent.Parent.Text

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Hum... il y a peu de chances que ce code isolé permette de solutionner le problème...

    Je suppose que tu remontes un niveau trop haut, voire plus...

  5. #5
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    Re,

    J'ai trouvé : problème se syntaxe, il fallait écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sREN = NodX.Text
    sARI = NodX.Parent.Text
    sTAC = NodX.Parent.Parent.Text
    sACT = NodX.Parent.Parent.Parent.Text
    sUTR = NodX.Parent.Parent.Parent.Parent.Text
    et non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sUTR = Me.Xtree.Nodes(Laclé).Parent.Parent.Parent.Parent.Text
    sACT = Me.Xtree.Nodes(Laclé).Parent.Parent.Parent.Text
    sTAC = Me.Xtree.Nodes(Laclé).Parent.Parent.Text
    sARI = Me.Xtree.Nodes(Laclé).Parent.Text
    sREN = Me.Xtree.Nodes(Laclé).Text
    Je vais même essayer de lire le treeview depuis le formulaire de saisie.

    Merci de ton aide Pierre, cordialement,

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

Discussions similaires

  1. [XL-2010] Message d’erreur quand je supprime le texte d’un comboBox sous la fonction VLookup
    Par a.ouguerzam dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 14/11/2014, 10h34
  2. Message d’erreur sous code block
    Par med19972004 dans le forum C
    Réponses: 4
    Dernier message: 12/02/2011, 21h04
  3. Réponses: 0
    Dernier message: 29/12/2010, 19h17
  4. Réponses: 0
    Dernier message: 04/04/2008, 18h55

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