OVH Cloud OVH Cloud

Openargs multi critére

5 réponses
Avatar
brucat
Bonjour,

J'ai un formulaire A avec un controle X et un controle Y (entre autre)
J'ai sur ce formulaire un bouton qui me permet d'ouvrir un formulaire B pour
ajouter un nouvelle enregistrement.
Je dois reprendre la valeur de X et de Y et compléter les autres controles.

Pour la récupération de la valeur X, j'ai fait sur l'action clic du bouton:
....
critere = Me![controleX]

DoCmd.OpenForm stDocName, , , , acFormEdit, acDialog, critere
.....

Sur l'ouverture du formulaire B

me.X = CDbl(Me.OpenArgs)

Comment faire pour récupérer les 2 valeurs X et Y.

En complement, Y est du type texte .

Merci pour votre aide

Brucat

5 réponses

Avatar
3stone
Salut,

"brucat"
| J'ai un formulaire A avec un controle X et un controle Y (entre autre)
| J'ai sur ce formulaire un bouton qui me permet d'ouvrir un formulaire B pour
| ajouter un nouvelle enregistrement.
| Je dois reprendre la valeur de X et de Y et compléter les autres controles.
|
| Pour la récupération de la valeur X, j'ai fait sur l'action clic du bouton:
| ....
| critere = Me![controleX]
|
| DoCmd.OpenForm stDocName, , , , acFormEdit, acDialog, critere
| .....
|
| Sur l'ouverture du formulaire B
|
| me.X = CDbl(Me.OpenArgs)
|
| Comment faire pour récupérer les 2 valeurs X et Y.
|
| En complement, Y est du type texte .


Tu peux concaténer tes valeurs...
critère= Me!controlX & "," & Me!controlY

Sur ouverture, tu fait :

Dim Crit as variant
Crit = Split(me.Openargs , ",")

Crit(0) et Crit(1) contiendrons les valeurs...

Si la virgule peut déjà se retrouver dans les champs, change de séparateur.


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
brucat
Bonjour,
merci pour la réponse,
Je vais essayé.
Brucat
"3stone" a écrit dans le message de news:

Salut,

"brucat"
| J'ai un formulaire A avec un controle X et un controle Y (entre autre)
| J'ai sur ce formulaire un bouton qui me permet d'ouvrir un formulaire B
pour
| ajouter un nouvelle enregistrement.
| Je dois reprendre la valeur de X et de Y et compléter les autres
controles.
|
| Pour la récupération de la valeur X, j'ai fait sur l'action clic du
bouton:
| ....
| critere = Me![controleX]
|
| DoCmd.OpenForm stDocName, , , , acFormEdit, acDialog, critere
| .....
|
| Sur l'ouverture du formulaire B
|
| me.X = CDbl(Me.OpenArgs)
|
| Comment faire pour récupérer les 2 valeurs X et Y.
|
| En complement, Y est du type texte .


Tu peux concaténer tes valeurs...
critère= Me!controlX & "," & Me!controlY

Sur ouverture, tu fait :

Dim Crit as variant
Crit = Split(me.Openargs , ",")

Crit(0) et Crit(1) contiendrons les valeurs...

Si la virgule peut déjà se retrouver dans les champs, change de
séparateur.


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw








Avatar
brucat
merci beaucoup
cela a fonctionné. je ne connaissait pas Split

Par contre, j'ai un souci du meme acabit concernant mon critére type texte

Je recupere bien mon openargs à l'ouverture du formulaire.
Cela doit remplir un controle qui est un numéro auto.
j'ai essayé
me.controleX.value = me.openargs
me.controleX.defaultvalue = me.openargs

Résultat : mon controleX ne prend par en compte mon critére.

merci pour le complément d'information
Brucat

"3stone" a écrit dans le message de news:

Salut,

"brucat"
| J'ai un formulaire A avec un controle X et un controle Y (entre autre)
| J'ai sur ce formulaire un bouton qui me permet d'ouvrir un formulaire B
pour
| ajouter un nouvelle enregistrement.
| Je dois reprendre la valeur de X et de Y et compléter les autres
controles.
|
| Pour la récupération de la valeur X, j'ai fait sur l'action clic du
bouton:
| ....
| critere = Me![controleX]
|
| DoCmd.OpenForm stDocName, , , , acFormEdit, acDialog, critere
| .....
|
| Sur l'ouverture du formulaire B
|
| me.X = CDbl(Me.OpenArgs)
|
| Comment faire pour récupérer les 2 valeurs X et Y.
|
| En complement, Y est du type texte .


Tu peux concaténer tes valeurs...
critère= Me!controlX & "," & Me!controlY

Sur ouverture, tu fait :

Dim Crit as variant
Crit = Split(me.Openargs , ",")

Crit(0) et Crit(1) contiendrons les valeurs...

Si la virgule peut déjà se retrouver dans les champs, change de
séparateur.


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw








Avatar
3stone
Salut,

"brucat"
| Par contre, j'ai un souci du meme acabit concernant mon critére type texte

au même endroit ? ou ailleurs ?


| Je recupere bien mon openargs à l'ouverture du formulaire.
| Cela doit remplir un controle qui est un numéro auto.

??
Tu as un probléme là !
On ne "remplit" pas un numauto, il se crée lui même !!

ou bien ?

| j'ai essayé
| me.controleX.value = me.openargs
| me.controleX.defaultvalue = me.openargs
|
| Résultat : mon controleX ne prend par en compte mon critére.

Tu veux donner la même valeur à controleX.Value ainsi qu'à controlX.DefaultValue ?

Le premier doit fonctionner...
Le second, écris plutôt : controlX.DefaultValue = """" & me.openargs & """"


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
brucat
Merci beaucoup pour votre aide.

Je sais qu'un numero auto se remplit tout seul mais je ne voulais pas faire
un nouveau formulaire pour afficher les détails d'un enregistrement mais
utiliser le formulaire de saisie.

J'ai trouvé la solution. je n'ai pas uitlisé le openargs mais plutot "Where
condition" de Docmd.openform.

Merci encore

Brucat

"3stone" a écrit dans le message de news:
%
Salut,

"brucat"
| Par contre, j'ai un souci du meme acabit concernant mon critére type
texte

au même endroit ? ou ailleurs ?


| Je recupere bien mon openargs à l'ouverture du formulaire.
| Cela doit remplir un controle qui est un numéro auto.

??
Tu as un probléme là !
On ne "remplit" pas un numauto, il se crée lui même !!

ou bien ?

| j'ai essayé
| me.controleX.value = me.openargs
| me.controleX.defaultvalue = me.openargs
|
| Résultat : mon controleX ne prend par en compte mon critére.

Tu veux donner la même valeur à controleX.Value ainsi qu'à
controlX.DefaultValue ?

Le premier doit fonctionner...
Le second, écris plutôt : controlX.DefaultValue = """" & me.openargs &
""""


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw