OVH Cloud OVH Cloud

Recordset sous forme d'onglet.

3 réponses
Avatar
AfterBoy
Bonjour,

Voici! J'ai un formulaire bas=E9 sur une table Fruits. Ce formulaire a
un controle [OngletFruits] et sous chaque page de fruit , un autre
sous-onglet [OngletVari=E9t=E9]. Cet onglet poss=E8de autant de page qu'il
y a d'enregistrements de ma table fruit. Si j'ajoute un fruits =E0 ma
table fruits, et bien je veux qu'il y ait une page de plus de cr=E9=E9 a
mon controle [OngletFruits] avec son nom. Et pour aller encore plus
loin dans chaque controle onglet fruits, il y aurait un autre onglet
qui m'=E9num=E9rerais toutes les vari=E9t=E9s possible pour chacun des
fruits et qui serait aussi bas=E9 sur une table. Donc pour r=E9sumer, 2
onglets imbriqu=E9s et control=E9s toutes les 2 par des enregistrements
d'une table. Si on supprime un ongletFruit et bien il faut aussi
supprimer le fruit de la table. On doit pouvoir aussi ajouter une
vari=E9t=E9 a un fruit et aussi de supprimer une vari=E9t=E9. Ca
remplacerait un peu un formulaire et son sous-formulaire et ca serait
plus visuel et l'information serait plus facile et rapide d'acc=E8s.

Si quelqu'un a d=E9ja fait ce genre de truc, et bien je serais
int=E9ress=E9 d'avoir un bout de code et/ou tout commentaire qui pourrait
m'aider.

Merci.

3 réponses

Avatar
ze Titi
Bonjour AfterBoy

Ton explication est claire, le problème est clair mais tu t'embarques
dans la complication... Déjà, pour ajouter/retirer des pages à un
contrôle TabControl, il faut que ton formulaire soit en mode création.
N'oublie pas non plus que le nombre de contrôles est limité à 754 sur
un formulaire, on peut y arriver assez vite
Si malgré tout tu persistes, voila un petit bout de code qui pourrait
te mettre sur la voie.

Dim frm As Form
Dim tbc As TabControl, pge As Page, rst As Recordset

docmd.openForm "tonFormulaire",acDesign
Set frm = Forms!tonFormulaire
Set tbc = frm!tonControleTabControl
Set rst = currentDb.OpenRecordset("TaTableFruits",dbOpenDynaset)
rst.MoveLast
rst.MoveFirst
While not rst.EOF
set pge=tbc.Pages.Add
pge.Caption=rst!nomDuFruit
rst.MoveNext
Wend
rst.Close
docmd.Close acForm,"tonFormulaire",acSaveYes
set frm=nothing
set tbc=nothing
set pge=nothing
set rst=nothing

Non testé donc non garanti...


Dans ton message
Bonjour,

Voici! J'ai un formulaire basé sur une table Fruits. Ce formulaire a
un controle [OngletFruits] et sous chaque page de fruit , un autre
sous-onglet [OngletVariété]. Cet onglet possède autant de page qu'il
y a d'enregistrements de ma table fruit. Si j'ajoute un fruits à ma
table fruits, et bien je veux qu'il y ait une page de plus de créé a
mon controle [OngletFruits] avec son nom. Et pour aller encore plus
loin dans chaque controle onglet fruits, il y aurait un autre onglet
qui m'énumérerais toutes les variétés possible pour chacun des
fruits et qui serait aussi basé sur une table. Donc pour résumer, 2
onglets imbriqués et controlés toutes les 2 par des enregistrements
d'une table. Si on supprime un ongletFruit et bien il faut aussi
supprimer le fruit de la table. On doit pouvoir aussi ajouter une
variété a un fruit et aussi de supprimer une variété. Ca
remplacerait un peu un formulaire et son sous-formulaire et ca serait
plus visuel et l'information serait plus facile et rapide d'accès.

Si quelqu'un a déja fait ce genre de truc, et bien je serais
intéressé d'avoir un bout de code et/ou tout commentaire qui pourrait
m'aider.

