OVH Cloud OVH Cloud

sélection dans un rst

3 réponses
Avatar
Toto
Bonjour,
j'ai un souci..Bien =E9videmment me direz-vous...!

Voici le code :

Set rst =3D dbs.OpenRecordset("TDemandeDetail", dbOpenDynaset)
With rst
.AddNew
.Fields!NumDemande =3D Forms![fdemandes]![NDemande]
.Fields!LogArchi =3D Forms![fdemandes]![SFDemandes10].Form!LogArchi
.Update
.Bookmark =3D .LastModified
End With

Ce que je voudrai, c'est que plutot que de s=E9lectionner le "LogArchi"
dans SFDemandes10, je s=E9lectionne la ligne dans mon sous-formulaire
(ligne que j'ai "noirci" donc s=E9lectionn=E9 ; pourquoi ? Parceq'en
fait, je n'ai pas 1 formulaire, mais 3 ! Et je dois copi=E9
l'enregistrement s=E9lectionn=E9 par l'utilisateur...Et cet
enregistrement ne se trouve pas forcement dans le SFDemandes10 mais
peut =EAtre aussi dans le SFDemandes8 ou SFDemandes6 (jai 3 onglets,
dans chaque onglet un SF)...
Suis-je assez clair ???!!!

Merci d'avance pour votre aide...

3 réponses

Avatar
J-Pierre
Salut Toto,

La maîtresse d'école demande aux enfants de faire un court poème.

Alors, Toto, et ton poème ?

Je suis allé à la pêche à la grenouille
et j'avais de l'eau jusqu'au genou

Mais, Toto, ça ne rime pas

Mais Madame, y'avait pas assez d'eau

A part ça, je vois deux possibilités:

1-Quand l'utilisateur clique sur une ligne dans un des sous-formulaires, cette ligne devient l'enregistrement en cours, dans
l'évènement "sur activation", tu mémorises le nom du sous-formulaire me.name dans leNom, puis tu fais un eval:
monChamp = eval("Forms![fdemandes]!" & leNom & ".Form!LogArchi")
Sans garantie :-)

2-Au lieu d'utiliser des onglets, tu as un seul contrôle sous-formulaire que tu appelles SFDemandes et tu crées 3 boutons qui
modifient la source de ton sous-formulaire:
Me.SFDemandes.SourceObject = "SFDemandes10" (ou "SFDemandes8" ou "SFDemandes6")

Ensuite, tu exécuteras toujours l'instruction
.Fields!LogArchi = Forms![fdemandes]![SFDemandes].Form!LogArchi

De plus, cette technique présente l'avantage (ou l'inconvénient) de n'ouvrir qu'un seul sous-formulaire quand tu ouvres le
formulaire et de rafraîchir les données chaque fois que tu cliques sur un bouton.

--
J-Pierre
------------------------------------------------------
http://www.mpfa.info :
Le site où que j'ai dû payer pour y figurer :-(
------------------------------------------------------

"Toto" a écrit dans le message de news:
Bonjour,
j'ai un souci..Bien évidemment me direz-vous...!

Voici le code :

Set rst = dbs.OpenRecordset("TDemandeDetail", dbOpenDynaset)
With rst
.AddNew
.Fields!NumDemande = Forms![fdemandes]![NDemande]
.Fields!LogArchi = Forms![fdemandes]![SFDemandes10].Form!LogArchi
.Update
.Bookmark = .LastModified
End With

Ce que je voudrai, c'est que plutot que de sélectionner le "LogArchi"
dans SFDemandes10, je sélectionne la ligne dans mon sous-formulaire
(ligne que j'ai "noirci" donc sélectionné ; pourquoi ? Parceq'en
fait, je n'ai pas 1 formulaire, mais 3 ! Et je dois copié
l'enregistrement sélectionné par l'utilisateur...Et cet
enregistrement ne se trouve pas forcement dans le SFDemandes10 mais
peut être aussi dans le SFDemandes8 ou SFDemandes6 (jai 3 onglets,
dans chaque onglet un SF)...
Suis-je assez clair ???!!!

Merci d'avance pour votre aide...
Avatar
Toto
Salut J.Pierre !
Tout d'abord merci de me répondre !
ensuite, j'ai bien compris l'histoire de Toto (pas mal, pas mal...!) et
du premier coup...
Par contre, concernant tes aides, je dois dire...moyen moins...Bon,
c'est de ma faute, j'ai oublié de préciser que je débutais !
En fait, pour prendre le cas 1: j'ai donc mis pour chaque SF
(SFdemandes10, Sfdemandes8 et SFDemandes6) une procédure sur
activation comme tu me le dis, en créant une variable, et en stockant
le nom du Sf dedans..(d'une je ne sais pas si c'est bien ça qu'il faut
faire, et deux, c'est en private sub, alors...???).
En tout cas, si c'est bien, ça ne fonctionne pas...

Je dois t'avouer que ta soluce 2 me convient, mais comment je fais
comme tu dis "un seul contrôle SFDemandes" ???

Je vais y arriver, c'est sûr...avec ton aide ! :-)




Salut Toto,

La maîtresse d'école demande aux enfants de faire un court poème.

Alors, Toto, et ton poème ?

Je suis allé à la pêche à la grenouille
et j'avais de l'eau jusqu'au genou

Mais, Toto, ça ne rime pas

Mais Madame, y'avait pas assez d'eau

A part ça, je vois deux possibilités:

1-Quand l'utilisateur clique sur une ligne dans un des sous-formulaires, cette ligne devient l'enregistrement en cours, dans
l'évènement "sur activation", tu mémorises le nom du sous-formulair e me.name dans leNom, puis tu fais un eval:
monChamp = eval("Forms![fdemandes]!" & leNom & ".Form!LogArchi")
Sans garantie :-)

2-Au lieu d'utiliser des onglets, tu as un seul contrôle sous-formulair e que tu appelles SFDemandes et tu crées 3 boutons qui
modifient la source de ton sous-formulaire:
Me.SFDemandes.SourceObject = "SFDemandes10" (ou "SFDemandes8" ou "SFDem andes6")

Ensuite, tu exécuteras toujours l'instruction
.Fields!LogArchi = Forms![fdemandes]![SFDemandes].Form!LogArchi

De plus, cette technique présente l'avantage (ou l'inconvénient) de n 'ouvrir qu'un seul sous-formulaire quand tu ouvres le
formulaire et de rafraîchir les données chaque fois que tu cliques su r un bouton.

--
J-Pierre
------------------------------------------------------
http://www.mpfa.info :
Le site où que j'ai dû payer pour y figurer :-(
------------------------------------------------------

"Toto" a écrit dans le message de news: 1159
Bonjour,
j'ai un souci..Bien évidemment me direz-vous...!

Voici le code :

Set rst = dbs.OpenRecordset("TDemandeDetail", dbOpenDynaset)
With rst
.AddNew
.Fields!NumDemande = Forms![fdemandes]![NDemande]
.Fields!LogArchi = Forms![fdemandes]![SFDemandes10].Form!LogArchi
.Update
.Bookmark = .LastModified
End With

