Access choisir les champs affiche par du code
Résolu
metalque89
Messages postés
35
Statut
Membre
-
metalque89 Messages postés 35 Statut Membre -
metalque89 Messages postés 35 Statut Membre -
Bonjour,
Je dispose de 2 tables appelees "Groupe" et "Produit".
Ma table "Groupe" possede un champs Nom de type texte et 4 champs de type oui/non qui correspondent a des caracteristiques. Pour chaque enregistrement, je coche les champs qui definissent les caracteristiques de chaque groupe.
Exemple:
Pour ma table "Produit", je possede un champs Nom_Produit et Nom_Groupe de type texte et les 4 meme champs de type oui/non.
Exemple:
Tous les produits de meme type ont les memes caracteristiques.
Exemple: si j'ai 2 produits du groupe "cylindre", ils ont tout les 2 une hauteur et un rayon mais pas de longueur ni de largeur
J'aimerais creer un formulaire ou une requete qui lorsque je selectionne un produit, ne m'affiche que les champs de valeur "oui", le tout sans creer un formulaire pour chaque groupe.
Exemple:
Si je selectionne cube1,
Si je selectionne cylindre1,
J'espere avoir ete assez clair. Quelqu'un a t'il une idee pour resoudre mon casse tete?
Merci de votre aide.
PS: Desole pour les "e sans accent", j'ai un clavier QWERTY
Je dispose de 2 tables appelees "Groupe" et "Produit".
Ma table "Groupe" possede un champs Nom de type texte et 4 champs de type oui/non qui correspondent a des caracteristiques. Pour chaque enregistrement, je coche les champs qui definissent les caracteristiques de chaque groupe.
Exemple:
Nom Longueur Largeur Hauteur Rayon
cube oui oui oui non
cylindre non non oui oui
Pour ma table "Produit", je possede un champs Nom_Produit et Nom_Groupe de type texte et les 4 meme champs de type oui/non.
Exemple:
cube1 12 12 12 null
cylindre1 null null 25 9
Tous les produits de meme type ont les memes caracteristiques.
Exemple: si j'ai 2 produits du groupe "cylindre", ils ont tout les 2 une hauteur et un rayon mais pas de longueur ni de largeur
J'aimerais creer un formulaire ou une requete qui lorsque je selectionne un produit, ne m'affiche que les champs de valeur "oui", le tout sans creer un formulaire pour chaque groupe.
Exemple:
Si je selectionne cube1,
Nom_Produit Longueur Largeur Hauteur
cube1 12 12 12
Si je selectionne cylindre1,
Nom_Produit Hauteur Rayon
cylindre1 25 9
J'espere avoir ete assez clair. Quelqu'un a t'il une idee pour resoudre mon casse tete?
Merci de votre aide.
PS: Desole pour les "e sans accent", j'ai un clavier QWERTY
A voir également:
- Access choisir les champs affiche par du code
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
3 réponses
utilise dans une fonction :
Me![nom_du_champ].Visible = True (ou false)
à toi d'écrire la ou les conditions.
Me![nom_du_champ].Visible = True (ou false)
à toi d'écrire la ou les conditions.
Si j'ai bien compris, tu écrirais juste
If Me!Rayon = Null Then
Me!Rayon.visible=False
Else
Me!Rayon.Visible=True
End If
Et tu mets ça dans la propriété Sur activation, de façon à ce qu'Access actualise la présentation à chaque changement d'enregistrement
If Me!Rayon = Null Then
Me!Rayon.visible=False
Else
Me!Rayon.Visible=True
End If
Et tu mets ça dans la propriété Sur activation, de façon à ce qu'Access actualise la présentation à chaque changement d'enregistrement
Bonjour, j'ai finalement trouve une solution qui me conviens que je poste ici pour ceux qui en auront besoin a l'avenir:
Quelques precisions, l'exemple que j'avais donne etais simplifie, mes tables s'appellent en realite "groupe" et "nomproduit". Ma table "groupe" compte 5 champs texte et un nombre indetermine de booleans qui sont mes caracteristiques
Au niveau du principe, j'affiche tous mes champs de la table "groupe" dans une liste nommee list_groupe (je cache les champs que je veux pas voir), par le code ci-dessous (trouve sur internet) je determine le nombre de champs dans ma table.
Ensuite, j'ecrit le code SQL qui me permettra de n'afficher que les champs qui sont coches.
Et pour finir je modifie le code SQL de ma requete deja existante par celui que je viens de trouve
(code trouve sur internet)
La requete obtenue est affichee dans un sous formulaire,
voila, j'espere avoir assez detaille ma solution.
++
Quelques precisions, l'exemple que j'avais donne etais simplifie, mes tables s'appellent en realite "groupe" et "nomproduit". Ma table "groupe" compte 5 champs texte et un nombre indetermine de booleans qui sont mes caracteristiques
Au niveau du principe, j'affiche tous mes champs de la table "groupe" dans une liste nommee list_groupe (je cache les champs que je veux pas voir), par le code ci-dessous (trouve sur internet) je determine le nombre de champs dans ma table.
'On determine le nombre de champs dans la table
Dim Nombre_Champs As Integer
Nombre_Champs = 0
Dim MCat As New ADOX.Catalog
Dim MTable As ADOX.Table
Set MCat.ActiveConnection = CurrentProject.Connection
Set MTable = MCat.Tables("groupe")
Nombre_Champs = (MTable.Columns.Count)
Ensuite, j'ecrit le code SQL qui me permettra de n'afficher que les champs qui sont coches.
'On ecrit la requete SQL
Dim SQL As String
SQL = "SELECT nomproduit.[Nom]" 'On selectionne avant tout le nom du produit
For i = 5 To Nombre_Champs - 1 'On ne s'interesse pas aux 5 premiers champs et indice commence a 0
If Me.List_Groupe.Column(i) <> 0 Then '0 est la valeur lorsque la case n'est pas cochee
SQL = SQL & ", nomproduit.[" & CurrentDb.TableDefs("groupe").Fields(i).Name & "]"
End If
Next i
SQL = SQL & " FROM nomproduit;"
Et pour finir je modifie le code SQL de ma requete deja existante par celui que je viens de trouve
Set Definition = CurrentDb.QueryDefs(Requete_caracteristiques) Definition.SQL = SQL Definition.Close RefreshDatabaseWindow ChangeRequeteDef = True
(code trouve sur internet)
La requete obtenue est affichee dans un sous formulaire,
voila, j'espere avoir assez detaille ma solution.
++
justement, comment ecrirais-tu
If "rayon de cube1 = null" then ...?