Merci.


--
Voilou !
Bon courage !
Cordialement,
ze Titi

Avatar
AfterBoy
Bojjour Zi Titi,

Je voulais savoir, quand on passe un formulaire en mode désign, on
ajoute par exemple 10 onglets et on revient en mode normal, est-ce que
visuellement ca donne un mauvais impression ou bien ca se fait
tellement rapide que l'on ne voit presque rien. Aussi pour me
simplifier la vie, je me créerais un formulaire avec mon controle
onglet dedans. Ce formulaire posséderait juste le controle onglet avec
les onglets appropriés et il n'y aurait aucun controle sous chaque
page, il servirait juste a voir les pages et quand je cliquerait sur
une page, je déplacerait mon recordet de mon formulaire principal et
afficherait l'information qui ne serait pas dans l'onglet mais bien
dans mon formulaire principal. Ce formulaire serait ouvert par mon
formulaire principal et il serait ancré(indéplacable), il serait
positionné au bon endroit et en enlevant tout le non
nécésessaire(barre de déplacement, etc.) et avec un cadre
transparent. Donc aucun danger d'atteindre un nombre de controle
maximum de cette facon...

Dis moi ce que t'en pense...


Bonjour AfterBoy

Ton explication est claire, le problème est clair mais tu t'embarques
dans la complication... Déjà, pour ajouter/retirer des pages à un
contrôle TabControl, il faut que ton formulaire soit en mode création.
N'oublie pas non plus que le nombre de contrôles est limité à 754 s ur
un formulaire, on peut y arriver assez vite
Si malgré tout tu persistes, voila un petit bout de code qui pourrait
te mettre sur la voie.

Dim frm As Form
Dim tbc As TabControl, pge As Page, rst As Recordset

docmd.openForm "tonFormulaire",acDesign
Set frm = Forms!tonFormulaire
Set tbc = frm!tonControleTabControl
Set rst = currentDb.OpenRecordset("TaTableFruits",dbOpenDynaset)
rst.MoveLast
rst.MoveFirst
While not rst.EOF
set pge=tbc.Pages.Add
pge.Caption=rst!nomDuFruit
rst.MoveNext
Wend
rst.Close
docmd.Close acForm,"tonFormulaire",acSaveYes
set frm=nothing
set tbc=nothing
set pge=nothing
set rst=nothing

Non testé donc non garanti...


Dans ton message
Bonjour,

Voici! J'ai un formulaire basé sur une table Fruits. Ce formulaire a
un controle [OngletFruits] et sous chaque page de fruit , un autre
sous-onglet [OngletVariété]. Cet onglet possède autant de page qu 'il
y a d'enregistrements de ma table fruit. Si j'ajoute un fruits à ma
table fruits, et bien je veux qu'il y ait une page de plus de créé a
mon controle [OngletFruits] avec son nom. Et pour aller encore plus
loin dans chaque controle onglet fruits, il y aurait un autre onglet
qui m'énumérerais toutes les variétés possible pour chacun des
fruits et qui serait aussi basé sur une table. Donc pour résumer, 2
onglets imbriqués et controlés toutes les 2 par des enregistrements
d'une table. Si on supprime un ongletFruit et bien il faut aussi
supprimer le fruit de la table. On doit pouvoir aussi ajouter une
variété a un fruit et aussi de supprimer une variété. Ca
remplacerait un peu un formulaire et son sous-formulaire et ca serait
plus visuel et l'information serait plus facile et rapide d'accès.

Si quelqu'un a déja fait ce genre de truc, et bien je serais
intéressé d'avoir un bout de code et/ou tout commentaire qui pourra it
m'aider.

Merci.


--
Voilou !
Bon courage !
Cordialement,
ze Titi



Avatar
ze Titi
Bonjour AfterBoy

