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

Modélisation Discussion :

Tables et code VBA utilisé dans plusieurs bases de données Access


Sujet :

Modélisation

  1. #1
    Membre régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 273
    Points : 109
    Points
    109
    Par défaut Tables et code VBA utilisé dans plusieurs bases de données Access
    Bonjour,

    J'ai plusieurs tables avec des codes VBA associés et tous ces éléments sont utilisés dans plusieurs base de données différentes.

    Le problème est que lorsque je modifie dans une base de données, je dois tout modifier dans les autres bases, c'est une gestion très lourde. Je cherche un moyen de "centraliser" tous ces éléments pour ne les modifier qu'une seule fois.

    Pour les tables, je crois que le fait d'utiliser les tables liées, réglerait mon problème.

    Pour les codes VBA, je n'ai pas trouvé de façon de procéder.

    Quelqu'un a-t-il une idée et peut-il me confirmer pour les tables, à l'effet que mon orientation est la bonne ?

    Merci.

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 735
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 735
    Points : 14 756
    Points
    14 756
    Par défaut
    bonjour,
    tu peux mettre tout le code commun dans une base à part puis l'ajouter en référence à tes autres bases (menu VBA, onglet Outils / Références):

    Nom : _0.JPG
Affichages : 364
Taille : 46,9 Ko

    Pour les tables, c'est la bonne option.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 273
    Points : 109
    Points
    109
    Par défaut
    Bonjour tee_grandbois,

    Je vais tenter cette approche, elle me semble très intéressante et ça risque de me simplifier la vie énormément.

    Cependant, pour en faire l'essai, il me faudra un certain temps, donc je ne mettrai pas immédiatement Résolu mais je vous confirme que je vais le mettre Résolu dès que je vais en avoir fait l'essai et que ça va être fonctionnel.

    Merci encore une fois de votre très grande implication à donner des réponses à mes différentes interrogations.

  4. #4
    Membre régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 273
    Points : 109
    Points
    109
    Par défaut
    Bonjour tee_grandbois,

    Je comprend le principe mais j'ai vérifié mes références et aucun LibTGL ou LibCmnMdl et je vois que c'est un .mdb alors que j'ai un .accdb.

    J'ai cherché comment créer ces références mais je ne trouve rien, est-ce que je dois télécharger quelque chose de particulier ?

    Pourrais-je vous demander plus de précisions tout en tenant compte du .accdb s.v.p.

    Pour ma part je n'ai, jusqu'à présent, utilisé que des références existantes et en provenance de Microsoft, alors on peut dire que je n'y connais pas grand chose.

    Merci.

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 735
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 735
    Points : 14 756
    Points
    14 756
    Par défaut
    bonjour,
    Je comprend le principe mais j'ai vérifié mes références et aucun LibTGL ou LibCmnMdl et je vois que c'est un .mdb alors que j'ai un .accdb.
    c'est normal, ce n'est qu'un exemple pour montrer qu'on peut ajouter une base Access en référence (mdb ou accdb).
    la base LibTGL est un module de classe de gestion d'images développée par Arkham46 et disponible sur le site.
    la base LibCmnMdl m'appartient, elle regroupe du code commun à plusieurs bases.

    Si tu transfères tous tes modules communs dans une nouvelle base, tu peux l'ajouter en référence à toutes les bases susceptibles de l'utiliser:
    une fois dans VBA il faut cliquer sur Outils, puis Références, cliquer sur Parcourir (1) , choisir le dossier où se trouve la base des modules, choisir le type de fichier (2), cliquer sur la base qui contient le code (3):
    Nom : _0.JPG
