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

Macro ouvrir fermer formulaire basé sur une requete parametre

5 réponses
Avatar
jennifer-access
Bonjour,

Je me permets de vous ecrire car j'ai un petit soucis,

le voici sur un bouton de commande j'ai un parametre a inscrire afin d ouvrir un formulaire ( formulaire recherche par refence).
Mon bouton est commandé par une macro OUVRIR/ FERMER FORMULAIRE donc j'ai inscris ouvrir le formulaire ou se trouve la requete ( formulaire recherche par ref) et fermer le formulaire ou se situe le bouton ( formulaire designation)

LE SOUCIS LE VOICI: lorsque je clique sur l bouton et en faite j'decide d annuler au lieu d entrer mon parametre je me retrouve donc avec les deux formulaires fermés donc plus rien.
Logique puisque je demande d ouvrir automatiquement le formulaire quand je clique dessus mais comment faire pour mettre une exception dans le sens où:
si on annule alors réouvrir le formulaire designation (ou se situe le bouton)

Le code du bouton :

Private Sub Commande13_Click()

End Sub

y a juste ca puisque cest une macro


JVOUS REMERCIEE ENORMEMENT !

5 réponses

Avatar
3stone
Salut,

jennifer-access wrote:
le voici sur un bouton de commande j'ai un parametre a inscrire afin
d ouvrir un formulaire ( formulaire recherche par refence).
Mon bouton est commandé par une macro OUVRIR/ FERMER FORMULAIRE donc
j'ai inscris ouvrir le formulaire ou se trouve la requete (
formulaire recherche par ref) et fermer le formulaire ou se situe le
bouton ( formulaire designation)



Pas très clair tout cela...

Qu'est ce que tu entends par "macro" ?
- une macro-commande ?
- ou un module (du code VBA) ?


LE SOUCIS LE VOICI: lorsque je clique sur l bouton et en faite
j'decide d annuler au lieu d entrer mon parametre je me retrouve donc
avec les deux formulaires fermés donc plus rien.
Logique puisque je demande d ouvrir automatiquement le formulaire
quand je clique dessus mais comment faire pour mettre une exception
dans le sens où:
si on annule alors réouvrir le formulaire designation (ou se situe le
bouton)




ou écris tu ton paramètre ?
le principe est de demander le paramètre, si ok, tu continues
si pas de paramètre, tu ne fermes pas...


Le code du bouton :

Private Sub Commande13_Click()

End Sub

y a juste ca puisque cest une macro



ce que tu montres est une Sub vide, pas une macro :-/

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
Albéric MASPAC
Ouille Jennifer !

Prend une pause et relis-toi.
Je t'ai lu au moins 6 fois (en reprenant des parties | concentre-toi !,
Blaise)

*J'ai rien compris !*

En tout cas fais un choix d'usages et de vocabulaire : En Access on
distingue fort bien le code VBA (Sub, Function) des Macros, mais il ne faut
pas mélanger les deux.

Cdt, Blaise.


"jennifer-access" a écrit dans le message de
news:
Bonjour,

Je me permets de vous ecrire car j'ai un petit soucis,

le voici sur un bouton de commande j'ai un parametre a inscrire afin d
ouvrir
un formulaire ( formulaire recherche par refence).
Mon bouton est commandé par une macro OUVRIR/ FERMER FORMULAIRE donc j'ai
inscris ouvrir le formulaire ou se trouve la requete ( formulaire
recherche par
ref) et fermer le formulaire ou se situe le bouton ( formulaire
designation)

LE SOUCIS LE VOICI: lorsque je clique sur l bouton et en faite j'decide d
annuler au lieu d entrer mon parametre je me retrouve donc avec les deux
formulaires fermés donc plus rien.
Logique puisque je demande d ouvrir automatiquement le formulaire quand je
clique dessus mais comment faire pour mettre une exception dans le sens
où:
si on annule alors réouvrir le formulaire designation (ou se situe le
bouton)

Le code du bouton :

Private Sub Commande13_Click()

End Sub

y a juste ca puisque cest une macro


JVOUS REMERCIEE ENORMEMENT !
Avatar
jennifer-access
jennifer-access a écrit le 17/06/2010 à 16h00 :
Bonjour,

Je me permets de vous ecrire car j'ai un petit soucis,

