Probleme de varaible ACCES

Signaler
Messages postés
9
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
13 mars 2008
-
Messages postés
9
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
13 mars 2008
-
bonjour,

j'ai un problème avec des variables public dans ACCESS.

voila, j'ai une variable "Pays_S" déclaré comme variable PUBLIC dans un formulaire. Dans ce formulaire je n'ai pas de problème j'arrive a utiliser la variable dans toutes les SUB du FORM.
cependant ce formulaire me sert a faire une sélection a l'aide de cette variable pour ouvrir un autre formulaire.

Le problème est le suivant, il faut que récupère le valeur de "Pays_S" dans le formulaire que j'ouvre pour faire une gestion ... lorsque je tape "Pays_S" dans mon code du deuxième formulaire il me reconnait la variable, mais elle est "Vide".

Comment faire pour faire conserver la valeur de la variable?

Merci d'avance

10 réponses

Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

Déclares ta variable dans un module(.bas) et cela devrait fonctionner...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
9
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
13 mars 2008

merci beaucoup de l'information ca marche super!!

juste une précision, si je tape du code dans un module et que je veux réutiliser le module dans plusieurs formulaire comment faut il l'écrire dans le formulaire

exemple je crée un module (.bas) RECHERCHE qui serait une fonction récurente qu'il faut que j'utilise dans du code de plusieurs formulaires. comment utiliser le module?
faut il juste taper le nom du module dans la SUB du formulaire?

merci encore!
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

Idem....Si tu fais une fonction ou une sub récurente, et que tu souhaites l'utiliser dans plusieurs formulaire, tu la déclare en public..sinon tu la déclares en Private et elle ne sera utiliser que dans ton module et ou formulaire...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
9
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
13 mars 2008

Merci ca marche!

J'ai mis mon code récurrent dans un module "X" et dans une SUB de ce module "Sub_X" et j'appel "Sub_X" dans mes formulaires. Hors dans "Sub_X" je gère des champs qui sont commun aux formulaires.

Le problème c'est qu'il ne me reconnait pas les champs des formulaires qui utilisent "Sub_X". Je pensais que les modules était indépendant et que le fait de les appeller dans un formulaire suffisait pour faire le lien avec les formulaires!

Comment faire pour dire a "Sub_X" de prendre en compte le formulaire "Form_Y" qui fait appel a "Sub_X"

En effet dans "Sub_X" je gère par exemple le champ PAYS présent dans "Form_Y"

exemple dans "Sub_X":
Public Sub Sub_X()
If [PAYS] = "France" Then
......
End sub

et dans "Form_Y":
Private Sub Form_Current()
    Sub_X
End Sub
 Mais si je fais que ça il me dit "PAYS" inconnu, je pense qu'il faut mettre une variable ou fair une déclaration pour dire a "Sub_X" dans quel formulaire il faut qu'il prenne les infos...
Peux tu m'aider?
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
salut,

il faut passer un argument

exemple dans "Sub_X":
Public Sub Sub_X(byval sValue as string)
If sValue = "France" Then
......
End sub

et dans "Form_Y":
Private Sub Form_Current()
    Sub_X [PAYS]
End Sub

++
<hr size ="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
9
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
13 mars 2008

merci de l'info, je vais essayer!
Messages postés
9
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
13 mars 2008

je viens d'essayer et je viens de m'apercevoir que je me suis un peu planté dans ma question!! DESOLE...

mais vous m'avez permis d'avancer quand même.

je reformule ma question:

exemple dans "Sub_X":
Public Sub Sub_X(byval FormValue as string)
    Forms.[" & FormValue & "].[Série].Visible = False
......
End sub

ou "FormValue" sert de nom de Formulaire et "Série" est le nom du champ conserné

et dans "Form_Y":
Private Sub Form_Current()
    Sub_X [Form_Y]
End Sub

le but étant de cacher le champ "Série" du fomulaire "Form_Y" ou autres a partir de Sub_X.
le problème est que dans "Sub_X" je n'arrive pas a trouver la synthaxe pour la ligne en rouge. Je ne comprend pas si je tape :
Forms.[Form_Y].[Série].Visible = False
ca marche

pouvez vous m'aider?

merci encore de votre aide!
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

Je serais tenté de faire(pas testé) :

Public Sub Sub_X(MyForm As Form, MyCtrl as Object)

    MyForm.MyCtrl.visible = False
......
End sub

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
explo
(salut ) -> un objet a déjà un parent, donc pas de FORM_VARIABLE.CONTRÔLE_VARIABLE

on passe directement et uniquement CONTRÔLE_VARIABLE

de plus c'est du VBA donc type userform normalement, pas form
(à vérifier)

saka17 -> tu as là toutes les cartes en main avec les réponses apportées. te reste à faire des tests ;)
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
9
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
13 mars 2008

merci beaucoup de votre aide, aprés adaptation ca marche super!

@+