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 Discussion :

Problème conceptuel de classe


Sujet :

VBA

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    août 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : août 2007
    Messages : 43
    Points : 35
    Points
    35
    Par défaut Problème conceptuel de classe
    Hum ! toujours difficile d'expliquer par écrit un concept

    A partir d'EXCEL, j'ouvre des bases ACCESS et présente les données dans des forms

    Je souhaite assainir et simplifier un peu mon code

    Une classe par table afin de stocker les données, et contrôler ces dernières, dans cette classe, j'instancie une classe pour lire, écrire... dans une table ACCESS, et j'en instancie une seconde pour afficher ou récupérer mes données dans une form

    je fais simple

    maClasseContact
    public nom as string
    public prenom as string
    Dim bdd As New InterfaceAccess
    Dim frm As New InterfaceForm
    ...

    Quel est mon soucis :
    - Si je définis le nom de mes champs dans maClasseContact
    - Je ne peux pas passer ces champs dans InterfaceAccess (puisque je peux utiliser InterfaceAccess pour n'importe quelle structure de données)
    - Je pourrai passer un tableau avec le nom des champs InterfaceAccess et utiliser .Fields("nom").value

    Mais alors pour le coup, comment je remonte mes données vers maClasseContact ?
    - Si j'utilise encore un tableau, je vais alourdir mon code que je souhaite le plus light possible sur maClasseContact

    Bon j'espère avoir été clair...

    Merci de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Developpeur VBA, C# et VB.Net =]
    Inscrit en
    juillet 2007
    Messages
    14 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Developpeur VBA, C# et VB.Net =]
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 14 451
    Points : 33 815
    Points
    33 815
    Par défaut
    Salut,

    utiliser des modules de classes pour manipuler les données peut être particulierement efficace lorsque c'est bien concu.

    Un excellent tuto à ce sujet est disponible d'ailleurs https://fauconnier.developpez.com/ar...neral/classes/


    Essaie de garder cela simple :
    - les propriétés en lecture / écriture pour manipuler les valeurs
    - une procédure pour charger (lire) les données depuis les tables
    - une procédure ou macro pour enregistrer les données

    Pour les notions de lecture dans des formulaires, je dirais que c'est plutôt dans les formulaires que tu fais appels à tes classes implémentées.

    1/ ca fonctionne
    2/ ca s'optimise
    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 :
    Apprendre à programmer avec Access 2016 et Access 2019

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

    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
    Membre expérimenté
    Homme Profil pro
    Retraité
    Inscrit en
    juin 2019
    Messages
    912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : juin 2019
    Messages : 912
    Points : 1 400
    Points
    1 400
    Par défaut
    Bonjour,
    Je suis pas certain d'avoir compris !
    Tu veux manipuler des formulaires ce trouvant dans ta base de données Access à partir d'Excel ?

    Ou tu veux à partir d'un formulaire EXCEL manipuler de données de ta base Access ?

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    août 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : août 2007
    Messages : 43
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    Un excellent tuto à ce sujet est disponible d'ailleurs https://fauconnier.developpez.com/ar...neral/classes/
    J'avais déjà lu ce tuto

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    août 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : août 2007
    Messages : 43
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par Thumb down Voir le message
    Bonjour,
    Je suis pas certain d'avoir compris !
    Je veux, à partir d'un formulaire EXCEL, lire une table ACCESS, et gérer l'affichage, ajout, modification... de ce formulaire

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    août 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : août 2007
    Messages : 43
    Points : 35
    Points
    35
    Par défaut
    Mon soucis :

    je veux créer une classe pour gérer mes lecture, écriture... de mes données ACCESS, classe que j'appelle clsGererBddAccess

    je veux créer autant de classes que de tables différentes pour stocker mes données clsContact, clsMetier, clsEntreprise...

    je veux encapsuler clsGererBddAccess dans clsContact, clsMetier, clsEntreprise...

    Evidemment mes champs seront différents pour clsContact, clsMetier, clsEntreprise...


    Alors dans clsGererBddAccess, comment je peux stocker mes données, puisqu'elles seront nécessairement différentes pour chaque tables...

  7. #7
    Membre expérimenté
    Homme Profil pro
    Retraité
    Inscrit en
    juin 2019
    Messages
    912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : juin 2019
    Messages : 912
    Points : 1 400
    Points
    1 400
    Par défaut
    Bonjour,
    si ça te donne des idées!
    Fichiers attachés Fichiers attachés

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    août 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : août 2007
    Messages : 43
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par Thumb down Voir le message
    si ça te donne des idées!
    Bonjour,
    Cela ne répond malheureusement pas à ma question,
    Mais je pense qu'elle est mal posée et donc difficile à comprendre

    Ceci dit, ton exemple est très très intéressant, et il fourmille d'idées à picorer...

    Malgré-tout, je pense avoir trouvé comment résoudre mon problème conceptuel,
    Alors je code et je reviens vers vous pour vous présenter mes trouvailles

    Bon dimanche

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    18 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

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

    Informations forums :
    Inscription : novembre 2003
    Messages : 18 959
    Points : 54 924
    Points
    54 924
    Billets dans le blog
    128
    Par défaut
    Salut.

    Le but d'une classe perso, c'est de généraliser et de systématiser... Du coup, une classe par table, c'est foireux dès le départ... Tu ne vas pas recréer une classe perso lorsque tu crées une nouvelle table dans Access, ça n'a pas de sens.

    Peut-être pourrais-tu expliquer mieux ton besoin?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. [RMI] problème Création *_stub.class et *_skel.class
    Par philobedo dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 29/05/2006, 20h03
  2. Problème avec une classe... "without object"
    Par z980x dans le forum C++
    Réponses: 8
    Dernier message: 27/04/2006, 16h00
  3. [PHPMailer] problème avec la classe phpmailer
    Par sansouna24 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 08/04/2006, 16h51
  4. Problème avec la classe Calendar
    Par afrikha dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 30/03/2006, 08h48
  5. Réponses: 9
    Dernier message: 25/09/2005, 16h33

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