Mon avis est que cette solution est loin d'être la meilleure. Où est
donc l'intêret d'un contrôle onglet si c'est pour ne pas utiliser les
pages ? L'ouverture de ton formulaire en mode création peut-être
masquée, ça ne se verrait pas, mais ça peut prendre du temps selon la
machine sur laquelle tourne ton application.
Pour répondre à ton problème, je passerais plutôt par une zone de liste
(déroulante ou non) qui conditionnerait l'affichage de tes informations
dans ton formulaire lors d'un clic dessus. Mais ça n'est que mon
avis...


Dans ton message
Bojjour Zi Titi,

Je voulais savoir, quand on passe un formulaire en mode désign, on
ajoute par exemple 10 onglets et on revient en mode normal, est-ce que
visuellement ca donne un mauvais impression ou bien ca se fait
tellement rapide que l'on ne voit presque rien. Aussi pour me
simplifier la vie, je me créerais un formulaire avec mon controle
onglet dedans. Ce formulaire posséderait juste le controle onglet avec
les onglets appropriés et il n'y aurait aucun controle sous chaque
page, il servirait juste a voir les pages et quand je cliquerait sur
une page, je déplacerait mon recordet de mon formulaire principal et
afficherait l'information qui ne serait pas dans l'onglet mais bien
dans mon formulaire principal. Ce formulaire serait ouvert par mon
formulaire principal et il serait ancré(indéplacable), il serait
positionné au bon endroit et en enlevant tout le non
nécésessaire(barre de déplacement, etc.) et avec un cadre
transparent. Donc aucun danger d'atteindre un nombre de controle
maximum de cette facon...

Dis moi ce que t'en pense...


Bonjour AfterBoy

Ton explication est claire, le problème est clair mais tu t'embarques
dans la complication... Déjà, pour ajouter/retirer des pages à un
contrôle TabControl, il faut que ton formulaire soit en mode création.
N'oublie pas non plus que le nombre de contrôles est limité à 754 sur
un formulaire, on peut y arriver assez vite
Si malgré tout tu persistes, voila un petit bout de code qui pourrait
te mettre sur la voie.

Dim frm As Form
Dim tbc As TabControl, pge As Page, rst As Recordset

docmd.openForm "tonFormulaire",acDesign
Set frm = Forms!tonFormulaire
Set tbc = frm!tonControleTabControl
Set rst = currentDb.OpenRecordset("TaTableFruits",dbOpenDynaset)
rst.MoveLast
rst.MoveFirst
While not rst.EOF
set pge=tbc.Pages.Add
pge.Caption=rst!nomDuFruit
rst.MoveNext
Wend
rst.Close
docmd.Close acForm,"tonFormulaire",acSaveYes
set frm=nothing
set tbc=nothing
set pge=nothing
set rst=nothing

Non testé donc non garanti...


Dans ton message
Bonjour,

Voici! J'ai un formulaire basé sur une table Fruits. Ce formulaire a
un controle [OngletFruits] et sous chaque page de fruit , un autre
sous-onglet [OngletVariété]. Cet onglet possède autant de page qu'il
y a d'enregistrements de ma table fruit. Si j'ajoute un fruits à ma
table fruits, et bien je veux qu'il y ait une page de plus de créé a
mon controle [OngletFruits] avec son nom. Et pour aller encore plus
loin dans chaque controle onglet fruits, il y aurait un autre onglet
qui m'énumérerais toutes les variétés possible pour chacun des
fruits et qui serait aussi basé sur une table. Donc pour résumer, 2
onglets imbriqués et controlés toutes les 2 par des enregistrements
d'une table. Si on supprime un ongletFruit et bien il faut aussi
supprimer le fruit de la table. On doit pouvoir aussi ajouter une
variété a un fruit et aussi de supprimer une variété. Ca
remplacerait un peu un formulaire et son sous-formulaire et ca serait
plus visuel et l'information serait plus facile et rapide d'accès.

Si quelqu'un a déja fait ce genre de truc, et bien je serais
intéressé d'avoir un bout de code et/ou tout commentaire qui pourrait
m'aider.

Merci.


--
Voilou !
Bon courage !
Cordialement,
ze Titi



--
Voilou !
Cordialement,

Ze Titi