Apparition ou disparition de contrôles avec mise en forme automatisée du formulaire

SkyCorp

XLDnaute Junior
Bonjour à tous,

Je dispose d'une base constituée d'une table principale tblPersonnes et de plusieurs tables en liaison avec cette table principale, notamment une table tblPays qui me sert à choisir la ou les langues parlées par les personnes de ma table principale.

Je souhaite créer un formulaire dont l'utilisateur peut accéder :
  • soit en lecture (mes zones de texte sont donc verrouillées et je supprime les bordures des zones de texte),
  • soit en édition pour, au choix, ajouter un nouvel enregistrement, ou modifier un enregistrement existant.

En mode édition, l'utilisateur accèderait à des sous-formulaires lui permettant de sélectionner des données dans des zones de liste déroulantes, d'entrer manuellement des données dans des zones de textes, ou de cliquer sur une image + lui permettant d'ajouter un enregistrement.
Par exemple, pour connaître les langues parlées par une personne, l'utilisateur sélectionnerait une 1ère langue dans une liste déroulante, puis cliquerait sur + pour ajouter une nouvelle zone de liste déroulante et une nouvelle image + juste en-dessous. Idem, une image - permettrait de supprimer un enregistrement. Il faudrait également qu'il n'y ait pas de chevauchement avec les autres contrôles en-dessous, et que tout se réorganise proprement.

Ensuite, l'utilisateur validerait via un bouton, et on basculerait sur un formulaire verrouillé en lecture. Dans ce cas, le nom des pays choisis seraient transformés en images (des petits drapeaux), qui apparaitraient les unes à côté des autres.
Un bouton permettrait de rebasculer vers le sous-formulaire d'édition.

Me reste à présent à tout mettre en place dans la pratique, mais je ne vois pas trop par quel bout commencer, en encore moins comment programmer tout ça.

Merci d'avance à ceux qui pourront m'aider.
 

chris

XLDnaute Barbatruc
Re : Apparition ou disparition de contrôles avec mise en forme automatisée du formula

Bonjour

Il te faut déjà une table de liaison entre les langues parlées et les tables personnes et pays puisqu'une personne parle de 0 (ou 1) à n langues. Elle aura à minima les champs ID personne et ID pays, utilisés en clé primaire composite ou avec un index unique si tu utilises une autre clé.

Pour la saisie, cela se règle par un sous formulaire ou un formulaire lié. L'idée des boutons + et - me parait compliquer inutilement les choses...

Pour la consultation, libre à toi de remplacer les valeurs par des symboles mais il va falloir travailler chaque zone d'affichage, probablement par VBA.
 

Lone-wolf

XLDnaute Barbatruc
Re : Apparition ou disparition de contrôles avec mise en forme automatisée du formula

I chris,

Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.

C'est 13 ambigu comme dicton, d'accord il s'appelle Je Suis Confu, mais quand même?! ;)

Et donc ce monsieur à appris à ses semblables à pêcher??? Les Prêtres devaient le détester et il n'est sûrement pas allé au Paradis. ;)

Mais pas seulement. Il a dit à l'homme : je prèfère t'apprendre à voler plutôt que t'en donner??? :confused: ;)



A+ :cool:
 
Dernière édition:

SkyCorp

XLDnaute Junior
Re : Apparition ou disparition de contrôles avec mise en forme automatisée du formula

Merci Chris pour ton retour,

Pour les tables, c'est bon, ce n'est pas ça le soucis. C'est au niveau du formulaire que je ne vois pas par quel bout le prendre.

Pourquoi dis-tu que des boutons + viennent compliqués les choses ? Là, je n'ai rien trouvé de mieux quand on ne sait pas combien de langues sont parlées. Et j'ai d'autres champs du même style à inclure. Tu as d'autres solutions à l'esprit ?
 

chris

XLDnaute Barbatruc
Re : Apparition ou disparition de contrôles avec mise en forme automatisée du formula

Bonjour

La solution simple est de créer un formulaire des personnes contenant un sous formulaire des langues parlées par cette personne.

Le sous-formulaire est multi enregistrement : on saisit (ou supprime) les la ou les langues : pas besoin de bouton ni de code, on est dans le fonctionnement normal de la BD.

