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 19/08/2011, 09h59   #1
Invité de passage
 
Homme
Inscription : août 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 9
Points : 1
Points : 1
Par défaut Probléme formulaire de recherche multicritére

Bonjour à tous,

Je vous sollicite car j'ai un gros problème je suis actuellement en stage en entreprise dans une mairie et ma mission de stage est de faire une base de donnée relationnelle regroupant toutes les prises afin de savoir quel poste est branché dessus.

Alors pour faire la base de donnée pas de problème.
La base comporte 4 tables :
  • Les services (code service, Nom de service)
  • Les switchs (code switch, Nom de switch)
  • Les type de prises (code prise, Type de prise)
  • Prises (num prise, code service, code switch, code prises,num de port, nom du pc, num de tel, nom utilisateur, autre)

Le probléme maintenant c'est pour la réalisation du formulaire avec un sous formulaire a l'intérieur, je souhaiterai faire un formulaire de recherche multicritère pour que l'on puisse rechercher par services, par switch ou par type de prises.

J'ai suivit le tuto http://jeannot45.developpez.com/arti...multicriteres/ à la lettre mais impossible de lier les liste déroulante.

Je joint un screen de la base et du formulaire.

Merci d'avance de m'aider car c'est un projet que je doit rendre la semaine prochaine.
Fichiers attachés
Type de fichier : docx Pbs access.docx (83,7 Ko, 13 affichages)
floacc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 17h01   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 474
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 474
Points : 7 560
Points : 7 560
Quel est le problème ? Les listes dépendantes n'affichent pas d'info ? Elles affichent des données erronnées ?

Personnellement pour simplifier, dans un premier temps j'enlèverai le Union et je testerai seulement la partie de sélection.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2011, 11h42   #3
Invité de passage
 
Homme
Inscription : août 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 9
Points : 1
Points : 1
Citation:
Envoyé par marot_r Voir le message
Quel est le problème ? Les listes dépendantes n'affichent pas d'info ? Elles affichent des données erronnées ?
A+
Le problème en faite est que je ne peut faire de choix dans les liste j'ai seulement "---Tous---" qui s'affiche.
floacc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2011, 13h50   #4
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 474
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 474
Points : 7 560
Points : 7 560
Ok donc ton problème vient à priori du SQL de sélection.

Peux-tu le poster ?

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/08/2011, 14h41   #5
Invité de passage
 
Homme
Inscription : août 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 9
Points : 1
Points : 1
Citation:
Envoyé par marot_r Voir le message
Ok donc ton problème vient à priori du SQL de sélection.

Peux-tu le poster ?

A+
Code :
1
2
3
4
5
6
SELECT Distinct Services.[Code Service], Services.[Noms des services] 
FROM Services INNER JOIN Prises ON Services.[Code Service] = Prises.[Code Services] 
WHERE (((Prises.[Code Switch])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Switch]=0,[Prises].[Code Switch],[Formulaires]![PRISE RESEAU MODEL]![LD_Switch])) 
AND ((Prises.[Code Prises])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Prises]=0,[Prises].[Code Prises],[Formulaires]![PRISE RESEAU MODEL]![LD_Prises]))) 
ORDER BY Services.[Noms des services] 
UNION SELECT 0, " ---Tous---" FROM Services;
Voila le SQL.
Je ne sait pas d'ou peut provenir l'erreur?
Veut tu que je t'envoi la base de donnée et le formulaire que j'ai commencé a faire?
floacc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2011, 15h48   #6
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 474
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 474
Points : 7 560
Points : 7 560
Dans l'immédiat copie

Code sql :
1
2
3
4
5
SELECT DISTINCT Services.[Code Service], Services.[Noms des services] 
FROM Services INNER JOIN Prises ON Services.[Code Service] = Prises.[Code Services] 
WHERE (((Prises.[Code Switch])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Switch]=0,[Prises].[Code Switch],[Formulaires]![PRISE RESEAU MODEL]![LD_Switch])) 
AND ((Prises.[Code Prises])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Prises]=0,[Prises].[Code Prises],[Formulaires]![PRISE RESEAU MODEL]![LD_Prises]))) 
ORDER BY Services.[Noms des services]

dans l'éditeur de requête puis passe en mode 'conception' cela devrait te permettre de localiser le problème.

