Bonjour à tous.
J'ai le problème suivant : j'ai créer un formulaier avec une recherche multi-critère basé sur une requète.
Dans cette requête, je recueil une multitude d'information de difféerntes tables liées. Mais il y a un problème (regardez le photo que j'ai joint avec)
La requête ne va pas classer juste la personne avec ID=1, ID=2... Mais va afficher TOUTES les différentes possiblités (je ne m'exprime pas bien, mais si vous regarder la photo ci-joint vous allez comprendre)
Ce qui fait que lors du résultat de ma recherche, au lieu de m'afficher juste Mr Yavec l'ID n°1 il va m'afficher X fois ce Mr. Y par ce que la requête affiche toute les possibilité.
J'ai tout essayé... DINSTINCT, DISTINCTROW... rien de marche.
Voici ici le code VB du de la liste de Résultat :
Et la structure de la requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 Private Sub RefreshQuery() SQL = "SELECT ID_Perso, Name, First_Name, Job_Title, Location, Language, Status, Salary, Last_PRP, Strenght, Weaknesses FROM requete_rechmulti Where requete_rechmulti.ID_Perso <>0 " If Not Me.chkJobTitle Then SQL = SQL & "And requete_rechmulti!Job_Title = '" & Me.cmbRechJobTitle & "' " End If If Not Me.chkLocation Then SQL = SQL & "And requete_rechmulti!Location = '" & Me.cmbRechLocation & "' " End If If Not Me.chkLanguage Then SQL = SQL & "And requete_rechmulti!Language = '" & Me.lstLanguage & "' " End If If Not Me.chkStatus Then SQL = SQL & "And requete_rechmulti!Status = '" & Me.cmbRechStatus & "' " End If If Not Me.chkSalary Then SQL = SQL & "And requete_rechmulti!Salary like '*" & Me.txtSalary & "*' " End If If Not Me.chkPRP Then SQL = SQL & "And requete_rechmulti!Last_PRP like '*" & Me.txtPRP & "*' " End If If Not Me.chkStrenght Then SQL = SQL & "And requete_rechmulti!Strenght = '" & Me.lstStrenght & "' " End If If Not Me.chkWeaknesses Then SQL = SQL & "And requete_rechmulti!Weaknesses = '" & Me.lstWeaknesses & "' " End If SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1)) SQL = SQL & ";" Me.lstResults.RowSource = SQL Me.lstResults.Requery End Sub
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT T_Perso.ID_Perso, T_Perso.Name, T_Perso.First_Name, T_Job_Title.Job_Title, T_Location.Location, T_Current_Benefits.Salary, T_Performance.Last_PRP, T_Kex_Competencies_Strenght.Strenght, T_Key_Competencies_Weaknesses.Weaknesses, T_Language_Name.Language, T_Perso_Status.Status FROM T_Kex_Competencies_Strenght, T_Key_Competencies_Weaknesses, (((T_Perso_Status INNER JOIN (T_Location INNER JOIN (T_Job_Title INNER JOIN T_Perso ON T_Job_Title.ID_Job_Title = T_Perso.Job_Title) ON T_Location.ID_Location = T_Perso.Location) ON T_Perso_Status.ID_Perso_Status = T_Perso.Status) INNER JOIN T_Current_Benefits ON T_Perso.ID_Perso = T_Current_Benefits.ID_Ref_Perso) INNER JOIN (T_Language_Name INNER JOIN T_Language ON T_Language_Name.ID_Language_Name = T_Language.Language) ON T_Perso.ID_Perso = T_Language.ID_Ref_Perso) INNER JOIN T_Performance ON T_Perso.ID_Perso = T_Performance.ID_Ref_Perso GROUP BY T_Perso.ID_Perso, T_Perso.Name, T_Perso.First_Name, T_Job_Title.Job_Title, T_Location.Location, T_Current_Benefits.Salary, T_Performance.Last_PRP, T_Kex_Competencies_Strenght.Strenght, T_Key_Competencies_Weaknesses.Weaknesses, T_Language_Name.Language, T_Perso_Status.Status HAVING (((T_Perso.ID_Perso)<>0));
Partager