|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Guillaume Inscription : janvier 2011 Messages : 16 ![]() |
Bonjour à tous,
Je travaille à la création d'une 'BDD Universités'. Chaque Université est définie par un certain nombre de critères comme les matières d'enseignement, la participation à des programmes internationaux etc. A chaque Université sont associés des contacts et des boursiers. Le but de la BDD est de créer des mailings à un groupe de boursiers et/ou contacts à partir d'une sélection multi-critères de leur université d'appartenance: ville, région, matière(s), programmes internationaux etc. EX: Quels sont les contacts dont l'Université est située dans la région X et qui enseigne la Chimie? J'ai plein de problèmes! J'ai réussi à créer un formulaire de recherche multi-critères à partir du document mis en ligne par Charles A et qui a fait un peu le tour du web (http://cafeine.developpez.com/access...echerchemulti/). Tout marchait bien tant que j'utilisais la Table Université et la Table Ville (une ville par université). Je basais ma recherche multi-critères sur une Requête utilisant les deux tables et j'arrivais à extraire les Universités voulues en fonction de leur ville Mais, j'ai essayé de rajouter le critère Matière dans ma recherche et là ça ne marche plus ! J'ai une Table Matière liée à ma Table Université (plusieurs matières par université). Lorsque j'intègre des critères de cette Table Matière à ma Requête de recherche je n'extrais plus du tout ce que je veux, les Universités pouvant être listées plusieurs fois (si elles enseignent plusieurs matières) ou pas du tout (si l'on a précisé aucune matière, ce que je souhaite être possible). Je suis ainsi à la recherche de Tuto, Conseils, tout ce qui pourrait m'aider à me sortir du trou! Je peux mettre à disposition les tables et la base si cela est nécessaire. Je suis débutant en ACCESS... J'ai essayé d'être clair, j'espère ne pas avoir été trop long et ennuyeux! MERCI! |
|
|
00
|
|
|
#2 | ||
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonjour et bienvenue sur forum.
Citation:
Citation:
Tu peux poster une copie de ta base (format 2000 si possible), ça sera plus simple. Ne garde que ce qui concerne ton problème (tables avec quelques enregistrements et le formulaire de recherche). Ensuite compacte la base et compresse la pour la poster. A+ |
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Guillaume Inscription : janvier 2011 Messages : 16 ![]() |
Bonjour et merci pour cette réponse.
1- J'ai ajouté un SELECT DISTINCT dans mon code. La liste de résultats affiche maintenant effectivement bien 'un seul exemplaire' de chaque Université même si elle a plusieurs matières. Malheureusement, les résultats ne sont pas modifiés dans les 'statistiques' qui continuent d'afficher un nombre de résultats dépendant du nombre de matières. 2- Voilà une copie de la Base, simplifiée à l'essentiel nous concernant ici. Le formulaire en question s'appelle: F_Multi_Criteres_Univ Il est basé sur la requête: R_Multi_Criteres Les Universités sans Matière ne sont toujours pas sélectionnées dans la Liste de résultats (lstResults) 3- Vous constaterez que le critère 'Licence' (qui est un bouton à cocher dans la table Université) ne fonctionne pas. J'ai suivi le même procédé que pour les autres critères. Si jamais vous voyez ou est le problème... Merci encore mille fois. Guillaume |
|
|
00
|
|
|
#4 | ||
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonsoir,
J'ai essayé de faire le moins de modification possible, pour rester dans quelque chose de simple. Mais je dois avouer que le tutoriel s'applique mieux à une table qu'à une requête multi-tables. Pour éviter la multiplication des enregistrements j'ai enlevé la table T_Matières_Déroulante de la requête R_Multi_Criteres. Du coup le DISTINCT n'est plus nécessaire. Cela complique l'écriture du critère sur la matière, mais ça fonctionne. Code :
pour pouvoir le lier au champ NumMatière de la table T_Matières. J'ai simplifié les instructions SQL sources des listes déroulantes. J'espère ne pas avoir commis d'erreur. Je te laisse tester. A+ |
||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Guillaume Inscription : janvier 2011 Messages : 16 ![]() |
Bonjour,
Et merci! C'est exactement ce que je cherchais à faire et ça marche très bien. J'ai encore une ou deux petites questions concernant ce formulaire. - La case à cocher 'Licence' ne fonctionne pas. Quand je cherche à sélectionner les enregistrements des Universités qui proposent des Licences, cela provoque un bug et je ne sais pas comment le résoudre. J'ai bêtement utilisé la même méthode que pour les autres... - La Table Université est liée à une Table Contacts. L'idée est d'utiliser les résultats obtenus dans lstResults sur F_Multi_Criteres_Univ et d'extraire les coordonnées des contacts correspondants à notre choix d'universités. Là encore je bloque... Si tu as des pistes. Mais peut-être dois-je ouvrir une autre discussion dans le forum car c'est un autre sujet je crois. Bonne journée! Guillaume |
|
|
00
|
|
|
#6 | ||||||||||||||||
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonsoir,
Citation:
En fonction du type de champ, l'écriture du code SQL pour le critère est différent. (| signfie OU) Pour simplifier, j'ai remplacé la liste déroulante par un groupe d'options. cmbLicense -> grpLicense Le code du critère devient Code :
Le groupe d'option grpLicense a deux valeurs possibles : -1 (Oui) ou 0 (Non). Le code de la case à cocher License devient Code :
Code :
Citation:
(C'est ce que j'ai fait pour afficher les matières). L'idée est que les zones de listes lstMatières et lstContacts sont basées sur des requêtes filtrées sur la valeur de lstResults. Lorsque l'utilisateur clique sur la liste des résultats lstResults, on commande aux zones de listes lstMatières et lstContacts de réexécuter leurs requêtes respectives. Code :
lstContacts n'affiche pas la totalité des informations. Principe similaire, la colonne liée (qui donne sa valeur à la liste) de lstContacts est NumContact, la clé de la table T_Contacts. Sur clic sur la liste lstContacts, on appelle une procédure qui va mettre à jour des zone de textes Code :
Code :
Code :
Des sous-formulaires liés à lstResults par exemple. L'assistant ne sais pas le faire, mais il suffit de mettre en champ père et en champ fils le champ NumUniversité, qui bien sûr doit être un des champs de la source du sous-formulaire. C'est simple à mettre en oeuvre mais lent à l'affichage. A toi de voir si tu privilégie la simplicité (mise en oeuvre et maintenance) ou pas. A+ |
||||||||||||||||
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Guillaume Inscription : janvier 2011 Messages : 16 ![]() |
Bonjour,
Je commence à comprendre pas mal de choses et le projet avance - J'ai reproduit la zone de liste contacts pour créer une zone de liste boursiers, à partir d'une Table Boursiers que j'ai introduit. Ca fonctionne... presque! Il y a un petit bug à l'affichage des données, et je n'arrive pas à trouver ce qui cloche... - Deuxième chose: Pour une sélection d'Université (ex: les Universités de la ville d'Astana), j'aimerais pouvoir faire un mailing à tous les contacts de toutes les Universités correspondantes. En gros, extraire toutes les adresses mails correspondants à cette recherche. Puis-je utiliser la lstResults pour cela? Ca devrait être la dernière chose, après je me débrouille tout seul Guillaume |
|
|
00
|
|
|
#8 | ||||
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonsoir,
Citation:
Nom de la liste : lstBoursiers Nom de la procédure : lstBousiers_Click (manquait un r) A part ça tu a très bien reproduit ce que j'avais fait pour lstContacts. Impeccable .Citation:
Code :
L'instruction SQL est de type requête UNION de manière à avoir les champs Mail1 et Mail2 dans une seule et même colonne. Ensuite le code utilise un objet recordset pour parcourir le jeu d'enregistrements résultant de l'instruction SQL de sélection. Dans la pièce jointe CreerEmailsContactsTous est appelé chaque fois qu'on change un critère de sélection. Il vaudrait peut-être mieux prévoir un bouton de commande, dans la version finale de ton application. Si tu as Microsoft Outlook, on peut même créer l'email. A+ |
||||
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Guillaume Inscription : janvier 2011 Messages : 16 ![]() |
Bonjour !
Au risque d'être ennuyeux, je vais me répéter: merci ! ![]() * L'extraction des adresses mails, c'est exactement ce que je cherchais à faire. Il est vrai qu'il serait plus simple de les extraire directement dans un mail Outlook, en cliquant sur un bouton... Tu crois que tu me dirais comment faire..? Je pourrais comme ça le reproduire pour l'extraction des emails boursiers dont j'ai créé la macro. * Une autre question. Les champs correspondants aux contacts et boursiers ne sont pas modifiables dans le Formulaire de recherche multi-critères. Comment modifier ce paramètre? Et faire en sorte que l'on puisse changer les données directement depuis ce 'moteur de recherche'? Merci, Guillaume |
|
|
00
|
|
|
#10 | ||||
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonjour,
Pour la modification des informations des contacts et des boursiers, le plus simple est de créer des formulaires, que l'on ouvre sur double-clic. Code :
Code :
Chez moi je n'utilise pas Outlook. Il n'est pas configuré. J'ai un comportement anormal qui est peut-être dû à cela : Outlook se ferme mal (Il reste un processus Outlook.exe en mémoire). A+ |
||||
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Guillaume Inscription : janvier 2011 Messages : 16 ![]() |
Bonjour,
Quand on croit que y'en a plus, bah y'en a encore! * Concernant la recherche Multi-critères générale : - Si on clique deux fois de suite sur un 'critère' (ce qui revient à sélectionner le critère puis tout de suite le dé-sélectionner), on perd dans lstResults la liste complète des Universités. Comment peut-on faire pour que cela revienne?? - Cliquer sur le critère 'Programme PhD' divise de fait les enregistrements en fonction du type de programme PhD (Ingénierie, Droit, ou Matière non précisée). Comment peut-on faire pour avoir une option 'Tous', qui permettrait de sélectionner les établissements qui ont tous un Programme PhD, peu importe la matière? * J'ai rajouté des recherches multi-critères pour les Boursiers et les Contacts. J'y arrive à peu près, ce qui est déjà un gros progrès, mais : - Sélectionner les Boursiers ou Contacts par Ville... Impossible! J'ai tout essayé et ça ne veut jamais marcher... - Dans la recherche Multi critères Boursiers, le Oui/Non francophone déconne et pareil, impossible de trouver là ou j'ai écrit une bêtise... Voilà, Merci ! Guillaume |
|
|
00
|
|
|
#12 | ||||||||||||
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonsoir,
Citation:
Il faut remplacer Code :
Code :
Citation:
La source du contenu est une requête union de trois requêtes. Code :
Le code traitant le critère PhD : Code :
Citation:
Il n'y a qu'une colonne et sa largeur est définie à 0cm ==> elle est donc invisible. Citation:
A+ |
||||||||||||
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Guillaume Inscription : janvier 2011 Messages : 16 ![]() |
Bonjour,
Impossible d'ouvrir les formulaires dans le fichier 'BDD Univ8' que tu as joint sans qu'ACCESS n'ouvre des messages d'erreur. J'ai essayé sur deux postes différents et le problème est toujours le même. Le fichier joint ici contient deux impressions d'écran te montrant les problèmes. J'espère que tu pourras trouver d'où ça vient... Merci Guillaume |
|
|
00
|
|
|
#14 |
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonjour,
C'est un problème de référence Visual Basic à Outlook. J'ai modifié la base avec Access 2007 ce qui a changé la référence de "Microsoft Outlook 11.0 Object Library" en "Microsoft Outlook 12.0 Object Library". Il suffit d'aller dans l'éditeur Visual Basic et d'afficher les références (menu outils). Ensuite tu décoches la ou les références dont le nom commence par MANQUANTE. Enfin, tu re-coches les référence qui étaient manquantes. J'ai réouvert la base en 2003, rectifié la référence, et remplacé la pièce jointe de mon post d'hier. A+ |
|
|
00
|
|
|
#15 |
|
Invité de passage
![]() Guillaume Inscription : janvier 2011 Messages : 16 ![]() |
Bonsoir à toi,
Il y a malheureusement toujours un problème qui se concentre sur le critère 'Programme PhD'. Un clic dessus et cela m'envoie la fenêtre de bug. Tu verras en pièce jointe ce qu'il en est. J'ai vérifié la syntaxe du code mais n'ai pas trouvé d'erreur. Et j'imagine que si cela marche chez toi c'est qu'il s'agit peut-être d'un problème de compatibilité comme hier... Voilà, Merci pour ta patience, Guillaume |
|
|
00
|
|
|
#16 | ||
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonsoir,
J'ai remis un test sur cmbRechPhD (comme pour cmbRechMatière) pour m'assurer que la valeur n'est pas Null. Avec un critère de type texte ça passe, mais avec les autres types ça crée du SQL incorrect. Code :
|
||
|
|
00
|
|
|
#17 | ||
|
Invité de passage
![]() Guillaume Inscription : janvier 2011 Messages : 16 ![]() |
Bonjour,
La recherche multi-critères fonctionne parfaitement maintenant! ![]() Mais ça ne m'empêche pas d'avoir d'autres petits problèmes... - Je créée le Formulaire Universités. J'ai créée à l'intérieur deux sous-formulaires pour choisir les Matières de spécialité de cette université et les Matières associées au programme PhD. Malheureusement je n'arrive pas à lier ces choix avec le la Table Matières et indépendamment l'une de l'autre... Je ne suis vraiment pas bon et je m'arrache vraiment les cheveux... ![]() - Je voudrais pouvoir ajouter des pièces jointes, que je stockerai dans un fichier en local en dehors de la BDD. Sous ACCES 2003, j'ai compris que c'était un peu plus compliqué (en tout cas pour moi!) Je suis tombé sur un post dans le forum indiquant qu'on pouvait utiliser ce code ci en le placant dans un module. Code :
Merci à toi si tu t'y penches! Guillaume |
||
|
|
00
|
|
|
#18 | |||||||
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonjour,
Citation:
En revanche, le sous-formulaire R_Matières_PhD a pour source de données la table T_Matières_Déroulante. Je pense que sa source devrait être la table T_PhD. Ensuite, concernant la source du contenu de la zone de liste modifiable Matière. Dans le sous-formulaire R_Matières_Déroulante on a Code sql :
Code sql :
Code sql :
A+ |
|||||||
|
|
10
|
|
|
#19 |
|
Invité de passage
![]() Guillaume Inscription : janvier 2011 Messages : 16 ![]() |
Merci ! Beaucoup et pour tout, je clos la discussion là dessus, les échanges avec toi m'auront énormément fait avancer
Bonne continuation!
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com