lerci loufab mais dans ton exemple j'ai un problème d'ouverture de formulaire donc je ne vois pas que ça fonctionne
merci pour le lien je vais essayer avec ça
lerci loufab mais dans ton exemple j'ai un problème d'ouverture de formulaire donc je ne vois pas que ça fonctionne
merci pour le lien je vais essayer avec ça
Ta réponse me laisse perplexe.
C'est bien toi qui a écrit ça aujourd'hui à 22h12 ?
Comment à 22h59 sur peux écrire ça ?non cela ne règle pas la question de la liste déroulante restreinte ou alors j'ai un problème dans mes relations...
mais dans ton exemple j'ai un problème d'ouverture de formulaire donc je ne vois pas que ça fonctionne
Détecter les modifications formulaire Cloud storage et ACCESS
Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie
J'ai ouvert ton fichier, je ne pouvais ouvrir que le formule Produit et par le formulaire Profilé
Or ce que tu me présentais dans le formulaire Produit ne correspond pas à ce que je veux faire
J'ai donc retravailler sur un autre fichier en incluant une table tProduit mais cela ne règle pas le problème de la liste restreinte
Ma réponse te convient-elle maintenant?
Donc tu reçois un fichier avec 4 formulaires dont 2 que tu as fournis. Tu tentes d'ouvrir celui que tu as fourni, ça ne marche pas et tu n'as pas la curiosité de te dire "Tiens mais que sont c'est 2 nouveaux formulaires que voilà ?! Je vais cliquer dessus..."
Tu aurais pu peut-être te dire "Et si je demandais comment ça marche ?"
Je t'aurais simplement répondu "Ouvre le formulaire fProduit".
Détecter les modifications formulaire Cloud storage et ACCESS
Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie
Mais qu'est ce que cela change puisque en ouvrant le formulaire Produit cela ne correspond pas à ce que je veux faire?!
et pour ta gouverne, sache que je l'ai bien ouvert ton formulaire avant de reposter un message sur le forum si c'est ce que tu sous-entend!
Alors bonne nuit.
Détecter les modifications formulaire Cloud storage et ACCESS
Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie
Bonjour,
Reprenons ton problème.
1) Est-ce que dans le proto fourni la liste 1 filtre correctement la liste 2 ?
2) Est-ce qu'au terme de la sélection la sauvegarde fonctionne ?
3) Est-ce que si l'une des liste n'est pas renseignée la tentative de sauvegarde est sanctionnée par un message d'erreur ?
Dans l'attente d'une réponse.
Cordialement,
Détecter les modifications formulaire Cloud storage et ACCESS
Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie
Bonjour,
1.Le fichier tel que tu me l'a envoyé ne me permet pas de filtrer la liste Categorie après choix dans la liste Famille. Les tables n'étaient pas toute liées donc j'ai recrée la liaison entre elles et supprimé les anciennes tables. Mais je n'obtiens pas de liste déroulante restreinte de cette manière.
Je suis donc repartie de ton système de table tProduit, et j'ai créé un formulaire Produit. J'ai crée un combobox pour Famille et un combobox pour Categorie en intégrant pour ce dernier champ une requête. Cependant, dans ma requête j'ai bien inclus les champs suivants: idCat,Catégorie,refFamille et j'ai fait en sorte de masquer le idCat dans la liste de choix du combobox Catégorie pour avoir juste "IPE";"IPN"....(et pas "1 IPE"; "2 IPN"...). Sauf que cette combobox qui fait référence au champ idCategorie dans la table TProduit n'est pas de type numérique mais de type texte ce qui fait que ça ne peut pas fonctionner à moins que dans ma table Categorie, la clé primaire soit Categorie de type texte.
J'espère avoir été claire, si ça n'est pas le cas j'essaierai de transmettre mon fichier.
J'ai donc cherché sur le net et j'ai trouvé une solution qui fonctionne. Pour cela j'ai gardé mes 5 tables initiales.
Mes tables Catégorie et Famille ne sont plus liée à l'aide de la jointure "1-infini" à la table Profile. Elles sont liées à cette table à l'aide d'une jointure mais il n'y a rien ni du côté clé primaire ni du côté clé étrangère.
J'ai ensuite créé mon formulaire Profile avec deux listes déroulante: une pour Famille et une pour Catégorie. Pour le champ Categorie du formulaire j'ai indiqué la source suivante:
Cette solution fonction mais est-ce que je ne risque pas de rencontrer des problèmes du fait qu'il n'y ait plus d'intégrité référentielle entre les tables Famille-Profile et Categorie-Profile?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Select Categorie.idCat, Categorie.Categorie From Categorie Where Categorie.refFamille = Forms!Profile.Famille;
2 et 3.En ouvrant le formulaire tel que tu me l'a envoyé sans toucher aux relations, lorsque je veux passer à l'enregistrement suivant, je ne peux pas car je n'ai pas renseigné l'iD Catégorie. Mais quand je me mets sur le mode Création de ton formulaire je n'ai pas d'id Catégorie.
Ce que je ne comprends pas c'est comment as-tu pu créer un formulaire sans créer de relations entre les nouvelles tables que tu as créé ??
En espérant avoir été claire
Merci de ton aide,
Il n'y aucun rapport entre le filtrage des listes et la liaison des tables ou les relations qu'elles aient l'intégrité référentielle ou non.
Je pense qu'il faut que tu te documentes sur les sujets suivants. Qu'est ce qu'une relation ? Qu'est ce que l'intégrité référentielle ? Pourquoi utiliser des id numérique long au lieu du type texte ? Est-ce que l'intégrité référentielle en modif / suppression m'apporte ? Qu'est-ce que cela implique en terme d'IHM ?
Bref tout un tas de concepts théoriques mais qu'il est obligatoire de maitriser avant de passer à la conception.
Dans le proto fourni lorsque tu sélectionnes un I, la liste suivante affiche bien IPE, IPN et rien d'autre.
Lorsque tu enregistres avec les 2 listes renseignées les id sont bien les bons (cf les tables et au besoin aides-toi d'une requête). La relation est donc correctement effectuée et pourtant il n'y a pas de relations. Mais rien ne t'empêche d'en poser une. Mais ce n'est pas son absence qui fait que cela ne marche pas. La preuve !
Observe la source du formulaire et celle des 2 listes, enregistre une fiche est regarde la table, au besoin crée une requête. Il n'y a rien de sorcier c'est juste écrire la bonne valeur au bon endroit dans la table. Les valeurs sont simplement défini par tes choix tant que ce concept n'est pas assimilé, inutile d'aller plus loin dans l'ihm.
Il faut également que tu prennes l'habitude de données le même nom pour des clefs qui doivent correspondre. C'est la base pour que ton modèle soit facile à lire par tous comme les Id doivent commencer par ID.
Mais avant !
Les concepts des bases de données :
http://mhubiche.developpez.com/Access/cours/bases/
http://mhubiche.developpez.com/Access/tutoJointures/
et ça pour mettre en pratique
http://jeannot45.developpez.com/arti...tionrequetes1/
Coté ihm, pour comprendre comment ce formulaire fonctionne et commencer à devenir autonome :
http://loufab.developpez.com/tutorie...pelformulaire/
http://loufab.developpez.com/tutorie...ss/evenements/
Cordialement,
Détecter les modifications formulaire Cloud storage et ACCESS
Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie
merci pour les liens, en effet je me mélangeais un peu les pinceaux..
Concernant mon formulaire j'ai pu rétablir l'intégrité référentielle pour les clefs étrangères famille et catégorie.
En ce qui concerne la saisie obligatoire de tous les champs je suis passée par l'intermédiaire d'un bouton et j'ai utilisé le code VBA suivant (pour ceux que ça pourrait aider):
Après concernant les dimensions et les unités, ils doivent également être renseignés mais j'ai un autre soucis voilà pourquoi je ne les ai pas inclus encore dans le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub Commande11_Click() If IsNull(Me.Famille) or IsNull(Me.Categorie) or IsNull(Me.Profile) Then MsgBox "Touts les champs doivent être renseignés!" Else MsgBox "Enregistrement effectué" End If End Sub
Merci en tout cas pour vos liens et vos remarques,
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager