Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête
comme source de données, est-ce qu'Access va exécuter la requête 2 fois ?
Le problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille 2
exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un
troisième sous-formulaire avec la requête qui récupère les données, et les
2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur et
le réseau car c'est une requête assez lourde.......
Merci
J-Pierre
Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête
comme source de données, est-ce qu'Access va exécuter la requête 2 fois ?
Le problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille 2
exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un
troisième sous-formulaire avec la requête qui récupère les données, et les
2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur et
le réseau car c'est une requête assez lourde.......
Merci
J-Pierre
Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête
comme source de données, est-ce qu'Access va exécuter la requête 2 fois ?
Le problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille 2
exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un
troisième sous-formulaire avec la requête qui récupère les données, et les
2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur et
le réseau car c'est une requête assez lourde.......
Merci
J-Pierre
Bonjour,
Il est tentant d'essayer de trouver des astuces pour optimiser les traitements cependant c'est risqué. Je pense que dans un
tel cas, il ne faut pas passer par un troisième sous formulaire car on s'éloignerait de l'esprit exécution en cascade des
formulaires et de leur sous formulaires.
Personnellement je créerais un code vba qui s'exécuterait à l'ouverture du formulaire principal ou sur événement current si
la requête est dépendante de la clef du formulaire principal. Dans cet éventement j'utiliserait de DAO pour créer un
recordset qui serait déclaré en global.
Lors de initialisation des sous formulaires, j'affecterais un clone du recordset à chaque sous requête. Cela éviterait toute
interaction inattendue entre les deux entités.
Bien à toi
Laurent Jordi
http://www.laurentjordi.net
http://www.ezlogic.mc
"J-Pierre" a écrit dans le message de news:Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête comme source de données, est-ce qu'Access va
exécuter la requête 2 fois ? Le problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille 2 exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un troisième sous-formulaire avec la requête qui récupère
les données, et les 2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur et le réseau car c'est une requête assez
lourde.......
Merci
J-Pierre
Bonjour,
Il est tentant d'essayer de trouver des astuces pour optimiser les traitements cependant c'est risqué. Je pense que dans un
tel cas, il ne faut pas passer par un troisième sous formulaire car on s'éloignerait de l'esprit exécution en cascade des
formulaires et de leur sous formulaires.
Personnellement je créerais un code vba qui s'exécuterait à l'ouverture du formulaire principal ou sur événement current si
la requête est dépendante de la clef du formulaire principal. Dans cet éventement j'utiliserait de DAO pour créer un
recordset qui serait déclaré en global.
Lors de initialisation des sous formulaires, j'affecterais un clone du recordset à chaque sous requête. Cela éviterait toute
interaction inattendue entre les deux entités.
Bien à toi
Laurent Jordi
http://www.laurentjordi.net
http://www.ezlogic.mc
"J-Pierre" <pas.de.pub.jpberchtold@hotmail.com> a écrit dans le message de news: efp9dNkVGHA.4956@TK2MSFTNGP09.phx.gbl...
Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête comme source de données, est-ce qu'Access va
exécuter la requête 2 fois ? Le problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille 2 exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un troisième sous-formulaire avec la requête qui récupère
les données, et les 2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur et le réseau car c'est une requête assez
lourde.......
Merci
J-Pierre
Bonjour,
Il est tentant d'essayer de trouver des astuces pour optimiser les traitements cependant c'est risqué. Je pense que dans un
tel cas, il ne faut pas passer par un troisième sous formulaire car on s'éloignerait de l'esprit exécution en cascade des
formulaires et de leur sous formulaires.
Personnellement je créerais un code vba qui s'exécuterait à l'ouverture du formulaire principal ou sur événement current si
la requête est dépendante de la clef du formulaire principal. Dans cet éventement j'utiliserait de DAO pour créer un
recordset qui serait déclaré en global.
Lors de initialisation des sous formulaires, j'affecterais un clone du recordset à chaque sous requête. Cela éviterait toute
interaction inattendue entre les deux entités.
Bien à toi
Laurent Jordi
http://www.laurentjordi.net
http://www.ezlogic.mc
"J-Pierre" a écrit dans le message de news:Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête comme source de données, est-ce qu'Access va
exécuter la requête 2 fois ? Le problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille 2 exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un troisième sous-formulaire avec la requête qui récupère
les données, et les 2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur et le réseau car c'est une requête assez
lourde.......
Merci
J-Pierre
Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête comme source de données, est-ce qu'Access va exécuter la
requête 2 fois ?
Le problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille 2 exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un troisième sous-formulaire avec la requête qui récupère les
données, et les 2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur et le réseau car c'est une requête assez lourde.......
Merci
J-Pierre
rien compris ;-)
Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête comme source de données, est-ce qu'Access va exécuter la
requête 2 fois ?
Le problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille 2 exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un troisième sous-formulaire avec la requête qui récupère les
données, et les 2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur et le réseau car c'est une requête assez lourde.......
Merci
J-Pierre
rien compris ;-)
Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête comme source de données, est-ce qu'Access va exécuter la
requête 2 fois ?
Le problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille 2 exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un troisième sous-formulaire avec la requête qui récupère les
données, et les 2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur et le réseau car c'est une requête assez lourde.......
Merci
J-Pierre
rien compris ;-)
Salut,
"J-Pierre" a écrit dans le message de news:Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête comme source de données, est-ce qu'Access va
exécuter la requête 2 fois ?
je dirais : OUILe problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille 2 exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un troisième sous-formulaire avec la requête qui récupère
les données, et les 2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur et le réseau car c'est une requête assez
lourde.......
Merci
J-Pierre
rien compris ;-)
--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------
Salut,
"J-Pierre" <pas.de.pub.jpberchtold@hotmail.com> a écrit dans le message de news: efp9dNkVGHA.4956@TK2MSFTNGP09.phx.gbl...
Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête comme source de données, est-ce qu'Access va
exécuter la requête 2 fois ?
je dirais : OUI
Le problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille 2 exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un troisième sous-formulaire avec la requête qui récupère
les données, et les 2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur et le réseau car c'est une requête assez
lourde.......
Merci
J-Pierre
rien compris ;-)
--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------
Salut,
"J-Pierre" a écrit dans le message de news:Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête comme source de données, est-ce qu'Access va
exécuter la requête 2 fois ?
je dirais : OUILe problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille 2 exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un troisième sous-formulaire avec la requête qui récupère
les données, et les 2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur et le réseau car c'est une requête assez
lourde.......
Merci
J-Pierre
rien compris ;-)
--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------
Bonjour Laurent,
Vu ta réponse, je suppose que la même requête sera exécutée 2 fois, car tu
n'as pas répondu à la 1ère question :-)
Astucieux, l'idée du recordset déclaré en global :-) Je crois que je vais
utiliser cette solution. Sur évènement current du formulaire, création du
recordset en global, puis affectation du clône à chacun des
sous-formulaires.....
En fait, il me semble qu'il n'est pas nécessaire de le déclarer en global,
puisqu'il ne sera créé et utilisé que dans l'évènement Current du
formulaire principal.
Mais l'idée reste astucieuse :-))))))
Merci
J-Pierre
"Laurent Jordi" <laurent.jordi@(xxx)wanadoo.fr> a écrit dans le message de
news: %Bonjour,
Il est tentant d'essayer de trouver des astuces pour optimiser les
traitements cependant c'est risqué. Je pense que dans un tel cas, il ne
faut pas passer par un troisième sous formulaire car on s'éloignerait de
l'esprit exécution en cascade des formulaires et de leur sous
formulaires.
Personnellement je créerais un code vba qui s'exécuterait à l'ouverture
du formulaire principal ou sur événement current si la requête est
dépendante de la clef du formulaire principal. Dans cet éventement
j'utiliserait de DAO pour créer un recordset qui serait déclaré en
global.
Lors de initialisation des sous formulaires, j'affecterais un clone du
recordset à chaque sous requête. Cela éviterait toute interaction
inattendue entre les deux entités.
Bien à toi
Laurent Jordi
http://www.laurentjordi.net
http://www.ezlogic.mc
"J-Pierre" a écrit dans le message
de news:Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête
comme source de données, est-ce qu'Access va exécuter la requête 2 fois
? Le problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille
2 exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un
troisième sous-formulaire avec la requête qui récupère les données, et
les 2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur
et le réseau car c'est une requête assez lourde.......
Merci
J-Pierre
Bonjour Laurent,
Vu ta réponse, je suppose que la même requête sera exécutée 2 fois, car tu
n'as pas répondu à la 1ère question :-)
Astucieux, l'idée du recordset déclaré en global :-) Je crois que je vais
utiliser cette solution. Sur évènement current du formulaire, création du
recordset en global, puis affectation du clône à chacun des
sous-formulaires.....
En fait, il me semble qu'il n'est pas nécessaire de le déclarer en global,
puisqu'il ne sera créé et utilisé que dans l'évènement Current du
formulaire principal.
Mais l'idée reste astucieuse :-))))))
Merci
J-Pierre
"Laurent Jordi" <laurent.jordi@(xxx)wanadoo.fr> a écrit dans le message de
news: %23vwCXYkVGHA.5332@tk2msftngp13.phx.gbl...
Bonjour,
Il est tentant d'essayer de trouver des astuces pour optimiser les
traitements cependant c'est risqué. Je pense que dans un tel cas, il ne
faut pas passer par un troisième sous formulaire car on s'éloignerait de
l'esprit exécution en cascade des formulaires et de leur sous
formulaires.
Personnellement je créerais un code vba qui s'exécuterait à l'ouverture
du formulaire principal ou sur événement current si la requête est
dépendante de la clef du formulaire principal. Dans cet éventement
j'utiliserait de DAO pour créer un recordset qui serait déclaré en
global.
Lors de initialisation des sous formulaires, j'affecterais un clone du
recordset à chaque sous requête. Cela éviterait toute interaction
inattendue entre les deux entités.
Bien à toi
Laurent Jordi
http://www.laurentjordi.net
http://www.ezlogic.mc
"J-Pierre" <pas.de.pub.jpberchtold@hotmail.com> a écrit dans le message
de news: efp9dNkVGHA.4956@TK2MSFTNGP09.phx.gbl...
Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête
comme source de données, est-ce qu'Access va exécuter la requête 2 fois
? Le problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille
2 exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un
troisième sous-formulaire avec la requête qui récupère les données, et
les 2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur
et le réseau car c'est une requête assez lourde.......
Merci
J-Pierre
Bonjour Laurent,
Vu ta réponse, je suppose que la même requête sera exécutée 2 fois, car tu
n'as pas répondu à la 1ère question :-)
Astucieux, l'idée du recordset déclaré en global :-) Je crois que je vais
utiliser cette solution. Sur évènement current du formulaire, création du
recordset en global, puis affectation du clône à chacun des
sous-formulaires.....
En fait, il me semble qu'il n'est pas nécessaire de le déclarer en global,
puisqu'il ne sera créé et utilisé que dans l'évènement Current du
formulaire principal.
Mais l'idée reste astucieuse :-))))))
Merci
J-Pierre
"Laurent Jordi" <laurent.jordi@(xxx)wanadoo.fr> a écrit dans le message de
news: %Bonjour,
Il est tentant d'essayer de trouver des astuces pour optimiser les
traitements cependant c'est risqué. Je pense que dans un tel cas, il ne
faut pas passer par un troisième sous formulaire car on s'éloignerait de
l'esprit exécution en cascade des formulaires et de leur sous
formulaires.
Personnellement je créerais un code vba qui s'exécuterait à l'ouverture
du formulaire principal ou sur événement current si la requête est
dépendante de la clef du formulaire principal. Dans cet éventement
j'utiliserait de DAO pour créer un recordset qui serait déclaré en
global.
Lors de initialisation des sous formulaires, j'affecterais un clone du
recordset à chaque sous requête. Cela éviterait toute interaction
inattendue entre les deux entités.
Bien à toi
Laurent Jordi
http://www.laurentjordi.net
http://www.ezlogic.mc
"J-Pierre" a écrit dans le message
de news:Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête
comme source de données, est-ce qu'Access va exécuter la requête 2 fois
? Le problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille
2 exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un
troisième sous-formulaire avec la requête qui récupère les données, et
les 2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur
et le réseau car c'est une requête assez lourde.......
Merci
J-Pierre
Bonjour,
Il est tentant d'essayer de trouver des astuces pour optimiser les traitements cependant c'est risqué. Je pense que dans un
tel cas, il ne faut pas passer par un troisième sous formulaire car on s'éloignerait de l'esprit exécution en cascade des
formulaires et de leur sous formulaires.
Personnellement je créerais un code vba qui s'exécuterait à l'ouverture du formulaire principal ou sur événement current si
la requête est dépendante de la clef du formulaire principal. Dans cet éventement j'utiliserait de DAO pour créer un
recordset qui serait déclaré en global.
Lors de initialisation des sous formulaires, j'affecterais un clone du recordset à chaque sous requête. Cela éviterait toute
interaction inattendue entre les deux entités.
Bien à toi
Laurent Jordi
http://www.laurentjordi.net
http://www.ezlogic.mc
"J-Pierre" a écrit dans le message de news:Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête comme source de données, est-ce qu'Access va
exécuter la requête 2 fois ? Le problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille 2 exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un troisième sous-formulaire avec la requête qui récupère
les données, et les 2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur et le réseau car c'est une requête assez
lourde.......
Merci
J-Pierre
Bonjour,
Il est tentant d'essayer de trouver des astuces pour optimiser les traitements cependant c'est risqué. Je pense que dans un
tel cas, il ne faut pas passer par un troisième sous formulaire car on s'éloignerait de l'esprit exécution en cascade des
formulaires et de leur sous formulaires.
Personnellement je créerais un code vba qui s'exécuterait à l'ouverture du formulaire principal ou sur événement current si
la requête est dépendante de la clef du formulaire principal. Dans cet éventement j'utiliserait de DAO pour créer un
recordset qui serait déclaré en global.
Lors de initialisation des sous formulaires, j'affecterais un clone du recordset à chaque sous requête. Cela éviterait toute
interaction inattendue entre les deux entités.
Bien à toi
Laurent Jordi
http://www.laurentjordi.net
http://www.ezlogic.mc
"J-Pierre" <pas.de.pub.jpberchtold@hotmail.com> a écrit dans le message de news: efp9dNkVGHA.4956@TK2MSFTNGP09.phx.gbl...
Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête comme source de données, est-ce qu'Access va
exécuter la requête 2 fois ? Le problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille 2 exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un troisième sous-formulaire avec la requête qui récupère
les données, et les 2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur et le réseau car c'est une requête assez
lourde.......
Merci
J-Pierre
Bonjour,
Il est tentant d'essayer de trouver des astuces pour optimiser les traitements cependant c'est risqué. Je pense que dans un
tel cas, il ne faut pas passer par un troisième sous formulaire car on s'éloignerait de l'esprit exécution en cascade des
formulaires et de leur sous formulaires.
Personnellement je créerais un code vba qui s'exécuterait à l'ouverture du formulaire principal ou sur événement current si
la requête est dépendante de la clef du formulaire principal. Dans cet éventement j'utiliserait de DAO pour créer un
recordset qui serait déclaré en global.
Lors de initialisation des sous formulaires, j'affecterais un clone du recordset à chaque sous requête. Cela éviterait toute
interaction inattendue entre les deux entités.
Bien à toi
Laurent Jordi
http://www.laurentjordi.net
http://www.ezlogic.mc
"J-Pierre" a écrit dans le message de news:Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête comme source de données, est-ce qu'Access va
exécuter la requête 2 fois ? Le problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille 2 exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un troisième sous-formulaire avec la requête qui récupère
les données, et les 2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur et le réseau car c'est une requête assez
lourde.......
Merci
J-Pierre
"La propriété RecordsetClone vous permet de faire référence à l'objet Recordset d'un formulaire spécifié par la propriété Source
de ce formulaire. Lecture seule." dixit MS dans l'aide en ligne. Je ne peux donc pas référencer le clône d'un recordset DAO.
Après avoir ouvert mon recordset, j'ai donc fait (toujours dans l'évènement current du formulaire principal) un:
Set Me.MonSousForm.Form.Recordset = MonRecordSetDAO
Et les champs du sous-formulaire s'affichent avec des #nom ?" et des "#erreur".
Si j'ajoute une instruction que j'ai trouvé je ne sais plus où dans la doc:
Me.MonSousForm.Form.RecordSource = Me.MonSousForm.Form.RecordSource
l'affichage redevient bon, mais Access réinterroge la BD, côté performance, pas terrible......
J-Pierre
"Laurent Jordi" <laurent.jordi@(xxx)wanadoo.fr> a écrit dans le message de news: %Bonjour,
Il est tentant d'essayer de trouver des astuces pour optimiser les traitements cependant c'est risqué. Je pense que dans un tel
cas, il ne faut pas passer par un troisième sous formulaire car on s'éloignerait de l'esprit exécution en cascade des formulaires
et de leur sous formulaires.
Personnellement je créerais un code vba qui s'exécuterait à l'ouverture du formulaire principal ou sur événement current si la
requête est dépendante de la clef du formulaire principal. Dans cet éventement j'utiliserait de DAO pour créer un recordset qui
serait déclaré en global.
Lors de initialisation des sous formulaires, j'affecterais un clone du recordset à chaque sous requête. Cela éviterait toute
interaction inattendue entre les deux entités.
Bien à toi
Laurent Jordi
http://www.laurentjordi.net
http://www.ezlogic.mc
"J-Pierre" a écrit dans le message de news:Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête comme source de données, est-ce qu'Access va exécuter la
requête 2 fois ? Le problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille 2 exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un troisième sous-formulaire avec la requête qui récupère les
données, et les 2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur et le réseau car c'est une requête assez lourde.......
Merci
J-Pierre
"La propriété RecordsetClone vous permet de faire référence à l'objet Recordset d'un formulaire spécifié par la propriété Source
de ce formulaire. Lecture seule." dixit MS dans l'aide en ligne. Je ne peux donc pas référencer le clône d'un recordset DAO.
Après avoir ouvert mon recordset, j'ai donc fait (toujours dans l'évènement current du formulaire principal) un:
Set Me.MonSousForm.Form.Recordset = MonRecordSetDAO
Et les champs du sous-formulaire s'affichent avec des #nom ?" et des "#erreur".
Si j'ajoute une instruction que j'ai trouvé je ne sais plus où dans la doc:
Me.MonSousForm.Form.RecordSource = Me.MonSousForm.Form.RecordSource
l'affichage redevient bon, mais Access réinterroge la BD, côté performance, pas terrible......
J-Pierre
"Laurent Jordi" <laurent.jordi@(xxx)wanadoo.fr> a écrit dans le message de news: %23vwCXYkVGHA.5332@tk2msftngp13.phx.gbl...
Bonjour,
Il est tentant d'essayer de trouver des astuces pour optimiser les traitements cependant c'est risqué. Je pense que dans un tel
cas, il ne faut pas passer par un troisième sous formulaire car on s'éloignerait de l'esprit exécution en cascade des formulaires
et de leur sous formulaires.
Personnellement je créerais un code vba qui s'exécuterait à l'ouverture du formulaire principal ou sur événement current si la
requête est dépendante de la clef du formulaire principal. Dans cet éventement j'utiliserait de DAO pour créer un recordset qui
serait déclaré en global.
Lors de initialisation des sous formulaires, j'affecterais un clone du recordset à chaque sous requête. Cela éviterait toute
interaction inattendue entre les deux entités.
Bien à toi
Laurent Jordi
http://www.laurentjordi.net
http://www.ezlogic.mc
"J-Pierre" <pas.de.pub.jpberchtold@hotmail.com> a écrit dans le message de news: efp9dNkVGHA.4956@TK2MSFTNGP09.phx.gbl...
Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête comme source de données, est-ce qu'Access va exécuter la
requête 2 fois ? Le problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille 2 exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un troisième sous-formulaire avec la requête qui récupère les
données, et les 2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur et le réseau car c'est une requête assez lourde.......
Merci
J-Pierre
"La propriété RecordsetClone vous permet de faire référence à l'objet Recordset d'un formulaire spécifié par la propriété Source
de ce formulaire. Lecture seule." dixit MS dans l'aide en ligne. Je ne peux donc pas référencer le clône d'un recordset DAO.
Après avoir ouvert mon recordset, j'ai donc fait (toujours dans l'évènement current du formulaire principal) un:
Set Me.MonSousForm.Form.Recordset = MonRecordSetDAO
Et les champs du sous-formulaire s'affichent avec des #nom ?" et des "#erreur".
Si j'ajoute une instruction que j'ai trouvé je ne sais plus où dans la doc:
Me.MonSousForm.Form.RecordSource = Me.MonSousForm.Form.RecordSource
l'affichage redevient bon, mais Access réinterroge la BD, côté performance, pas terrible......
J-Pierre
"Laurent Jordi" <laurent.jordi@(xxx)wanadoo.fr> a écrit dans le message de news: %Bonjour,
Il est tentant d'essayer de trouver des astuces pour optimiser les traitements cependant c'est risqué. Je pense que dans un tel
cas, il ne faut pas passer par un troisième sous formulaire car on s'éloignerait de l'esprit exécution en cascade des formulaires
et de leur sous formulaires.
Personnellement je créerais un code vba qui s'exécuterait à l'ouverture du formulaire principal ou sur événement current si la
requête est dépendante de la clef du formulaire principal. Dans cet éventement j'utiliserait de DAO pour créer un recordset qui
serait déclaré en global.
Lors de initialisation des sous formulaires, j'affecterais un clone du recordset à chaque sous requête. Cela éviterait toute
interaction inattendue entre les deux entités.
Bien à toi
Laurent Jordi
http://www.laurentjordi.net
http://www.ezlogic.mc
"J-Pierre" a écrit dans le message de news:Bonjour tout le monde,
Si deux sous-formulaires d'un même formulaire utilisent la même requête comme source de données, est-ce qu'Access va exécuter la
requête 2 fois ? Le problème, c'est qu'il y a 2 recordsets et je crains qu'il ne faille 2 exécutions.
Si Access exécute la requête 2 fois, la solution passerait par un troisième sous-formulaire avec la requête qui récupère les
données, et les 2 sous-formulaires afficheraient les données à partir de ce 3ème.
Un peu compliqué ? Oui..... Quel est l'avantage ? Décharger le serveur et le réseau car c'est une requête assez lourde.......
Merci
J-Pierre