Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/07/2011, 17h27   #1
Membre du Club
 
Inscription : janvier 2008
Messages : 241
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 241
Points : 62
Points : 62
Par défaut Créer un formulaire dynamique

Bonjour,

Je développe sous access 2010 avec une BDD SQL Server. Je suis confronté à un problème et je ne sais pas par quel bout commencer!

Je dois créer un formulaire sur la base d'une table comportant une bonne centaine de champs!! Le hic est qu'en fonction des données de la table, je n'aurai pas besoin de tous les champs.

Plus précisément, ma table liste des articles pour lesquels je donne une multitude d'information (d'où les 110 champs) et , selon le type des articles, toutes les colonnes ne sont pas remplies. J'aimerais donc que mon formulaire access ne m'affiche que les champs qui contiennent des données (environ 30 champs).

Comment puis-je faire pour gérer dynamiquement mon formulaire en fonction des données de sa tables sources??

D'avance merci pour vos réponses.

Julius
funkyjul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 09h12   #2
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
Autant il est possible de dynamiser le formulaire au chargement, autant ça me semble impossible en passant d'un enregistrement à l'autre.
Concrètement, si on décide d'afficher tous les articles de type 1 alors on configure le formulaire avec les champs 10 à 40, si on choisi le type 2 alors on fait de même avec les champs 41 à 70 etc
par contre, si on décide d'afficher indistinctement tous les types, je ne vois pas les étiquettes et les sources de champ se modifier à chaque passage d'un enregistrement à l'autre.

Je pense que ce souci est la trace d'un manque d'analyse initiale.
pourquoi n'avoir pas une table de 30 champs avec des noms génériques (ch1, ch2, ch3, etc) et une table de paramêtres qui annonce les contenus et dont on utilise une colonne pour le texte des étiquettes
Type_article, nom1, étiq1, nom2, étiq2, etc

Perso, dans ce type de cas rencontré récement, j'ai utilisé ce que les pros appellent les méta données:
N°article, propriété, valeur_num, valeur_texte
ce qui fait que pour stocker 30 propriétés, on utilise 30 lignes qui décrivent le nom de la propriété et sa valeur, par exemple
1,nom,,rectangle
1,largeur,10,
1,longueur,100,
2,nom,,disque
2,diamètre,50,
et pour retrouver les caractéristiques des disques, une analyse croisée...
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 10h52   #3
Membre du Club
 
Inscription : janvier 2008
Messages : 241
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 241
Points : 62
Points : 62
Merci Simplifi pour votre réponse.

Tout cela d'un côté me rassure car je ne voyais vraiment pas comment m'y prendre. Un peu (beaucoup) de réflexion sera donc nécessaire.

Je vais essayer de morceler un peu ma table et d'en créer plusieurs ou plutôt utiliser les méta données afin de faciliter la création des formulaires. Mais avant de m'y plonger tête baissée, réfléchir un peu.

Je vous tiendrai au courant de mes résultats

Merci encore et bonne journée
funkyjul est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h57.


 
 
 
 
Partenaires

Hébergement Web