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

question un peu compliquée

8 réponses
Avatar
eric.zzzz
Bonjour,
Un clic sur le bouton1 de mon menu principal m'ouvre un formulaire F1.
Ce formulaire F1 est compos=E9 de 2 sous-formulaire : un SF1 bas=E9 sur
une requete1 et un SF2 bas=E9 sur une requete2.
Ces 2 requetes ont un champ1 en commun (c'est pas une cl=E9 primaire,
d'o=F9 impossibilit=E9 de r=E9unir les 2 requetes).
La requete1 m'affiche des donn=E9es chiffr=E9es et la requete2 des
donn=E9es texte.
Les 2 requetes sont du type : WHERE requete1.champ1 =3D[tapez un code]
et requete2.champ1 =3D[tapez un code]
Mon probl=E8me : Quand je clique sur le bouton1, le message "tapez un
code" s'affiche 2 fois (c'est logique)
Ma demande : comment faire pour n'avoir =E0 taper qu'une seule fois le
code et =E9viter d'avoir =E0 le taper 2 fois ?
J'ai pens=E9 =E0 cr=E9er une zone de liste d=E9roulante pour choisir le code=

(et supprimer dans les requetes : WHERE requete1=3D[tapez un code]),
mais =E7a, je ne sais le faire que si je n'ai qu'un seul sous-formulaire
bas=E9e sur une seule requete, or, dans mon cas, je dois afficher 2
types de donn=E9es (chiffres et textes) bas=E9s sur 2 requetes qui ont un
champ en commun...
Merci d'avance
Eric
NB : j'ai essay=E9 d'=EAtre le plus clair possible...

8 réponses

Avatar
Jac
Bonjour Eric,

il suffirait que tes sous-requêtes regardent la valeur choisie dans un
déroulant du formulaire principal. Quand la valeur du déroulant change,
les deux sous formulaires se mettent à jour.

On en reparle quand tu veux.

Jac

Bonjour,
Un clic sur le bouton1 de mon menu principal m'ouvre un formulaire F1.
Ce formulaire F1 est composé de 2 sous-formulaire : un SF1 basé sur
une requete1 et un SF2 basé sur une requete2.
Ces 2 requetes ont un champ1 en commun (c'est pas une clé primaire,
d'où impossibilité de réunir les 2 requetes).
La requete1 m'affiche des données chiffrées et la requete2 des
données texte.
Les 2 requetes sont du type : WHERE requete1.champ1 =[tapez un code]
et requete2.champ1 =[tapez un code]
Mon problème : Quand je clique sur le bouton1, le message "tapez un
code" s'affiche 2 fois (c'est logique)
Ma demande : comment faire pour n'avoir à taper qu'une seule fois le
code et éviter d'avoir à le taper 2 fois ?
J'ai pensé à créer une zone de liste déroulante pour choisir le code
(et supprimer dans les requetes : WHERE requete1=[tapez un code]),
mais ça, je ne sais le faire que si je n'ai qu'un seul sous-formulaire
basée sur une seule requete, or, dans mon cas, je dois afficher 2
types de données (chiffres et textes) basés sur 2 requetes qui ont un
champ en commun...
Merci d'avance
Eric
NB : j'ai essayé d'être le plus clair possible...


Avatar
eric.zzzz
il suffirait que tes sous-requêtes regardent la valeur choisie dans un
déroulant du formulaire principal. Quand la valeur du déroulant change ,
les deux sous formulaires se mettent à jour.

On en reparle quand tu veux.
Oui, je veux bien. J'ai bien compris le principe, mais je ne vois pas

comment faire ...

Avatar
Jac
Bon : le déroulant s'appelle LaCible.

Le critère dans les requêtes des deux sous-formulaires
[Formulaires]![F1]![LaCible]

LaCible => Propriétés / évènement / Procédure évènementielle

Private Sub LaCible_Change()
SF1.refresh
SF2.refresh
End Sub

Ça devrait marcher !


Oui, je veux bien. J'ai bien compris le principe, mais je ne vois pas
comment faire ...

il suffirait que tes sous-requêtes regardent la valeur choisie dans un
déroulant du formulaire principal. Quand la valeur du déroulant change,
les deux sous formulaires se mettent à jour.

On en reparle quand tu veux.




Avatar
eric.zzzz
On 29 avr, 18:11, Jac wrote:
Bon : le déroulant s'appelle LaCible.

Le critère dans les requêtes des deux sous-formulaires =

[Formulaires]![F1]![LaCible]

LaCible => Propriétés / évènement / Procédure évènementiel le

Private Sub LaCible_Change()
    SF1.refresh
    SF2.refresh
End Sub

Ça devrait marcher !
Merci, j'essayerais tout ça demain...(fin de la journée)


Avatar
eric.zzzz
Private Sub LaCible_Change()
    SF1.refresh
    SF2.refresh
End Sub


Bonjour,
quand je tape SF1. il y a une liste qui s'affiche mais il n'y a pas
refresh dans cette liste. Je tape refresh avec r minuscule et après le
R se met en majuscule. Quand j'exécute, le mot Refresh est encadré en
bleu et j'ai un msgbox "membre de méthode ou de données introuvable".
J'ai essayé : SF1.Form.Refresh, j'ai pas de message d'erreur, mais
quand je choisis un code dans ma liste déroulante, il ne se passe
rien...

Avatar
eric.zzzz
LaCible => Propriétés / évènement / Procédure évènementiel le


il n'y a pas de Propriétés / évènement / Procédure évènementie lle
(dans la liste déroulante), j'ai trouvé
Propriétés / évènement / sur changement; mais ça correspond bien à
Private Sub LaCible_Change()

Avatar
Eric
Bonjour,

Remplace ton Refresh par Requery
Me.SF1.Requery
Me.SF2.Requery
et je mettrai ça sur l'évènement Après Mise à jour

LaCible => Propriétés / évènement / Procédure évènementielle


il n'y a pas de Propriétés / évènement / Procédure évènementielle
(dans la liste déroulante), j'ai trouvé
Propriétés / évènement / sur changement; mais ça correspond bien à
Private Sub LaCible_Change()



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Avatar
eric.zzzz
On 30 avr, 11:50, Eric wrote:
Bonjour,

Remplace ton Refresh par Requery
      Me.SF1.Requery
      Me.SF2.Requery
et je mettrai ça sur l'évènement Après Mise à jour


Merci, ça marche...