Pour voir d'où cela vient commence par enlever les critères => tu dois avoir des données.
Ensuite ajoute un seul critère => tu dois avoir des données
Ensuite ajoute un autre critère => tu dois avoir des données

et ainsi de suite.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/08/2011, 16h25   #7
Invité de passage
 
Homme
Inscription : août 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 9
Points : 1
Points : 1
Merci de t'on aide!
Je n'y croyait plus ca fonctionne!!

Maintenant comment fait ton pour afficher le résultat dans le sous formulaire?
Quand j'ouvre mon formulaire j'ai une boite qui s'affiche "Entrer les valeur des paramètre"

Que doit-je faire?
Fichiers attachés
Type de fichier : docx Sous Formulaire.docx (45,9 Ko, 7 affichages)
floacc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2011, 17h47   #8
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 474
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 474
Points : 7 560
Points : 7 560
Il faut que tu ai un champ [ID_Service] dans ton formulaire [RECH PRISE]
ou
vérifie qu'il ne faille pas remplacer [Formulaires] par [Forms].

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/08/2011, 09h00   #9
Invité de passage
 
Homme
Inscription : août 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 9
Points : 1
Points : 1
Bonjour,

Merci de ton aide encore une fois!

Le problème je crois vient de la requette, le sous formulaire je voudrai qu'il affiche :
  • Num Prises
  • Services
  • Switch
  • Types de prise

voici le SQL de ma requette:
Code :
1
2
3
4
5
6
7
8
9
SELECT Prises.[Numéro de port], Services.[Noms des services], Switch.[Nom du switch], [Types de prises].[Types de prises]
FROM [Types de prises] 
INNER JOIN (Switch INNER JOIN (Services INNER JOIN Prises 
ON Services.[Code Service] = Prises.[Code Services]) 
ON Switch.[Code Switch] = Prises.[Code Switch]) 
ON [Types de prises].[Code Prises] = Prises.[Code Prises]
WHERE (((Prises.[Code Services])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Services]=0,[Prises].[Code Services],[Formulaires]![PRISE RESEAU MODEL]![LD_Services])) 
AND ((Prises.[Code Switch])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Switch]=0,[Prises].[Code Switch],[Formulaires]![PRISE RESEAU MODEL]![LD_Switch])) 
AND ((Prises.[Code Prises])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Prises]=0,[Prises].[Code Prises],[Formulaires]![PRISE RESEAU MODEL]![LD_Prises])));
Je ne sais pas d'où viens l'erreur?
floacc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 13h31   #10
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 474
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 474
Points : 7 560
Points : 7 560
As-tu bien un champ [LD_Service] dans ton formulaire [RECH PRISE] ?

Ce formulaires est-il bien ouvert au moment de l'appel ?

As-tu essayé en remplacant [Formulaires] par [Forms], car normalement en SQL on voit les termes en anglais.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/08/2011, 13h46   #11
Invité de passage
 
Homme
Inscription : août 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 9
Points : 1
Points : 1
Merci j'ai réussi à me débrouiller ça marche!!

Maintenant j'ai une interrogation, ma première liste déroulante "service" et normalement triée par "noms de services" alphabétiquement
voici le SQL
Code :
1
2
3
4
5
SELECT DISTINCT Services.[Code Service], Services.[Noms des services] 
FROM Services INNER JOIN Prises ON Services.[Code Service] = Prises.[Code Services] 
WHERE (((Prises.[Code Switch])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Switch]=0,[Prises].[Code Switch],[Formulaires]![PRISE RESEAU MODEL]![LD_Switch])) 
AND ((Prises.[Code Prises])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Prises]=0,[Prises].[Code Prises],[Formulaires]![PRISE RESEAU MODEL]![LD_Prises]))) 
ORDER BY Services.[Noms des services] UNION SELECT 0, " ---Tous---"  FROM Services;
Mais la elle est afficher trier par le IDServices comment puis je faire pour quel se trie?

Et mon autre interrogation se porte sur le fait que j'ai l'impression que le formulaire est en mode ecriture c'est a dire que je peu écrire dedans cela me change ma base de donnée. comment faire pour qu'il soit uniquement un formulaire de recherche?
Faut t'il supprimer la barre lateral gauche.

Je met a disposition les screen.

merci d'avance
Fichiers attachés
Type de fichier : docx Supprimer barre gauche et Trie alpha.docx (54,3 Ko, 2 affichages)
floacc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 14h21   #12
Membre régulier
 
