Access choisir les champs affiche par du code
Résolu
metalque89
Messages postés
33
Date d'inscription
Statut
Membre
Dernière intervention
-
metalque89 Messages postés 33 Date d'inscription Statut Membre Dernière intervention -
metalque89 Messages postés 33 Date d'inscription Statut Membre Dernière intervention -
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 ...?