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 :

TreeView sous VBA Access


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2016
    Messages : 4
    Par défaut TreeView sous VBA Access
    Bonjour,

    A l'aide de la nombreuse documentation du site (tuto et forum) j'ai écrit une petite appli en VBA sous Access (Windows 7 pro / Access 2013 / VBA 7.1) pour visualiser et parcourir un gros volume de données. Il n'y a qu'un seul formulaire avec des boutons et un TreeView .
    - un bouton permet de récupérer des données ODBC dans une table Access (plusieurs milliers de lignes),
    - un bouton permet de charger le TreeView avec les données de la table (plusieurs milliers de nœuds),
    - un bouton permet de rechercher un élément dans le TreeView et l'affiche,
    - un bouton permet de vider le TreeView et de supprimer la table.

    Tout marche bien sauf que le TreeView semble se charger au lancement d'Access.
    Je m'explique, au lancement d'Access, le TreeView présente des données et le temps de chargement n'est pas négligeable en raison de la taille des données.
    Et cela, même si je vide le TreeView avant de fermer et de sauver l'application.
    Pour vider le TreeView, je balaye toute l'arborescence et j'utilise la méthode MonTV.Nodes.clear

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 To RO_TV.Nodes.Count
         RO_TV.Nodes.Clear
    Next
    Y a t il une propriété particulière qui explique ce comportement ?
    ou est ce la méthode clear qui n'est pas appropriée ?

    Merci de votre aide,

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    sauf si erreur,
    supprime deja toutes les nodes du treeview, inutile de le faire autant de fois qu'il y a de nodes =]
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2016
    Messages : 4
    Par défaut
    En effet, c'est bien plus rapide.
    Toutefois, si je sauve et quitte l'application.
    Lorsque je le réouvre, le treeview est déjà peuplé.
    Je n'arrive pas a expliquer ce comportement.

    Citation Envoyé par Jean-Philippe André Voir le message
    Salut,

    sauf si erreur,
    supprime deja toutes les nodes du treeview, inutile de le faire autant de fois qu'il y a de nodes =]

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 129
    Par défaut
    Bonjour,

    Vu l'avenir compromis des composants VB6, il vaut mieux penser à leur remplacement qu'à leur diffusion. (cf les nombreuses discussions sur le sujet)

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2016
    Messages : 4
    Par défaut
    Loufab,
    Désolé je ne suis pas trop familier avec ce domaine.
    Faite vous allusion, par exemple, a porter l'application sous VB.NET ?
    Merci,

    Citation Envoyé par loufab Voir le message
    Bonjour,

    Vu l'avenir compromis des composants VB6, il vaut mieux penser à leur remplacement qu'à leur diffusion. (cf les nombreuses discussions sur le sujet)

    Cordialement,

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 129
    Par défaut
    Non pas forcément.

    Il y a des solutions de remplacement Full VBA.

    http://arkham46.developpez.com/articles/access/libtgl/

    Mais les composants VB6 ne sont plus supporté depuis de nombreuses années.
    Ils commencent à poser des problèmes notamment avec ACCESS 64 bits donc avant de se retrouver au pied du mur...

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  7. #7
    Membre émérite Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 980
    Par défaut Arbre...
    Salut !

    Concernant les treeview, je me contente de supprimer le premier noeud (au chargement, éventuellement) avec ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        If Me!Tree.Nodes.Count >= 1 Then Me!Tree.Nodes.Remove 1
    Bonne journée

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2016
    Messages : 4
    Par défaut
    Bon finalement, j'ai réglé le problème sans réellement comprendre le comportement.

    1 - En supprimant le Treeview et le recréant, je retrouve le comportement attendu : au lancement, le Treeview est vide, le temps de lancement de l’application est optimisé. Le poids de l’application est faible. Je peux sauver l'application dans Access sans modifier ce comportement.

    2 - Par contre, si je sauve le projet dans "Visual Basic Editor", l'état du treeView au moment de l’enregistrement devient en quelques sorte la valeur par défaut du Treeview au lancement de l'application :-( Pour retrouver la situation d'origine, je vide le Treeview et j’enregistre dans VBE.

    Voila.

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

Discussions similaires

  1. Loi de Poisson sous VBA Access
    Par speedway dans le forum VBA Access
    Réponses: 5
    Dernier message: 11/03/2008, 15h18
  2. Supprimer des données Excel sous VBA Access
    Par Sam 069 dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/10/2007, 09h55
  3. accéder un champ de la requette sous vba access
    Par mahboub dans le forum Langage SQL
    Réponses: 1
    Dernier message: 24/04/2007, 22h21
  4. Réponses: 12
    Dernier message: 10/06/2006, 19h07
  5. [Access 2003/VBA]Zorder sous VBA-Access ?
    Par cotmar dans le forum Access
    Réponses: 2
    Dernier message: 05/06/2006, 13h55

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