Guillaume
Inscription : décembre 2007
Messages : 161
Détails du profil
Informations personnelles :
Nom : Guillaume
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations forums :
Inscription : décembre 2007
Messages : 161
Points : 91
Points : 91
Bonjour.

Pour trier une réquête de type "Union", il faut placer la clause ORDER BY à la fin en indiquant l'alias du champ. Dans ton exemple ça donne :

Code :
1
2
3
4
5
6
7
8
9
10
SELECT DISTINCT Services.[Code Service], Services.[Noms des services] AS [Nom]
FROM Services INNER JOIN Prises ON Services.[Code Service] = Prises.[Code Services] 
WHERE (((Prises.[Code Switch])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Switch]=0,[Prises].[Code Switch],[Formulaires]![PRISE RESEAU MODEL]![LD_Switch])) 
AND ((Prises.[Code Prises])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Prises]=0,[Prises].[Code Prises],[Formulaires]![PRISE RESEAU MODEL]![LD_Prises]))) 
 
UNION 
 
SELECT 0, " ---Tous---"  AS [Nom] FROM Services
 
ORDER BY [Nom];
dut-dut est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/08/2011, 14h31   #13
Invité de passage
 
Homme
Inscription : août 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 9
Points : 1
Points : 1
Merci bien ca fonctionne!!

Tu ne sait pas comment faire pour que le formulaire soit utiliser que pour la recherche?
floacc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 15h11   #14
Membre régulier
 
Guillaume
Inscription : décembre 2007
Messages : 161
Détails du profil
Informations personnelles :
Nom : Guillaume
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations forums :
Inscription : décembre 2007
Messages : 161
Points : 91
Points : 91
Va voir en mode Création dans les propriétés de ton formulaire >> Onglet Données.

@+
dut-dut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 15h38   #15
Invité de passage
 
Homme
Inscription : août 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 9
Points : 1
Points : 1
OK merci!
Impeccable çà fonctionne.

Tu va peut être savoir comment faire le compte des lignes qui s'affiche dans une zone liste?

comme dans le tuto sauf que moi je n'ai pas fais de pied de sous formulaire suis je obliger dans faire un?
floacc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 17h37   #16
Membre régulier
 
Guillaume
Inscription : décembre 2007
Messages : 161
Détails du profil
Informations personnelles :
Nom : Guillaume
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations forums :
Inscription : décembre 2007
Messages : 161
Points : 91
Points : 91
Facile !

Si tu veux récupérer la valeur dans VBA :
Code :
Me.ZonedeListe.ListCount-1
Si tu veux l'afficher dans un champ du formulaire, tu places dans la propriété ControlSource :
Code :
=If(ZonedeListe.ListCount=0;0;ZonedeListe.ListCount-1)
dut-dut est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/08/2011, 09h02   #17
Invité de passage
 
Homme
Inscription : août 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 9
Points : 1
Points : 1
Super merci t'ou fonctionne.
Je suis soulager merci beaucoup!!!

Par contre derniére petite question y a t'il un moyen de transformer le formulaire en .exe?
floacc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 11h22   #18
Membre régulier
 
Guillaume
Inscription : décembre 2007
Messages : 161
Détails du profil
Informations personnelles :
Nom : Guillaume
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations forums :
Inscription : décembre 2007
Messages : 161
Points : 91
Points : 91
En .exe ??
Là je n'ai pas de réponse...

Tu peux utiliser le format .mde si ce que tu veux c'est protéger ton code.
Par contre si l'objectif c'est de créer un exécutable qui ne nécessite pas d'avoir Access installé sur le PC de l'utilisateur, je ne peux pas t'aider. Je ne sais même pas si c'est possible...
dut-dut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 14h49   #19
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 474
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 474
Points : 7 560
Points : 7 560
Il n'est pas possible de créer un .exe avec Access. Le plus approchant est :
  • un .mde (c-à-d une BD sans le code source)
  • et un runtime Access (c-à-d un programme qui te permet d'utiliser une base Access sans installer un vrai Access).

Attention une fois converti en .mde on ne peut pas facilement revenir au .mdb. Donc il est impératif de conserver une version .mdb de ton application.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h27.


 
 
 
 
Partenaires

Hébergement Web