le voici sur un bouton de commande j'ai un parametre a inscrire afin d ouvrir
un formulaire ( formulaire recherche par refence).
Mon bouton est commandé par une macro OUVRIR/ FERMER FORMULAIRE donc
j'ai inscris ouvrir le formulaire ou se trouve la requete ( formulaire
recherche par ref) et fermer le formulaire ou se situe le bouton ( formulaire
designation)

LE SOUCIS LE VOICI: lorsque je clique sur l bouton et en faite j'decide d
annuler au lieu d entrer mon parametre je me retrouve donc avec les deux
formulaires fermés donc plus rien.
Logique puisque je demande d ouvrir automatiquement le formulaire quand je
clique dessus mais comment faire pour mettre une exception dans le sens
où:
si on annule alors réouvrir le formulaire designation (ou se situe le
bouton)

Le code du bouton :

Private Sub Commande13_Click()

End Sub

y a juste ca puisque cest une macro


JVOUS REMERCIEE ENORMEMENT !


Excusez moi,

je vous ré explique donc :

J'ai un bouton de commande qui est commandé par une macro OUVRIR formulaire recherche par Reference et FERMER formulaire désignation ( où se situe le bouton de commande).

Le soucis c'est que lorsque je clique sur le bouton de commande le formulaire recharce par reference est un formulaire basé sur une requete parametre donc j'entre ma reference et tombe sur mmon formulaire recherche par reference Scania et le formulaire d'origine ( celui ou jai cliqué sur le bouton se ferme automatiquement)

J'aimerai savoir si dans ma macro ouvrir fermer javais possibilité ou par un autre moyen ( code vba) de dire en gros:
ouvrir formulaire si parametre et fermer l autre ou si on annule la boite de dialogue qui demande d entrer un parametre alors on ne ferme pas le formulaire


EN VOUS REMERCIANT !
Avatar
3stone
Salut,

jennifer-access wrote:
[...]
je vous ré explique donc :




répondre au questions posées serait bien aussi ;-)


J'ai un bouton de commande qui est commandé par une macro OUVRIR
formulaire recherche par Reference et FERMER formulaire désignation (
où se situe le bouton de commande).

Le soucis c'est que lorsque je clique sur le bouton de commande le
formulaire recharce par reference est un formulaire basé sur une
requete parametre donc j'entre ma reference et tombe sur mmon
formulaire recherche par reference Scania et le formulaire d'origine
( celui ou jai cliqué sur le bouton se ferme automatiquement)




si par "macro" tu entends ceci http://cjoint.com/?gsmSSeOY03
oublie, c'est ingérable et impossible à maintenir.



J'aimerai savoir si dans ma macro ouvrir fermer javais possibilité ou
par un autre moyen ( code vba) de dire en gros:
ouvrir formulaire si parametre et fermer l autre ou si on annule la
boite de dialogue qui demande d entrer un parametre alors on ne ferme
pas le formulaire



L'approche est totalement différente, et il n'y à pas un ou deux
mot magique pour résoudre cela.

Dans un premier temps, tu peux supprimer la fermeture du automatique
formulaire et le faire à partir du second formulaire ouvert.

Par la suite, il faudrait t'intéresser au VBA qui offre un approche
qui permet un véritable prise en main, avec gestion des erreurs
et des événements non prévus/ou prévisibles.
Par le VBA, tu peux vérifier une saisie de critères (dans une zone
de texte d'un formulaire), vérifier si le critère est valide et ensuite
seulement lancer les actions.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
RideHickul
'lut,

1) Je confirme ce que dit Monseigeur 3Stone : pas hyper clair ...
Si j'ai bien compris :
- Tu as 2 formulaires,
- Le premier contient un bouton chargé d'ouvrir le deuxième,
- Le deuxième repose sur une requete paramétrée,
- Tu souhaites que le second formulaire s'ouvre que si celui-ci contient des
données,
- Si il s'ouvre (avec des données donc), le premier formulaire doit se
fermer,
- Si il n'y a pas de donnée, le second formulaire ne doit pas s'ouvrir et le
premier doit rester ouvert.

2) Je confirme ce que dit Monseigeur 3Stone : en vb ce serait plus simple !

3) Si j'ai bien compris, la solution sans vb :

