Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Modifier la valeur d'un contrôle d'état à l'ouverture

4 réponses
Avatar
Paul Florent
Bonjour à tous,
sous Access 2007
J'ai un formulaire avec deux boutons me permettant d'ouvrir le même état
mais avec une condition "where" différente.
Je souhaiterais qu'en fonction du bouton avec lequel j'ouvre l'état
le contenu d'un contrôle zone de texte change de valeur.
Que dois je faire ?
Merci par avance pour votre aide
Paul

4 réponses

Avatar
Fabien
Paul Florent wrote:
Bonjour à tous,
sous Access 2007
J'ai un formulaire avec deux boutons me permettant d'ouvrir le même état
mais avec une condition "where" différente.
Je souhaiterais qu'en fonction du bouton avec lequel j'ouvre l'état
le contenu d'un contrôle zone de texte change de valeur.
Que dois je faire ?
Merci par avance pour votre aide
Paul


Salut,
Sur depuis 2003 la commande docmd.openreport permet de passer des arguments.
Ces arguments peuvent être recupere dans l'evenement sur ouverture de
l'etat. Cf OpenArgS dans l'aide
"Propriété OpenArgs
Voir aussiS'applique àExempleDétailsDétermine l'expression chaîne
spécifiée par l'argument OpenArgs de la méthode OpenForm ayant ouvert un
formulaire. Variant en lecture/écriture.

expression.OpenArgs
expression Obligatoire. Expression renvoyant l'un des objets
figurant dans la liste Application.

Remarques
Vous ne pouvez utiliser cette propriété que dans une macro ou dans
Visual Basic avec la méthode OpenForm de l'objet DoCmd. Le paramètre de
cette propriété n'est accessible qu'en lecture, quel que soit le mode.

Pour utiliser la propriété OpenArgs, ouvrez un formulaire à l'aide de la
méthode OpenForm de l'objet DoCmd et attribuez l'expression chaîne
souhaitée à l'argument OpenArgs. Vous pouvez ensuite utiliser la valeur
de la propriété OpenArgs dans le code du formulaire tel qu'une procédure
événementielle Open. Vous pouvez également faire référence à la valeur
de cette propriété dans une macro telle qu'une macro Ouverture ou dans
une expression (par exemple une expression définissant la propriété
ControlSource d'un contrôle du formulaire

Supposons, par exemple, que le formulaire que vous ouvrez soit une liste
de clients affichée en continu. Si vous souhaitez que l'enregistrement
d'un client particulier devienne actif à l'ouverture du formulaire, vous
pouvez attribuer le nom du client à la propriété OpenArgs et utiliser
l'action FindRecord dans une macro Ouverture pour activer
l'enregistrement dont vous avez spécifié le nom de client.

Exemple
Dans l'exemple suivant, la propriété OpenArgs est utilisée pour ouvrir
un formulaire Employés sur un enregistrement donné et illustre comment
la méthode OpenForm sert à définir la propriété OpenArgs. Vous pouvez
exécuter cette procédure comme vous le souhaitez (par exemple, après un
événement AfterUpdate dans une boîte de dialogue personnalisée
permettant d'entrer les nouvelles informations sur un employé).

Sub OpenToCallahan()
DoCmd.OpenForm "Employees", acNormal, , , acReadOnly, _
, "Callahan"
End Sub

Sub Form_Open(Cancel As Integer)
Dim strEmployeeName As String
' If OpenArgs property contains employee name, find
' corresponding employee record and display it on form. For
' example,if the OpenArgs property contains "Callahan",
' move to first "Callahan" record.
strEmployeeName = Forms!Employees.OpenArgs
If Len(strEmployeeName) > 0 Then
DoCmd.GoToControl "LastName"
DoCmd.FindRecord strEmployeeName, , True, , True, , True
End If
End Sub

"
L'autre solution c'est d'affecter ton controle étiquette.caption =
Forms![Nomduformulaire].[NomDelaZoneFiltre] dans l'événement Sur
Ouverture de ton etat
@+
Avatar
Paul Florent
Pardonnez moi, je suis sous Access 2003.

Voici quelques précisions :
Sur mon formulaire, j'ai deux boutons :
"Liste de toutes les factures" et
"Liste des factures payées"
Ces deux boutons ouvrent le même formulaire, mais le second avec une
condition where
Pour le premier : DoCmd.OpenReport "E_Factures_Liste", acViewPreview
Pour le second : DoCmd.OpenReport "E_Factures_Liste", acViewPreview, ,
"F_DatePaiement >" & 1

Je souhaiterais obtenir dans une zone de texte ou dans une étiquette de
l'état "E_Factures_Liste",
Le texte "Liste de toutes les factures" dans le premier cas et
"Liste des factures payées" dans le second cas,
mais je ne sais pas comment faire !!!

Merci de m'aider
A+
Paul
Avatar
Fabien
Paul Florent wrote:
Pardonnez moi, je suis sous Access 2003.

Voici quelques précisions :
Sur mon formulaire, j'ai deux boutons :
"Liste de toutes les factures" et
"Liste des factures payées"
Ces deux boutons ouvrent le même formulaire, mais le second avec une
condition where
Pour le premier : DoCmd.OpenReport "E_Factures_Liste", acViewPreview
Pour le second : DoCmd.OpenReport "E_Factures_Liste", acViewPreview, ,
"F_DatePaiement >" & 1

Je souhaiterais obtenir dans une zone de texte ou dans une étiquette de
l'état "E_Factures_Liste",
Le texte "Liste de toutes les factures" dans le premier cas et
"Liste des factures payées" dans le second cas,
mais je ne sais pas comment faire !!!

Merci de m'aider
A+
Paul




Salut,
Le contenu du filtre est dans me.filter, donc test.
me.MonTitre=iif(nz(Me.filter,"")="","Liste de toutes les
factures","Liste des Factures payées") si c'est dans l'evenement sur
ouverture de l'etat
ou
dans la propriété source du controle MonTitre
=iif(nz(Me.filter;"")="";"Liste de toutes les factures";"Liste des
Factures payées")
@+
Avatar
Paul Florent
Fabien,
Merci pour ton aide,
ça marche très bien.
Paul