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 :

Application avec plusieurs autres sous-applis


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 19
    Points : 17
    Points
    17
    Par défaut Application avec plusieurs autres sous-applis
    Bonjour,

    Cela fait plusieurs jours que je cherche désespérément sur le net de la doc sur les références vers d'autres databases mde, mais je trouve jamais rien de très poussé

    J'ai une application qui ouvre un menu principal avec une liste de nos dossiers, avec des filtres dès qu'un dossier est selectionner on on choisis par bouton les différens écrans de travail ou d'informations à leur sujet, plus d'autres boutons pour d'autres sous-menu pour des utilitaires et écran de stats.

    Le projet devient tellement volumineux et complexe que chaque fois qu'il faut ajouter d'autres fonctionnalités, ou modifier l'écan ontenant les stats, créés et modifiés par mon collègue, cela devient compliqué pour tout recompilé, parfois c'est juste 1 petite modif par ci par là (en plus du casse-tête de savoir si on compile la bonne version)
    Alors mon idée était de séparer l'appli en plusieurs databases mde, donc que j'appelle des sous-applis.
    J'ai donc une appli principale où les boutons de menus outils et celui des stats ouvres les forms des autres applis. Pour cela j'ai mis dans mon applis principale les références vers les autres.
    Voici une idée de comment:

    AppMain ayant les références :
    ->AppWrkScreen
    ->AppUtilities
    ->AppScoreBaord

    Le problème c'est que je n'arrive pas à trouver comment on fait dans le cas où par ex. l'appli AppUtilities doit appeler une fonction de AppWrkScreen, voir même du module principale AppMain.
    De même pour les des variables que j'ai mis dans une classe, comment faire, si je la met et déclare dans AppMain, je n'arrive pas à l'appeler par les sous-applis.

    Alors j'ai constaté aussi que les références ne sont pas lue de la même facon de référencer le mdb ou le mde. On dirait que comme le mde est compilé, le code est moins accessible, tout comme les tables liées, que je suis obligée de dédoubler dans chaque applis.


    J'espère avoir su expliquer mon problème et que vous pourrais m'aider, car la je désespère. Je vous remercie d'avance.

  2. #2
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Bon, je sais que c'est pas très bien de faire remonter les discussions , mais si quelqu'un aurait juste une petite piste, ca m'aiderai beaucoup. Je tourne en rond su ce problème et cela m'oblige à faire du sale code (doublons de procédure et fonctions, de tables liées, queries) qui à terme sera ingérable .

    Je vous remercie d'avance pour votre aide.

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Alors, j'ai un peu avancé dans mes recherches et je voulais faire partager, pour ceux à qui cela pourrait intéressé un jour, ce que j'ai trouvé:
    Le problème est que je n'arrive pas à trouver comment on fait dans le cas où par ex. la sous-applis AppUtilities doit appeler une procédure ou fonction qui se trouve dans la sous-applis AppWrkScreen, ou même une procédure/fonction se trouvant dans un module de l'applis principale AppMain.
    Alors pour la communication entre applis, c'est tout bête (mais il fallait y penser) j'utilise maintenant dans l'application principale les modules qui contiennent les fonctions et procédures en "Public". Depuis les sous-applis je peu ainsi les appelées avec tout simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Application.Run "NomSub", "param1", "param2",...
    'ou pour une fonction
    x=Application.Run("NomSub", "param1", "param2",...)
    Maintenant, c'est un choix de les mettres dans l'applis principale, si j'ai pas le choix que de la laisser dans la sous-applis, j'applique un nommage adapté, en indiquant dans le début du nom d'abord le nom de la référence applis, ainsi je distinct bien les procédures "Public".
    De même pour les variables que j'ai déclarés dans une classe, comment faire, si je la met et la déclare dans AppMain, pour l'appeler dans les sous-applis.
    Pour cela, j'ai donc mis aussi dans l'applis principale, la classe contenant mes variables globales, et les autres dans les sous-applis, pareil avec le meme systeme de nommage, que je rappelle à chaque sous-applis via une fonction "Public":
    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
    33
     
    ' Dans General Functions de la appli principale AppMain
    Public mVar As New mVariables ' 1ere et unique fois à déclarer en New
     
    Public Function MainTakeVar() As Object
    Set MainTakeVar = mVar
    End Function
     
    ' Dans General Functions de la sous-applis AppUtilities
    Public mVar As Object
    Public uVar As New uVariables ' 1ere et unique fois à déclarer en New
     
    'Dans le 1er form que l'on ouvre de la sous-applis
    Sub Form_Open(Cancel As Integer)
    Set mVar = Application.Run("MainTakeVar")
    ...
    End Sub
     
    ' Si besoin de la classe uVar dans une autre sous-applis, pareil:
    '
    ' dans la sous-applis AppUtilities
    Public Function UtilTakeVar() As Object
    Set UtilTakeVar = uVar
    End Function
    ' dans la sous-applis AppWrkScreen 
    Public mVar As Object
    Public uVar As Object
    'Dans le 1er form 
    Sub Form_Open(Cancel As Integer)
    Set mVar = Application.Run("MainTakeVar")
    Set uVar = Application.Run("UtilTakeVar")
    ...
    End Sub
    Attention de ne mettre qu'une seule fois "New" et si il y a eu des valeurs à donnés en "Get", bien le faire avant de la récupérer dans la sous-applis.

    Voilà, c'est un peu complexe à mettre en place et de bien s'organiser, mais après ca fonctionne super bien.

    Mais je reste ouverte à de meilleurs idées.

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/02/2008, 20h22
  2. [Compiler] Compiler une application avec plusieurs fichiers m
    Par ploukinet dans le forum MATLAB
    Réponses: 3
    Dernier message: 10/05/2007, 18h34
  3. Application avec plusieurs interfaces graphiques
    Par Morpheus2144 dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 26/05/2006, 00h29
  4. [MFC]Application avec plusieurs vues
    Par tus01 dans le forum MFC
    Réponses: 2
    Dernier message: 22/02/2006, 17h17

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