Si on créer en automatique, la relation 1 à n étant définie dans la base, Access le crée automatiquement en mode mode feuille de données. Pour ma part je préfère un format tabulaire que l'on peut assortir au formulaire principal.
 

SkyCorp

XLDnaute Junior
Re : Apparition ou disparition de contrôles avec mise en forme automatisée du formula

C'est vrai, ça fonctionne pour une liste multi-enregistrements. J'avais zappé cette possibilité.
Je vais voir si ça fonctionne bien pour les autres cas similaires.

Pour l'affichage, sachant que je remplace chacun des enregistrements par un groupe de contrôles (par une image dans le cas des nationalités, mais ça peut aussi être des zones de texte par exemple), comment je peux gérer tout ça ?
J'ai en tête définir les positions en VBA et créer chacun des contrôles automatiquement en VBA, mais ça me semble une solution très lourde à mettre en place, et très prise de tête.
 

chris

XLDnaute Barbatruc
Re : Apparition ou disparition de contrôles avec mise en forme automatisée du formula

Re

Pas très fan de stocker des images dans la base.

Le plus léger est d'afficher l'image dont l'adresse est stockée dans la base.

Tu devrais trouver les explications et le code sur le site self access dans la partie grenier : je l'avais utilisé il a longtemps...
 

SkyCorp

XLDnaute Junior
Re : Apparition ou disparition de contrôles avec mise en forme automatisée du formula

Je me suis peut-être mal exprimé. Je suis d'accord avec toi pour les images, à part quelques images fixes, j'accède aux autres via un chemin défini.
Et merci pour le nom de ce site, j'ai trouvé plusieurs choses intéressantes :).

Par contre, pour positionner un nombre variable de contrôles, tout en déplaçant les contrôles existants, je n'ai pas trouvé de solutions.
 

chris

XLDnaute Barbatruc
Re : Apparition ou disparition de contrôles avec mise en forme automatisée du formula

Re

On peut faire des zones auto ajustables en hauteur mais dans la mesure où ils ne parlent sans doute pas 50 langues, je mettrais plutôt les drapeaux côte à côte : cela prendra une hauteur limitée, une largeur suffisante pour 1/2 douzaine de langue et évitera une hauteur variable pas très agréable à mon avis à l'utilisation.
 

SkyCorp

XLDnaute Junior
Re : Apparition ou disparition de contrôles avec mise en forme automatisée du formula

D'accord pour les drapeaux, je comptais faire comme ça justement. Pour le placement, je dois passer par du VBA ?

Pour les zones auto-ajustables, je gère ça comment ? C'est possible de, par exemple, définir une hauteur min et une auteur max, et si ma zone doit être plus grande que la hauteur max, d'ajouter une barre de défilement verticale ?
 

chris

XLDnaute Barbatruc
Re : Apparition ou disparition de contrôles avec mise en forme automatisée du formula

Re

Honnêtement j'ai utilisé cela, zone auto réductible et auto extractible (voir propriétés), sans problème sur les états mais je ne crois pas l'avoir fait sur des formulaires et les tests que j'ai faits maintenant, hors de tout contexte, ne sont pas concluants.

Nous sommes peu nombreux ici à maîtriser Access.

Moi-même je ne l'utilise pas beaucoup, car je conçois plus que je réalise.

Outre le site de Inisan que je t'ai indiqué où il y a aussi un forum, il y a aussi développez.com qui a une bonne équipe sur Access.

Cependant de façon générale, je te conseille de bien analyser l'ensemble de ton besoin, de maquetter ta base avec les principes prévus pour et qui fonctionnent bien.
Une fois testée, tu pourras ajouter des aspects plus cosmétiques, mais le faire trop tôt c'est partir sur du tout VBA où tu risques de réinventer la roue là où le moteur de BD fais très bien le taf tout seul...
 

SkyCorp

XLDnaute Junior
Re : Apparition ou disparition de contrôles avec mise en forme automatisée du formula

Je peux toujours voir pour travailler avec des fenêtres flottantes, mais ce n'est pas top.
Je vais sans doute partir sur des tailles fixes pour commencer. En espérant qu'il n'y aura pas trop de travail par la suite pour revoir ce point
 

Discussions similaires

Statistiques des forums

Discussions
312 273
Messages
2 086 701
Membres
103 374
dernier inscrit
damned42