Ce que je voudrai, c'est que plutot que de sélectionner le "LogArchi"
dans SFDemandes10, je sélectionne la ligne dans mon sous-formulaire
(ligne que j'ai "noirci" donc sélectionné ; pourquoi ? Parceq'en
fait, je n'ai pas 1 formulaire, mais 3 ! Et je dois copié
l'enregistrement sélectionné par l'utilisateur...Et cet
enregistrement ne se trouve pas forcement dans le SFDemandes10 mais
peut être aussi dans le SFDemandes8 ou SFDemandes6 (jai 3 onglets,
dans chaque onglet un SF)...
Suis-je assez clair ???!!!

Merci d'avance pour votre aide...


Avatar
J-Pierre
Salut,

Ben mon vieux, comme tu causais, j'avais l'impression que tu étais rôdé.

Oui, la soluce 2 est plus simple.
Il faut faire la différence entre le contrôle sous-formulaire et le sous-formulaire lui-même qui n'ont pas nécessairement les mêmes
noms.

Dans ton formulaire fdemandes, tu supprimes les 3 onglets et tu mets un seul contrôle sous-formulaire que tu appelles SFDemandes et
dans les propriétés de ce contrôle, pour "objet source", tu mets le sous-formulaire le plus utilisé, par exemple SFDemandes6.

Toujours dans ton formulaire fdemandes, tu mets 3 boutons, évènement sur click de chaque bouton, tu mets le code:
Me.SFDemandes.SourceObject = "SFDemandes10" (ou "SFDemandes8" ou "SFDemandes6")
Et le sous-formulaire correspondant sera chargé dans le contrôle sous-formulaire.

Comme l'instruction
.Fields!LogArchi = Forms![fdemandes]![SFDemandes].Form!LogArchi
référence le contrôle sous-formulaire et non pas le sous-formulaire contenu dans ce contrôle, où que tu la mettes, et quelque soit
le sous-formulaire source du contrôle, elle fonctionnera, à condition bien sûr que chaque sous-formulaire contienne bien un champ
LogArchi

C'est bon ? :-)

--
J-Pierre
------------------------------------------------------
http://www.mpfa.info :
Le site où que j'ai dû payer pour y figurer :-(
------------------------------------------------------



"Toto" a écrit dans le message de news:
Salut J.Pierre !
Tout d'abord merci de me répondre !
ensuite, j'ai bien compris l'histoire de Toto (pas mal, pas mal...!) et
du premier coup...
Par contre, concernant tes aides, je dois dire...moyen moins...Bon,
c'est de ma faute, j'ai oublié de préciser que je débutais !
En fait, pour prendre le cas 1: j'ai donc mis pour chaque SF
(SFdemandes10, Sfdemandes8 et SFDemandes6) une procédure sur
activation comme tu me le dis, en créant une variable, et en stockant
le nom du Sf dedans..(d'une je ne sais pas si c'est bien ça qu'il faut
faire, et deux, c'est en private sub, alors...???).
En tout cas, si c'est bien, ça ne fonctionne pas...

Je dois t'avouer que ta soluce 2 me convient, mais comment je fais
comme tu dis "un seul contrôle SFDemandes" ???

Je vais y arriver, c'est sûr...avec ton aide ! :-)




Salut Toto,

La maîtresse d'école demande aux enfants de faire un court poème.

Alors, Toto, et ton poème ?

Je suis allé à la pêche à la grenouille
et j'avais de l'eau jusqu'au genou

Mais, Toto, ça ne rime pas

Mais Madame, y'avait pas assez d'eau

A part ça, je vois deux possibilités:

1-Quand l'utilisateur clique sur une ligne dans un des sous-formulaires, cette ligne devient l'enregistrement en cours, dans
l'évènement "sur activation", tu mémorises le nom du sous-formulaire me.name dans leNom, puis tu fais un eval:
monChamp = eval("Forms![fdemandes]!" & leNom & ".Form!LogArchi")
Sans garantie :-)

2-Au lieu d'utiliser des onglets, tu as un seul contrôle sous-formulaire que tu appelles SFDemandes et tu crées 3 boutons qui
modifient la source de ton sous-formulaire:
Me.SFDemandes.SourceObject = "SFDemandes10" (ou "SFDemandes8" ou "SFDemandes6")

Ensuite, tu exécuteras toujours l'instruction
.Fields!LogArchi = Forms![fdemandes]![SFDemandes].Form!LogArchi

De plus, cette technique présente l'avantage (ou l'inconvénient) de n'ouvrir qu'un seul sous-formulaire quand tu ouvres le
formulaire et de rafraîchir les données chaque fois que tu cliques sur un bouton.

--
J-Pierre
------------------------------------------------------
http://www.mpfa.info :
Le site où que j'ai dû payer pour y figurer :-(
------------------------------------------------------

"Toto" a écrit dans le message de news:
Bonjour,
j'ai un souci..Bien évidemment me direz-vous...!

Voici le code :

Set rst = dbs.OpenRecordset("TDemandeDetail", dbOpenDynaset)
With rst
.AddNew
.Fields!NumDemande = Forms![fdemandes]![NDemande]
.Fields!LogArchi = Forms![fdemandes]![SFDemandes10].Form!LogArchi
.Update
.Bookmark = .LastModified
End With

Ce que je voudrai, c'est que plutot que de sélectionner le "LogArchi"
dans SFDemandes10, je sélectionne la ligne dans mon sous-formulaire
(ligne que j'ai "noirci" donc sélectionné ; pourquoi ? Parceq'en
fait, je n'ai pas 1 formulaire, mais 3 ! Et je dois copié
l'enregistrement sélectionné par l'utilisateur...Et cet
enregistrement ne se trouve pas forcement dans le SFDemandes10 mais
peut être aussi dans le SFDemandes8 ou SFDemandes6 (jai 3 onglets,
dans chaque onglet un SF)...
Suis-je assez clair ???!!!

Merci d'avance pour votre aide...