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

VB 6 et antérieur Discussion :

[VBA] Connexion permanente dans un module de classe


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [VBA] Connexion permanente dans un module de classe
    Bonjour à tous !

    Je suis en train d'écrire un module de classe qui, en gros, mappe un enregistrement de ma base de donnée avec l'objet.
    Donc en gros, chaque champ de ma table est une propriété de l'objet.

    J'ai créé des méthodes qui permettent d'instancier l'objet en passant une clé primaire en paramètre et ce genre de chose, tout fonctionne très bien.

    Mais je m'interroge sur la meilleure façon de travailler avec la connexion à ma base de données.
    En gros, ce module est pour l'instant utilisé dans un projet VBA Autocad, et il pourra être utilisé dans un projet VBA Access (pas sûr, mais possible).

    Dans le projet Autocad, j'utilise beaucoup d'appels à la base de données, j'ai donc créé une variable globale contenant ma connexion à cette BDD.
    Lorsque j'ai besoin de cette connexion, j'exécute systématiquement une procédure "checkconnexion" qui teste si ma connexion est ouverte, et l'ouvre si elle ne l'est pas.

    Les méthode et les propriétés de ma classe font aussi beaucoup appel à cette connexion.
    Pour l'instant, j'ai écrit mon module en utilisant comme connexion la variable globale (avec appel à ma procédure "checkconnexion", qui se trouve en dehors du module de classe).

    Seulement, je me rends compte que ce n'est pas une "bonne pratique". Je ne peux pas utiliser un objet global dans mon module de classe car ça empêche la portabilité du module (j'ai lu ça dans un article de developpez.net, et je suis tout à fait d'accord).

    Je me suis simplement dit que je devais "imiter" l'objet recordset et définir une propriété "connection" pour ma classe. Quand j'instancie l'objet, je fait simplement un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set monobjet.connection = maconnexionglobale
    Le seul "hic", c'est que dans ça alourdit beaucoup mon code, car j'aurai partout cette attribution de connexion, alors qu'il s'agira toujours (sauf si un jour je réutilise ce module, ce qui n'est pas sûr) de la variable globale.
    Utiliser la variable globale dans la classe, c'est mal, mais c'est bien plus simple et léger.


    Je me disais qu'il existait peut-être un moyen de définir cette connexion comme étant globale "à l'intérieur de la classe", de telle façon que toutes les instances ré-utilisent la même connexion, mais que le module reste portable.
    Est-ce que c'est possible ? Je ne maitrise pas parfaitement les objets en VB, je ne sais pas si un objet peut exister pour toutes les instances d'une classe, mais ne pas exister à l'extérieur de cette classe.
    J'espère que vous me suivez, ce n'est peut-être pas clair...


    Tous les conseils sont les bienvenus, et merci d'avance !

  2. #2
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Sans garantie, donc faire des tests.

    Il me semble qu'un module simple, dans une classe est commun à toutes les instances de la classe.

Discussions similaires

  1. [XL-2007] Création d'un comboxbox dans un module de classe
    Par JLP64 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/10/2011, 12h24
  2. Setter dans un module de classe
    Par Mathusalem dans le forum Général VBA
    Réponses: 2
    Dernier message: 10/11/2008, 15h25
  3. [VBA] Collection dans un module de classe
    Par spaiku dans le forum VBA Access
    Réponses: 5
    Dernier message: 22/08/2008, 10h38
  4. erreur avec withevents dans un module de classe
    Par patbou dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/12/2007, 04h32
  5. Accesseur de collection dans un module de classe
    Par in dans le forum Général VBA
    Réponses: 4
    Dernier message: 17/08/2007, 18h09

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