Affichages : 350
Taille : 42,5 Ko
    ne pas oublier ensuite de supprimer tout le code commun dans chaque base
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  6. #6
    Membre régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 273
    Points : 109
    Points
    109
    Par défaut
    Bonjour tee_grandbois,

    J'aimerais confirmer avec vous, dans cette procédure, est-ce que les formulaires seront traités comme le code ?

    Merci.

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 735
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 735
    Points : 14 756
    Points
    14 756
    Par défaut
    bonjour,
    J'aimerais confirmer avec vous, dans cette procédure, est-ce que les formulaires seront traités comme le code ?
    je n'ai pas bien compris la question.
    Par contre, ce que je peux dire s'agissant des formulaires, c'est que les évènements appartiennent à chaque formulaire puisque ce sont des procédures privées (tous ce qui commence par Private Sub) mais on peut mutualiser du code à condition de ne pas utiliser Me. pour faire référence à l'objet formulaire.

    Par contre, on peut passer le formulaire en cours (Me) en paramètre.

    Voici un exemple simple d'utilisation :
    - code appelé dans le formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub btnSuivant_Click()
    Call sEnregSuivant(Me)
    End Sub
    - code mutualisé dans la base contenant tout le code commun:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Sub sEnregSuivant(frm As Form)
    On Error GoTo GestionErreur
    frm.Form.Recordset.MoveNext
    Exit Sub
     
    GestionErreur:
    Select Case err.Number
    Case 3021
        MsgBox "Vous êtes sur le dernier enregistrement", vbExclamation, IIf(frm.Caption <> "", frm.Caption, frm.Name)
    Case Else
        MsgBox "Erreur N°: " & err.Number & " - " & err.DESCRIPTION, vbCritical, IIf(frm.Caption <> "", frm.Caption, frm.Name)
    End Select
    End Sub
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  8. #8
    Membre régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 273
    Points : 109
    Points
    109
    Par défaut
    Bonjour tee_grandbois,

    En fait je crois que vous avez bien répondu à ma question, je voulais savoir si c'était la même chose pour les formulaires que pour le code, c'est-à-dire, placer ceux-ci dans une autre base avec le code correspondant et pouvoir utiliser tant les tables (liées), le code et les formulaires correspondants dans plusieurs bases et si je change quelque chose dans un de ces éléments, automatiquement il sera changé dans toutes les bases qui font appel à ceux-ci.

    Il ne me reste qu'à réfléchir à tout ça et tenter l'intégration après, j'en suis certain, plusieurs essais/erreurs car ça semble assez complexe mais c'est une façon de procéder que j'aimerais beaucoup implémenter dans mes bases.

    Merci.

  9. #9
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 735
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 735
    Points : 14 756
    Points
    14 756
    Par défaut
    je voulais savoir si c'était la même chose pour les formulaires que pour le code, c'est-à-dire, placer ceux-ci dans une autre base avec le code correspondant et pouvoir utiliser tant les tables (liées), le code et les formulaires correspondants dans plusieurs bases et si je change quelque chose dans un de ces éléments, automatiquement il sera changé dans toutes les bases qui font appel à ceux-ci.
    le principe des bases fractionnées en dorsale(s)/frontale(s) consiste à regrouper toutes les tables dans une seule base (la dorsale ou plusieurs si des tables sont susceptibles de dépasser 2 Go) et les formulaires, les états et les requêtes (la ou les frontale(s)), le code commun peut effectivement être placé dans une troisième base qui sera référencée dans les frontales.
    Cependant, un formulaire, un état ou une requête ne peut pas être "référencé" dans plusieurs frontales, il faut dupliquer les objets dans chaque base qui l'utilise.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  10. #10
    Membre régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 273
    Points : 109
    Points
    109
    Par défaut
    Bonjour tee-grandbois,

    Je crois que je vais faire une très grande réflexion avant de toucher quoi que ce soit.

    Merci pour toute l'info et je vous tiens au courant.

  11. #11
    Membre régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 273
    Points : 109
    Points
    109
    Par défaut
    Bonjour tee_grandbois,

    Tout d'abord désolé pour le temps à retourner une réponse.

    J'ai longuement réfléchi et je crois que je ne pourrai pas aller dans cette direction car, le but premier était de ne modifier qu'à un seul endroit tous les éléments soit la table, les formulaires, les requêtes, les états ainsi que le code et selon ce que j'ai compris de vos explications, les formulaires, requêtes et états doivent être dupliqués dans chacune des bases, ce qui implique que s'il y une modification dans un de ces éléments, je devrai alors la répercuter dans toutes les bases contenant ces mêmes éléments.

    La solution ne répond pas à mes besoins initiaux. Peut-être que dans les versions futures d'Access ce sera possible mais pour l'instant il ne semble pas alors je vais abandonner cette avenue et continue à créer en dupliquant le travail.

    Merci des très grands efforts que vous avez fait, vous avez répondu à un très grand pourcentage de mon besoin et surtout vous m'avez montré une avenue que je n'avais pas très explorée.

    Bonne journée et encore merci de vos efforts.

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

Discussions similaires

  1. initialiser une table dans une base de donnée access
    Par asprog dans le forum Débuter
    Réponses: 0
    Dernier message: 01/08/2009, 22h47
  2. Réponses: 3
    Dernier message: 24/09/2008, 14h33
  3. Sauvegarde d'une table dans une base de données Access
    Par h_adil dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 26/05/2008, 21h26
  4. Réponses: 1
    Dernier message: 21/04/2008, 12h06
  5. Réponses: 1
    Dernier message: 19/06/2007, 11h56

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