ok je test avec IN et je reviens donner des nouvelles.
Merci
ok je test avec IN et je reviens donner des nouvelles.
Merci
Merci,
Après quelques essais j'ai fini par y arrivé.
voici ma solution:
Alors ca marche pas encore tout a fait correctement.
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 Dim SQL As String Dim SQLA As String SQL = Me.lstTrouv.RowSource SQLA = "SELECT Identité.ID, Identité.[nom latin], Identité.type, Identité.feuillage, Identité.exposition, [ID/Util].AUtil" SQLA = SQLA & " FROM Identité INNER JOIN [ID/Util] ON Identité.ID = [ID/Util].IDPlante" SQLA = SQLA & " WHERE (Identité.ID IN (SELECT Identité.ID FROM (" & Replace(SQLA, ";", "") & ")))" SQLA = SQLA & " AND [ID/Util].AUtil ='" & Me.AUtil2 & "'" SQLA = SQLA & " ORDER BY Identité.[nom latin];" Me.lstTrouv.RowSource = SQLA Me.lstTrouv.Requery If Me.lstTrouv.ListCount = 1 Or Me.lstTrouv.ListCount = 0 Then Me.NCount.Caption = "Résultat : " & Me.lstTrouv.ListCount & " plante" Else Me.NCount.Caption = "Résultat : " & Me.lstTrouv.ListCount & " plantes" End If If Me.lstTrouv.ListCount = 0 Then btnPrint.Enabled = False Else btnPrint.Enabled = True End If
Disons que pour un critère autre utilisation ca marche mais curieusement lorsque je met mon deuxième critère il ne tient plus compte du premier !
Donc au lieu de cumuler mes critère il les remplace!
Une idée?
J'ai donc trouver d'ou me vient une l'erreur j'avais SQLA dans les () au lieu de SQL.
Donc maintentant ca m'ajoute bien le nouveau critère au premier mais si celui-ci est changer par l'utilisateur il ajoute encore cette condition au lieu de rafraichir.
Je dois trouver un moyen de rafraichir systematiquement ma requete pour pas avoir les reste des autres selection!
CA Y EST!!!
me suffisait de bien rafraichir chaque sous requete avant le nouvel evenement ce qui donne:
1er autre utilisation:
2e autre utilisation:
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 RefreshQuery If Not IsNull(Me.AUtil1) Then AUtil2.Visible = True Dim SQL As String Dim SQLA As String SQL = Me.lstTrouv.RowSource SQLA = "SELECT Identité.ID, Identité.[nom latin], Identité.type, Identité.feuillage, Identité.exposition " SQLA = SQLA & " FROM TAutrUtil INNER JOIN (Identité INNER JOIN [ID/Util] ON Identité.ID = [ID/Util].IDPlante) ON TAutrUtil.AutrUtil = [ID/Util].AUtil" SQLA = SQLA & " WHERE (Identité.ID IN (SELECT Identité.ID FROM (" & Replace(SQL, ";", "") & ")))" SQLA = SQLA & " AND TAutrUtil.AutrUtil ='" & Me.AUtil1 & "'" SQLA = SQLA & " ORDER BY Identité.[nom latin];" Me.lstTrouv.RowSource = SQLA Me.lstTrouv.Requery If Me.lstTrouv.ListCount = 1 Or Me.lstTrouv.ListCount = 0 Then Me.NCount.Caption = "Résultat : " & Me.lstTrouv.ListCount & " plante" Else Me.NCount.Caption = "Résultat : " & Me.lstTrouv.ListCount & " plantes" End If If Me.lstTrouv.ListCount = 0 Then btnPrint.Enabled = False Else btnPrint.Enabled = True End If
3e utilisations:
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 Private Sub AUtil2_AfterUpdate() AUtil1_AfterUpdate If Not IsNull(Me.AUtil2) Then AUtil1.Locked = True AUtil3.Visible = True Dim SQL As String Dim SQLA As String SQL = Me.lstTrouv.RowSource SQLA = "SELECT Identité.ID, Identité.[nom latin], Identité.type, Identité.feuillage, Identité.exposition" SQLA = SQLA & " FROM TAutrUtil INNER JOIN (Identité INNER JOIN [ID/Util] ON Identité.ID = [ID/Util].IDPlante) ON TAutrUtil.AutrUtil = [ID/Util].AUtil" SQLA = SQLA & " WHERE (Identité.ID IN (SELECT Identité.ID FROM (" & Replace(SQL, ";", "") & ")))" SQLA = SQLA & " AND TAutrUtil.AutrUtil ='" & Me.AUtil2 & "'" SQLA = SQLA & " ORDER BY Identité.[nom latin];" Me.lstTrouv.RowSource = SQLA Me.lstTrouv.Requery MsgBox lstTrouv.RowSource If Me.lstTrouv.ListCount = 1 Or Me.lstTrouv.ListCount = 0 Then Me.NCount.Caption = "Résultat : " & Me.lstTrouv.ListCount & " plante" Else Me.NCount.Caption = "Résultat : " & Me.lstTrouv.ListCount & " plantes" End If If Me.lstTrouv.ListCount = 0 Then btnPrint.Enabled = False Else btnPrint.Enabled = True End If Else AUtil1.Locked = False AUtil3.Visible = False AUtil3.Value = Null End If End Sub
ect...
Merci a tous pour votre aide.
Bon week end
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