Dans la procédure ci-dessous, je considère que :
- Le champ sur lequel tu souhaite filtré s'appelle Champ
- La requete qui à le paramètre s'appelle Requête1
- Le premier formulaire s'appelle Formulaire1
- Le deuxième formulaire s'appelle Formulaire2
Donc remplace à chaque fois Champ par le nom de ton champ et Requête1 par le
nom de ta requête.

Procédure :
------------
- Commence par enlever le paramètre dans ta requête (si si car on va
"anticiper" un peu pour pouvoir décider si on ouvre le second formulaire ou
pas ...),

- Sur ton premier formulaire, ajoute une zone de texte,

- Nomme cette zone par exemple : "TxtPara" sans les guillemets (pour nommer
: Propriétés - Autre - Nom),

- Crée une macro et active les conditions (Affichage - Condition)

- Dans la colonne "Condition", tout en haut copie et colle l'instruction
suivante :
CpteDom("Champ";"Requête1";"Champ='" & [TxtPara] & "'")>0
(Champ à remplacer 2 fois et Requête1 à remplacer)

- Juste à droite dans la colonne Action, mets OuvrirFormulaire puis,
Dans Nom formulaire indique Formulaire1 (Formulaire1 à remplacer)
Dans Condition Where indique [Champ]=[Formulaires]![Formulaire2]![TxtPara]
(Champ et Formulaire2 à remplacer)
Ne change pas les autres paramètres.

- Sur la deuxième ligne, dans la colonne condition écrits 3 points comme
ci-dessous :
...

- Toujours sur la deuxième ligne, dans la colonne Action met Fermer puis,
Dans Type d'objet indique Formulaire,
Dans nom d'objet indique Formulaire1 (Formulaire1 à remplacer)
Ne change le dernier paramètre.

- Enregistre ta macro (Macro1 par exemple) et ferme-la (la macro bien sûr
...)

- Sur ton Formulaire1 ajoute un bouton de commande puis :
Divers - Exécuter une macro - Indique Macro1 (à remplacer si tu as
personnalisé son nom)

- Enregistre ton formulaire, lance le puis :
Dans la zone de texte, tu saisi ton paramètre,
Tu clique sur ton bouton.

Si des enregistrements correspondent au paramètre saisi, le second
formulaire s'ouvre et le premier se ferme.
Si il n'y a pas d'enregistrement, le premier formulaire reste ouvert et le
second ne s'ouvre pas.

Petites améliorations:
1) Pour permettre de visualiser le nombre d'enregistrements correspondant au
paramètre dès la saisie de celui-ci (avant l'ouverture du 2ème formulaire) :
- Ajoute une zone de texte sur le premier formulaire,
- Dans les propriétés de cette zone dans "Source Controle" (onglet
"Données") copie et colle l'instruction suivante :
=CpteDom("Champ";"Requête1";"Champ='" & [TxtPara] & "'")
(Champ à remplacer 2 fois et Requête1 à remplacer)

2) Dans la macro, une "boitemessage" pourrait peut-être être ajoutée avec
"il n'y a pas d'enregistrement correspondant à votre paramètre"
Je te laisse chercher ...

Tiens-moi au courant ...

RideHickul




"jennifer-access" a écrit dans le message de
news:
Bonjour,

Je me permets de vous ecrire car j'ai un petit soucis,

le voici sur un bouton de commande j'ai un parametre a inscrire afin d
ouvrir
un formulaire ( formulaire recherche par refence).
Mon bouton est commandé par une macro OUVRIR/ FERMER FORMULAIRE donc j'ai
inscris ouvrir le formulaire ou se trouve la requete ( formulaire
recherche par
ref) et fermer le formulaire ou se situe le bouton ( formulaire
designation)

LE SOUCIS LE VOICI: lorsque je clique sur l bouton et en faite j'decide d
annuler au lieu d entrer mon parametre je me retrouve donc avec les deux
formulaires fermés donc plus rien.
Logique puisque je demande d ouvrir automatiquement le formulaire quand je
clique dessus mais comment faire pour mettre une exception dans le sens
où:
si on annule alors réouvrir le formulaire designation (ou se situe le
bouton)

Le code du bouton :

Private Sub Commande13_Click()

End Sub

y a juste ca puisque cest une macro


JVOUS REMERCIEE ENORMEMENT !