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

IHM Discussion :

Recuperer la valeur d'une variable d'une autre base


Sujet :

IHM

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut Recuperer la valeur d'une variable d'une autre base
    Bonjour,

    J'ai une base Access qui sert de menu pour des autres applications Access.
    Ma question:

    Dans mon application menu, j'ai une variable globale (écrit dans une module),
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Mmec_glo as String
    et j'ai besoin de l'utiliser dans les autres applications.

    Est-ce que c'est possible de recuperer cette valeur, une fois que je suis dans la vrai application (pas dans le menu, qui reste toujours ouvert)?

    OBS: la valeur de cette variable reste toujours dans une zone de texte invisible du menu des applications.

    Merci d'avance.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonjour marc27,
    de quelle manière appelles-tu les applications depuis le menu ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Bonjour ilank.

    Je l'ouvre par biais du code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Static ac As Access.Application: Set ac = New Access.Application
    acapp.AutomationSecurity = msoAutomationSecurityLow
    ac.Visible = True
    ac.OpenCurrentDatabase ("E:\Data\Impression\Gestion Clients.mdb")
    En fait, j'arrive à utiliser cette valeur par biais d'une table liée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Set rs = New ADODB.Recordset
    rs.Open "T_logs_Gestion_Clients", CurrentProject.Connection, _
    adOpenDynamic, adLockOptimistic
    With rs
       .AddNew
       ![USER] = MEC.Value
       ![Time] = Now
       .Update
    End With
    où MEC est le champ du formulaire menu.
    Après, lors de l'ouverture de la nouvelle application (Gestion Clients), je retrouve le dernier enregistrement de cette table.

    Le problème arrive quand plus d'un utilisateur fait ça au même temps.
    C'est ça qui je voudrais eviter, en appelant directement la valeur de l'application menu...

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Tu es donc dans un environnement multipostes; tu peux tenter en ajoutant à cette table le nom de l'ordinateur de l'utilisateur. Le nom de l'ordinateur peut être récupéré en VBA par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     environ("COMPUTERNAME")
    ; puisque chaque utilisateur a son poste de travail, maintenant au lieu d'aller chercher le dernier enregistrement de la table, l'application "Gestion clients" va lire le dernier enregistrement correspondant à l'ordinateur de l'utilisateur.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Merci beaucoup pour l'idée !

    Je vais l'essayer demain matin et je poste après.

    A+

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    J'ai essayé, mais ça sert pas, car l'application est dans un server, et donc tous les utilisateurs ont un même nom d'ordinateur...

    est-ce que c'est possible de recuperer l'ID utilisateur du Windows??

  7. #7
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 263
    Points : 19 428
    Points
    19 428
    Billets dans le blog
    63
    Par défaut
    Salut,

    je ne connais pas la methode pour recuperer la valeur d'une variable globale declarer dans un module d'une autre BD, mais tu peux utiliser une fonction publique que tu declare dans le module de ta BD menu du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public function mavariable()
    mavariable=Mmec_glo
    end function

    et tu appelle cette fonction depuis une autre application

    de la maniere suivante (si ta bd menu est "c:\Rep\dbmenu.mdb")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim str As String
     
    Set app = New Access.Application
     
    app.OpenCurrentDatabase "c:\Rep\dbmenu.mdb"
     
    ' appelle de la fonction "MaVariable" et recuperation de la valeur dans str
    str = app.Run("MaVariable") 
     
    MsgBox (str)  ' affichage de la valeur
     
    ...
    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Maintenant je n'ai pas le temps pour tester ta solution User (cette fois c'est vrai!),

    Mais je vais l'essayer demain matin


    Merci beaucoup et à demain.

  9. #9
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Heu non Marc, l'application ne tourne pas sur le serveur mais sur le poste client qui charge le fichier. A moins que tu utilises un outil comme Citrix.

    Nom de l'ordinateur : Environ("COMPUTERNAME")
    Nom de la session : Environ("USERNAME")

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Merci beaucoup User et ilank.

    Le Environ("username") suffi pour mes applications
    Mais je vais réfléchir sur le sujet de la function...


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

Discussions similaires

  1. [Débutant] Affecter une variable d'une classe C# à une variable Javascript
    Par SultanGeek dans le forum C#
    Réponses: 0
    Dernier message: 20/06/2015, 20h42
  2. [AC-2000] Comment Recuperer la valeur d'un requete dans une variable
    Par michel.r06 dans le forum VBA Access
    Réponses: 2
    Dernier message: 16/01/2015, 12h26
  3. Comment recuperer la valeur d'un variable dans une methode actionlisner
    Par javacafe dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 22/05/2014, 15h39
  4. [XSLT] comment recuperer la valeur d'un noeud dans une variable
    Par enzostar dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 06/04/2010, 23h03
  5. Réponses: 0
    Dernier message: 21/01/2009, 13h52

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