|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Francois Responsable de service informatique Inscription : novembre 2010 Messages : 33 ![]() |
Bonjour,
Je cherche à créer un sous-formulaire directement à partir de mon code. Ce sous-formulaire est généré à partir d'une table reconstruite à chaque exécution du code. A partir de là, impossible de se contenter de placer le sous-formulaire en invisible sur le formulaire : au moment de détruire la table pour la reconstruire, ACCESS bute (et c'est normal !) sur le fait que le sous formulaire (visible ou pas) utilise cette table. Je ne vois que deux solutions à mon problème : 1 - Créer à chaque exécution mon sous formulaire. Mais autant je vois bien la méthode du "CreateForm", autant je n'arrive pas à trouver comment "Create an Under Form", si je puis me permettre !! 2 - Ne pas détruire ma table à chaque fois; juste me contenter d'effacer les enregistrements existants, ce qui me permettra d'utiliser l'astuce du "sous-formulaire invisible", qui ne le devient (visible) qu'au moment propice ! Je vais partir sur la solution n°2, qui me semble également moins technique en code (encore que...), mais j'avoue que je serais très intéressé par une solution ou un début de piste sur l'idée n°1. Merci de votre aide. |
|
|
00
|
|
|
#2 | |
![]() ![]() |
Bonjour
Il y a certaines contradictions dans ce que tu dis : Citation:
Si c'est le cas à quoi peut servir la création dynamique ![]() Merci d'éclaircir ce point Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Francois Responsable de service informatique Inscription : novembre 2010 Messages : 33 ![]() |
Bonjour,
Oui, la table a effectivement toujours les mêmes champs. Le problème se pose dans l'ordre d'exécution des traitements : 1 / Formulaire n°1 présente une liste déroulante qui, sur choix, affiche un formulaire n°2 et exécute un code. 2 / Ce code génère une table "éphémère", qui ne sert que le temps du traitement. En début de code, on teste donc l'existence de cette table pour : Solution 1 : - la détruire si elle existe - la recréer à neuf - l'instruire - générer un sous formulaire qui affiche le contenu de cette table --> c'est dans cette solution que j'ai un problème. J'ai d'abord voulu créer le sous formulaire et le rendre simplement invisible le temps du traitement, pour l'afficher ensuite, mais forcément, ce sous formulaire affichant la table (qu'elle soit visible ou non à l'écran, peu importe), cela coince quand le code cherche à la détruire ! Je me suis donc dit qu'une solution serait de créer le sous formulaire dans la foulée. Solution compliquée, je le reconnais volontiers (surtout quand on regarde la solution n°2 !), mais du coup, une question s'est posée : on peut créer un formulaire par CreateForm.... mais comment crée-t-on un sous-formulaire ? Un CreateForm dans un container de sous-formulaire ? Quelle serait la syntaxe d'une telle instruction ? Solution 2 : - Si la table existe, détruire tous les enregistrements, sinon la créer - L'instruire - Rendre le sous formulaire (déjà présent) visible en le rafraichissant avant. Clairement, c'est ce que j'ai fait, et c'est beaucoup plus simple. Ça fonctionne même nickel ! Mais la question de la création du sous-formulaire est restée, et je me demandais si quelqu'un avait une piste... |
|
|
00
|
|
|
#4 | |
![]() ![]() |
Bonjour
Citation:
Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Francois Responsable de service informatique Inscription : novembre 2010 Messages : 33 ![]() |
Savoir créer de toutes pièces un sous-formulaire directement dans un formulaire.
Access, je le découvre pour beaucoup en essayant ! Comme la plupart des utilisateurs, je pense. Des fois (souvent même), certains problèmes ne sont tordus que parce qu'ils ont été mal pensés, mais ils ont l'avantage de soulever des points qui pourraient m'être utiles plus tard. Bref, c'est de la curiosité utile ! Maintenant, s'il n'existe pas de réponse sur ce point, c'est ok aussi ! |
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Francois Responsable de service informatique Inscription : novembre 2010 Messages : 33 ![]() |
Bon, vraiment, personne n'a d'idée là dessus ?
Parce que ce n'est pas possible, ou seulement parce que personne n'en a trouvé l'utilité ? |
|
|
00
|
|
|
#7 |
|
Membre actif
![]() Richard Ingénieur développement logiciels Inscription : août 2004 Messages : 166 ![]() |
Salut!
As-tu essayé en faisant dans l'ordre: 1°/ Monform!MonSousForm.form.recordsource="" 2°/ Création de MaTable 3°/ Monform!MonSousForm.form.recordsource="MaTable" Bonne continuation... |
|
|
10
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Francois Responsable de service informatique Inscription : novembre 2010 Messages : 33 ![]() |
Bonjour Ric500 et merci de cette proposition.
Simple et efficace ! Si j'avais persisté à vouloir détruire ma table (ou si je m'étais retrouvé dans un cas de figure m'obligeant à le faire), il suffisait donc : 1 - que je supprime la table existante (en n'oubliant pas bien sûr de placer le Recordsource du sous formulaire à vide, le "déconnectant" ainsi de la table) 2 - que je la recrée et que je l'instruise 3 - que j'inscrive Forms![Formulaire].[Sous-formulaire].Form.Recordsource = "Table" 4 - que je rende mon sous formulaire visible Et le tour est joué ! Clairement, c'est beaucoup plus tordu que d'effacer les lignes existantes et de compléter la table, mais c'est exactement la solution au cas d'école que je cherchais ! Merci encore de ton intervention. Sujet résolu. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com