Bonjour à tous,
J'essaie de filtrer une liste déroulante pour éviter de lister 400 lignes
d'une sous catégorie soit 20 catégorie de 20 sous catégorie. Donc j'ai deux
listes déroulantes:
Nom:Code catégorie - Source : Produits.Code catégorie
Contenu: SELECT DISTINCT Catégories.[Code catégorie], Catégories.[Nom de
catégorie] FROM Catégories ORDER BY Catégories.[Nom de catégorie];
2 Nom:Code Sous-catégorie - Source: Produits.Code Sous-catégorie
Contenu :SELECT [Sous-catégorie].[Code Sous-catégorie],
[Sous-catégorie].[Nom Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM
[Sous-catégorie] ORDER BY [Sous-catégorie].[Nom Sous-catégorie];
----------------------------------------------------------------------------
J'ai essayé ceci
Private Sub Code_Sous_catégorie_Click()
' Affiche un message si la zone de liste modifiable Code client est vide.
Dim strMsg As String, strTitre As String
Dim intStyle As Integer
Dim stLinkCriteria As String
stLinkCriteria = [Code catégorie]
If IsNull(Me![Code catégorie]) Or Me![Code catégorie] = "" Then
strMsg = "Vous devez sélectionner une catégorie"
strTitre = "Catégorie exigée"
intStyle = vbOKOnly
MsgBox strMsg, intStyle, strTitre
Cancel = True
End If
SELECT [Sous-catégorie].[Code Sous-catégorie], [Sous-catégorie].[Nom
Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM [Sous-catégorie]
WHERE ((([Sous-catégorie].[Code Catégorie])=stLinkCriteria)) ORDER BY
[Sous-catégorie].[Nom Sous-catégorie];
End Sub
------------------------------------------------------------------------------
J'aimerais que si catégorie est nul affiche tous
Et que si une valeur alors filtre les sous catégories
Bonjour à tous,
J'essaie de filtrer une liste déroulante pour éviter de lister 400 lignes
d'une sous catégorie soit 20 catégorie de 20 sous catégorie. Donc j'ai deux
listes déroulantes:
Nom:Code catégorie - Source : Produits.Code catégorie
Contenu: SELECT DISTINCT Catégories.[Code catégorie], Catégories.[Nom de
catégorie] FROM Catégories ORDER BY Catégories.[Nom de catégorie];
2 Nom:Code Sous-catégorie - Source: Produits.Code Sous-catégorie
Contenu :SELECT [Sous-catégorie].[Code Sous-catégorie],
[Sous-catégorie].[Nom Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM
[Sous-catégorie] ORDER BY [Sous-catégorie].[Nom Sous-catégorie];
----------------------------------------------------------------------------
J'ai essayé ceci
Private Sub Code_Sous_catégorie_Click()
' Affiche un message si la zone de liste modifiable Code client est vide.
Dim strMsg As String, strTitre As String
Dim intStyle As Integer
Dim stLinkCriteria As String
stLinkCriteria = [Code catégorie]
If IsNull(Me![Code catégorie]) Or Me![Code catégorie] = "" Then
strMsg = "Vous devez sélectionner une catégorie"
strTitre = "Catégorie exigée"
intStyle = vbOKOnly
MsgBox strMsg, intStyle, strTitre
Cancel = True
End If
SELECT [Sous-catégorie].[Code Sous-catégorie], [Sous-catégorie].[Nom
Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM [Sous-catégorie]
WHERE ((([Sous-catégorie].[Code Catégorie])=stLinkCriteria)) ORDER BY
[Sous-catégorie].[Nom Sous-catégorie];
End Sub
------------------------------------------------------------------------------
J'aimerais que si catégorie est nul affiche tous
Et que si une valeur alors filtre les sous catégories
Bonjour à tous,
J'essaie de filtrer une liste déroulante pour éviter de lister 400 lignes
d'une sous catégorie soit 20 catégorie de 20 sous catégorie. Donc j'ai deux
listes déroulantes:
Nom:Code catégorie - Source : Produits.Code catégorie
Contenu: SELECT DISTINCT Catégories.[Code catégorie], Catégories.[Nom de
catégorie] FROM Catégories ORDER BY Catégories.[Nom de catégorie];
2 Nom:Code Sous-catégorie - Source: Produits.Code Sous-catégorie
Contenu :SELECT [Sous-catégorie].[Code Sous-catégorie],
[Sous-catégorie].[Nom Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM
[Sous-catégorie] ORDER BY [Sous-catégorie].[Nom Sous-catégorie];
----------------------------------------------------------------------------
J'ai essayé ceci
Private Sub Code_Sous_catégorie_Click()
' Affiche un message si la zone de liste modifiable Code client est vide.
Dim strMsg As String, strTitre As String
Dim intStyle As Integer
Dim stLinkCriteria As String
stLinkCriteria = [Code catégorie]
If IsNull(Me![Code catégorie]) Or Me![Code catégorie] = "" Then
strMsg = "Vous devez sélectionner une catégorie"
strTitre = "Catégorie exigée"
intStyle = vbOKOnly
MsgBox strMsg, intStyle, strTitre
Cancel = True
End If
SELECT [Sous-catégorie].[Code Sous-catégorie], [Sous-catégorie].[Nom
Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM [Sous-catégorie]
WHERE ((([Sous-catégorie].[Code Catégorie])=stLinkCriteria)) ORDER BY
[Sous-catégorie].[Nom Sous-catégorie];
End Sub
------------------------------------------------------------------------------
J'aimerais que si catégorie est nul affiche tous
Et que si une valeur alors filtre les sous catégories
Bonjour,
L'idée est de créer une clause WHERE pour filtrer uniquement si la première
liste contient une valeur.
En outre, il vaut mieux utiliser l'événement AfterUpdate du contrôle
Code_catégorie plutôt que l'événement Click du contrôle Code_Sous_catégorie.
Private Sub Code_catégorie_AfterUpdate()
Dim sWHERE as String
Dim sSQL As String
If Not IsNull(Me.Code_Sous_catégorie)
sWHERE = vbCrLf & "WHERE ([Code Catégorie]=" & Me.Code_catégorie & ")"
End If
sSQL = "SELECT [Code Sous-catégorie], [Nom Sous-catégorie], [Code
Catégorie] FROM [Sous-catégorie]" & sWHERE & " ORDER BY [Nom Sous-catégorie];"
Me.Code_Sous_catégorie.RowSource = sSQL
End Sub
Tu peux mettre par défaut comme source du la liste sous catégorie la requête
non filtrée, puisqu'à priori la liste des catégories vaut Null par défaut
(sauf si elle est liée à un champ, auquel cas il faut modifier un peu le code
précédent...)Bonjour à tous,
J'essaie de filtrer une liste déroulante pour éviter de lister 400 lignes
d'une sous catégorie soit 20 catégorie de 20 sous catégorie. Donc j'ai deux
listes déroulantes:
Nom:Code catégorie - Source : Produits.Code catégorie
Contenu: SELECT DISTINCT Catégories.[Code catégorie], Catégories.[Nom de
catégorie] FROM Catégories ORDER BY Catégories.[Nom de catégorie];
2 Nom:Code Sous-catégorie - Source: Produits.Code Sous-catégorie
Contenu :SELECT [Sous-catégorie].[Code Sous-catégorie],
[Sous-catégorie].[Nom Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM
[Sous-catégorie] ORDER BY [Sous-catégorie].[Nom Sous-catégorie];
----------------------------------------------------------------------------
J'ai essayé ceci
Private Sub Code_Sous_catégorie_Click()
' Affiche un message si la zone de liste modifiable Code client est vide.
Dim strMsg As String, strTitre As String
Dim intStyle As Integer
Dim stLinkCriteria As String
stLinkCriteria = [Code catégorie]
If IsNull(Me![Code catégorie]) Or Me![Code catégorie] = "" Then
strMsg = "Vous devez sélectionner une catégorie"
strTitre = "Catégorie exigée"
intStyle = vbOKOnly
MsgBox strMsg, intStyle, strTitre
Cancel = True
End If
SELECT [Sous-catégorie].[Code Sous-catégorie], [Sous-catégorie].[Nom
Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM [Sous-catégorie]
WHERE ((([Sous-catégorie].[Code Catégorie])=stLinkCriteria)) ORDER BY
[Sous-catégorie].[Nom Sous-catégorie];
End Sub
------------------------------------------------------------------------------
J'aimerais que si catégorie est nul affiche tous
Et que si une valeur alors filtre les sous catégories
Bonjour,
L'idée est de créer une clause WHERE pour filtrer uniquement si la première
liste contient une valeur.
En outre, il vaut mieux utiliser l'événement AfterUpdate du contrôle
Code_catégorie plutôt que l'événement Click du contrôle Code_Sous_catégorie.
Private Sub Code_catégorie_AfterUpdate()
Dim sWHERE as String
Dim sSQL As String
If Not IsNull(Me.Code_Sous_catégorie)
sWHERE = vbCrLf & "WHERE ([Code Catégorie]=" & Me.Code_catégorie & ")"
End If
sSQL = "SELECT [Code Sous-catégorie], [Nom Sous-catégorie], [Code
Catégorie] FROM [Sous-catégorie]" & sWHERE & " ORDER BY [Nom Sous-catégorie];"
Me.Code_Sous_catégorie.RowSource = sSQL
End Sub
Tu peux mettre par défaut comme source du la liste sous catégorie la requête
non filtrée, puisqu'à priori la liste des catégories vaut Null par défaut
(sauf si elle est liée à un champ, auquel cas il faut modifier un peu le code
précédent...)
Bonjour à tous,
J'essaie de filtrer une liste déroulante pour éviter de lister 400 lignes
d'une sous catégorie soit 20 catégorie de 20 sous catégorie. Donc j'ai deux
listes déroulantes:
Nom:Code catégorie - Source : Produits.Code catégorie
Contenu: SELECT DISTINCT Catégories.[Code catégorie], Catégories.[Nom de
catégorie] FROM Catégories ORDER BY Catégories.[Nom de catégorie];
2 Nom:Code Sous-catégorie - Source: Produits.Code Sous-catégorie
Contenu :SELECT [Sous-catégorie].[Code Sous-catégorie],
[Sous-catégorie].[Nom Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM
[Sous-catégorie] ORDER BY [Sous-catégorie].[Nom Sous-catégorie];
----------------------------------------------------------------------------
J'ai essayé ceci
Private Sub Code_Sous_catégorie_Click()
' Affiche un message si la zone de liste modifiable Code client est vide.
Dim strMsg As String, strTitre As String
Dim intStyle As Integer
Dim stLinkCriteria As String
stLinkCriteria = [Code catégorie]
If IsNull(Me![Code catégorie]) Or Me![Code catégorie] = "" Then
strMsg = "Vous devez sélectionner une catégorie"
strTitre = "Catégorie exigée"
intStyle = vbOKOnly
MsgBox strMsg, intStyle, strTitre
Cancel = True
End If
SELECT [Sous-catégorie].[Code Sous-catégorie], [Sous-catégorie].[Nom
Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM [Sous-catégorie]
WHERE ((([Sous-catégorie].[Code Catégorie])=stLinkCriteria)) ORDER BY
[Sous-catégorie].[Nom Sous-catégorie];
End Sub
------------------------------------------------------------------------------
J'aimerais que si catégorie est nul affiche tous
Et que si une valeur alors filtre les sous catégories
Bonjour,
L'idée est de créer une clause WHERE pour filtrer uniquement si la première
liste contient une valeur.
En outre, il vaut mieux utiliser l'événement AfterUpdate du contrôle
Code_catégorie plutôt que l'événement Click du contrôle Code_Sous_catégorie.
Private Sub Code_catégorie_AfterUpdate()
Dim sWHERE as String
Dim sSQL As String
If Not IsNull(Me.Code_Sous_catégorie)
sWHERE = vbCrLf & "WHERE ([Code Catégorie]=" & Me.Code_catégorie & ")"
End If
sSQL = "SELECT [Code Sous-catégorie], [Nom Sous-catégorie], [Code
Catégorie] FROM [Sous-catégorie]" & sWHERE & " ORDER BY [Nom Sous-catégorie];"
Me.Code_Sous_catégorie.RowSource = sSQL
End Sub
Tu peux mettre par défaut comme source du la liste sous catégorie la requête
non filtrée, puisqu'à priori la liste des catégories vaut Null par défaut
(sauf si elle est liée à un champ, auquel cas il faut modifier un peu le code
précédent...)Bonjour à tous,
J'essaie de filtrer une liste déroulante pour éviter de lister 400 lignes
d'une sous catégorie soit 20 catégorie de 20 sous catégorie. Donc j'ai deux
listes déroulantes:
Nom:Code catégorie - Source : Produits.Code catégorie
Contenu: SELECT DISTINCT Catégories.[Code catégorie], Catégories.[Nom de
catégorie] FROM Catégories ORDER BY Catégories.[Nom de catégorie];
2 Nom:Code Sous-catégorie - Source: Produits.Code Sous-catégorie
Contenu :SELECT [Sous-catégorie].[Code Sous-catégorie],
[Sous-catégorie].[Nom Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM
[Sous-catégorie] ORDER BY [Sous-catégorie].[Nom Sous-catégorie];
----------------------------------------------------------------------------
J'ai essayé ceci
Private Sub Code_Sous_catégorie_Click()
' Affiche un message si la zone de liste modifiable Code client est vide.
Dim strMsg As String, strTitre As String
Dim intStyle As Integer
Dim stLinkCriteria As String
stLinkCriteria = [Code catégorie]
If IsNull(Me![Code catégorie]) Or Me![Code catégorie] = "" Then
strMsg = "Vous devez sélectionner une catégorie"
strTitre = "Catégorie exigée"
intStyle = vbOKOnly
MsgBox strMsg, intStyle, strTitre
Cancel = True
End If
SELECT [Sous-catégorie].[Code Sous-catégorie], [Sous-catégorie].[Nom
Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM [Sous-catégorie]
WHERE ((([Sous-catégorie].[Code Catégorie])=stLinkCriteria)) ORDER BY
[Sous-catégorie].[Nom Sous-catégorie];
End Sub
------------------------------------------------------------------------------
J'aimerais que si catégorie est nul affiche tous
Et que si une valeur alors filtre les sous catégories
Bonjour LiR,
Merçi pour ta réponse, voici la version adaptée que j'ai utilisé, mais il y
a un petit problème je ne peux pas vérifier il m'affiche erreur de
compilation END SUB il ne s'arrete pas et continue après le END SUB ???
Private Sub Code_catégorie_Dirty(Cancel As Integer)
Dim sWHERE As String
Dim sSQL As String
If Not IsNull(Me.[Code Sous catégorie]) Then
sWHERE = vbCrLf & "WHERE ([Code Catégorie]=" & Me.[Code
catégorie] & ")"
End If
sSQL = "SELECT [Sous-catégorie].[Code Sous-catégorie],
[Sous-catégorie].[Nom Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM
[Sous-catégorie] & sWHERE & ORDER BY [Nom Sous-catégorie];"
Me.[Code Sous-catégorie].RowSource = sSQL
'Source d'origine du bouton sous catégorie
'SELECT [Sous-catégorie].[Code Sous-catégorie], [Sous-catégorie].[Nom
Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM [Sous-catégorie]
ORDER BY [Sous-catégorie].[Nom Sous-catégorie];
'Exemple donné et modifié plus haut
' sSQL = "SELECT [Code Sous-catégorie], [Nom Sous-catégorie], [Code
catégorie] FROM [Sous-catégorie] & sWHERE & ORDER BY [Nom Sous-catégorie];"
' Me.Code_Sous_catégorie.RowSource = sSQL
End SubBonjour,
L'idée est de créer une clause WHERE pour filtrer uniquement si la première
liste contient une valeur.
En outre, il vaut mieux utiliser l'événement AfterUpdate du contrôle
Code_catégorie plutôt que l'événement Click du contrôle Code_Sous_catégorie.
Private Sub Code_catégorie_AfterUpdate()
Dim sWHERE as String
Dim sSQL As String
If Not IsNull(Me.Code_Sous_catégorie)
sWHERE = vbCrLf & "WHERE ([Code Catégorie]=" & Me.Code_catégorie & ")"
End If
sSQL = "SELECT [Code Sous-catégorie], [Nom Sous-catégorie], [Code
Catégorie] FROM [Sous-catégorie]" & sWHERE & " ORDER BY [Nom Sous-catégorie];"
Me.Code_Sous_catégorie.RowSource = sSQL
End Sub
Tu peux mettre par défaut comme source du la liste sous catégorie la requête
non filtrée, puisqu'à priori la liste des catégories vaut Null par défaut
(sauf si elle est liée à un champ, auquel cas il faut modifier un peu le code
précédent...)Bonjour à tous,
J'essaie de filtrer une liste déroulante pour éviter de lister 400 lignes
d'une sous catégorie soit 20 catégorie de 20 sous catégorie. Donc j'ai deux
listes déroulantes:
Nom:Code catégorie - Source : Produits.Code catégorie
Contenu: SELECT DISTINCT Catégories.[Code catégorie], Catégories.[Nom de
catégorie] FROM Catégories ORDER BY Catégories.[Nom de catégorie];
2 Nom:Code Sous-catégorie - Source: Produits.Code Sous-catégorie
Contenu :SELECT [Sous-catégorie].[Code Sous-catégorie],
[Sous-catégorie].[Nom Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM
[Sous-catégorie] ORDER BY [Sous-catégorie].[Nom Sous-catégorie];
----------------------------------------------------------------------------
J'ai essayé ceci
Private Sub Code_Sous_catégorie_Click()
' Affiche un message si la zone de liste modifiable Code client est vide.
Dim strMsg As String, strTitre As String
Dim intStyle As Integer
Dim stLinkCriteria As String
stLinkCriteria = [Code catégorie]
If IsNull(Me![Code catégorie]) Or Me![Code catégorie] = "" Then
strMsg = "Vous devez sélectionner une catégorie"
strTitre = "Catégorie exigée"
intStyle = vbOKOnly
MsgBox strMsg, intStyle, strTitre
Cancel = True
End If
SELECT [Sous-catégorie].[Code Sous-catégorie], [Sous-catégorie].[Nom
Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM [Sous-catégorie]
WHERE ((([Sous-catégorie].[Code Catégorie])=stLinkCriteria)) ORDER BY
[Sous-catégorie].[Nom Sous-catégorie];
End Sub
------------------------------------------------------------------------------
J'aimerais que si catégorie est nul affiche tous
Et que si une valeur alors filtre les sous catégories
Bonjour LiR,
Merçi pour ta réponse, voici la version adaptée que j'ai utilisé, mais il y
a un petit problème je ne peux pas vérifier il m'affiche erreur de
compilation END SUB il ne s'arrete pas et continue après le END SUB ???
Private Sub Code_catégorie_Dirty(Cancel As Integer)
Dim sWHERE As String
Dim sSQL As String
If Not IsNull(Me.[Code Sous catégorie]) Then
sWHERE = vbCrLf & "WHERE ([Code Catégorie]=" & Me.[Code
catégorie] & ")"
End If
sSQL = "SELECT [Sous-catégorie].[Code Sous-catégorie],
[Sous-catégorie].[Nom Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM
[Sous-catégorie] & sWHERE & ORDER BY [Nom Sous-catégorie];"
Me.[Code Sous-catégorie].RowSource = sSQL
'Source d'origine du bouton sous catégorie
'SELECT [Sous-catégorie].[Code Sous-catégorie], [Sous-catégorie].[Nom
Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM [Sous-catégorie]
ORDER BY [Sous-catégorie].[Nom Sous-catégorie];
'Exemple donné et modifié plus haut
' sSQL = "SELECT [Code Sous-catégorie], [Nom Sous-catégorie], [Code
catégorie] FROM [Sous-catégorie] & sWHERE & ORDER BY [Nom Sous-catégorie];"
' Me.Code_Sous_catégorie.RowSource = sSQL
End Sub
Bonjour,
L'idée est de créer une clause WHERE pour filtrer uniquement si la première
liste contient une valeur.
En outre, il vaut mieux utiliser l'événement AfterUpdate du contrôle
Code_catégorie plutôt que l'événement Click du contrôle Code_Sous_catégorie.
Private Sub Code_catégorie_AfterUpdate()
Dim sWHERE as String
Dim sSQL As String
If Not IsNull(Me.Code_Sous_catégorie)
sWHERE = vbCrLf & "WHERE ([Code Catégorie]=" & Me.Code_catégorie & ")"
End If
sSQL = "SELECT [Code Sous-catégorie], [Nom Sous-catégorie], [Code
Catégorie] FROM [Sous-catégorie]" & sWHERE & " ORDER BY [Nom Sous-catégorie];"
Me.Code_Sous_catégorie.RowSource = sSQL
End Sub
Tu peux mettre par défaut comme source du la liste sous catégorie la requête
non filtrée, puisqu'à priori la liste des catégories vaut Null par défaut
(sauf si elle est liée à un champ, auquel cas il faut modifier un peu le code
précédent...)
Bonjour à tous,
J'essaie de filtrer une liste déroulante pour éviter de lister 400 lignes
d'une sous catégorie soit 20 catégorie de 20 sous catégorie. Donc j'ai deux
listes déroulantes:
Nom:Code catégorie - Source : Produits.Code catégorie
Contenu: SELECT DISTINCT Catégories.[Code catégorie], Catégories.[Nom de
catégorie] FROM Catégories ORDER BY Catégories.[Nom de catégorie];
2 Nom:Code Sous-catégorie - Source: Produits.Code Sous-catégorie
Contenu :SELECT [Sous-catégorie].[Code Sous-catégorie],
[Sous-catégorie].[Nom Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM
[Sous-catégorie] ORDER BY [Sous-catégorie].[Nom Sous-catégorie];
----------------------------------------------------------------------------
J'ai essayé ceci
Private Sub Code_Sous_catégorie_Click()
' Affiche un message si la zone de liste modifiable Code client est vide.
Dim strMsg As String, strTitre As String
Dim intStyle As Integer
Dim stLinkCriteria As String
stLinkCriteria = [Code catégorie]
If IsNull(Me![Code catégorie]) Or Me![Code catégorie] = "" Then
strMsg = "Vous devez sélectionner une catégorie"
strTitre = "Catégorie exigée"
intStyle = vbOKOnly
MsgBox strMsg, intStyle, strTitre
Cancel = True
End If
SELECT [Sous-catégorie].[Code Sous-catégorie], [Sous-catégorie].[Nom
Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM [Sous-catégorie]
WHERE ((([Sous-catégorie].[Code Catégorie])=stLinkCriteria)) ORDER BY
[Sous-catégorie].[Nom Sous-catégorie];
End Sub
------------------------------------------------------------------------------
J'aimerais que si catégorie est nul affiche tous
Et que si une valeur alors filtre les sous catégories
Bonjour LiR,
Merçi pour ta réponse, voici la version adaptée que j'ai utilisé, mais il y
a un petit problème je ne peux pas vérifier il m'affiche erreur de
compilation END SUB il ne s'arrete pas et continue après le END SUB ???
Private Sub Code_catégorie_Dirty(Cancel As Integer)
Dim sWHERE As String
Dim sSQL As String
If Not IsNull(Me.[Code Sous catégorie]) Then
sWHERE = vbCrLf & "WHERE ([Code Catégorie]=" & Me.[Code
catégorie] & ")"
End If
sSQL = "SELECT [Sous-catégorie].[Code Sous-catégorie],
[Sous-catégorie].[Nom Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM
[Sous-catégorie] & sWHERE & ORDER BY [Nom Sous-catégorie];"
Me.[Code Sous-catégorie].RowSource = sSQL
'Source d'origine du bouton sous catégorie
'SELECT [Sous-catégorie].[Code Sous-catégorie], [Sous-catégorie].[Nom
Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM [Sous-catégorie]
ORDER BY [Sous-catégorie].[Nom Sous-catégorie];
'Exemple donné et modifié plus haut
' sSQL = "SELECT [Code Sous-catégorie], [Nom Sous-catégorie], [Code
catégorie] FROM [Sous-catégorie] & sWHERE & ORDER BY [Nom Sous-catégorie];"
' Me.Code_Sous_catégorie.RowSource = sSQL
End SubBonjour,
L'idée est de créer une clause WHERE pour filtrer uniquement si la première
liste contient une valeur.
En outre, il vaut mieux utiliser l'événement AfterUpdate du contrôle
Code_catégorie plutôt que l'événement Click du contrôle Code_Sous_catégorie.
Private Sub Code_catégorie_AfterUpdate()
Dim sWHERE as String
Dim sSQL As String
If Not IsNull(Me.Code_Sous_catégorie)
sWHERE = vbCrLf & "WHERE ([Code Catégorie]=" & Me.Code_catégorie & ")"
End If
sSQL = "SELECT [Code Sous-catégorie], [Nom Sous-catégorie], [Code
Catégorie] FROM [Sous-catégorie]" & sWHERE & " ORDER BY [Nom Sous-catégorie];"
Me.Code_Sous_catégorie.RowSource = sSQL
End Sub
Tu peux mettre par défaut comme source du la liste sous catégorie la requête
non filtrée, puisqu'à priori la liste des catégories vaut Null par défaut
(sauf si elle est liée à un champ, auquel cas il faut modifier un peu le code
précédent...)Bonjour à tous,
J'essaie de filtrer une liste déroulante pour éviter de lister 400 lignes
d'une sous catégorie soit 20 catégorie de 20 sous catégorie. Donc j'ai deux
listes déroulantes:
Nom:Code catégorie - Source : Produits.Code catégorie
Contenu: SELECT DISTINCT Catégories.[Code catégorie], Catégories.[Nom de
catégorie] FROM Catégories ORDER BY Catégories.[Nom de catégorie];
2 Nom:Code Sous-catégorie - Source: Produits.Code Sous-catégorie
Contenu :SELECT [Sous-catégorie].[Code Sous-catégorie],
[Sous-catégorie].[Nom Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM
[Sous-catégorie] ORDER BY [Sous-catégorie].[Nom Sous-catégorie];
----------------------------------------------------------------------------
J'ai essayé ceci
Private Sub Code_Sous_catégorie_Click()
' Affiche un message si la zone de liste modifiable Code client est vide.
Dim strMsg As String, strTitre As String
Dim intStyle As Integer
Dim stLinkCriteria As String
stLinkCriteria = [Code catégorie]
If IsNull(Me![Code catégorie]) Or Me![Code catégorie] = "" Then
strMsg = "Vous devez sélectionner une catégorie"
strTitre = "Catégorie exigée"
intStyle = vbOKOnly
MsgBox strMsg, intStyle, strTitre
Cancel = True
End If
SELECT [Sous-catégorie].[Code Sous-catégorie], [Sous-catégorie].[Nom
Sous-catégorie], [Sous-catégorie].[Code Catégorie] FROM [Sous-catégorie]
WHERE ((([Sous-catégorie].[Code Catégorie])=stLinkCriteria)) ORDER BY
[Sous-catégorie].[Nom Sous-catégorie];
End Sub
------------------------------------------------------------------------------
J'aimerais que si catégorie est nul affiche tous
Et que si une valeur alors filtre les sous catégories
ReSalut, j'ai du faire une fausse manip sur le dernier test j'ai corrigé le
tiret et le guillemet. J'ai du avoir un bug impossible de refermer le
formulaire j'ai vidé le code du formulaire et les cases conservaient les
propriétés évenements vide. J'ai du alors corriger manuellement , donc tout
est normal maintenant.
Comme tu me l'a indiqué j'ai placé le code dans le controle Code catégorie.
Sauf qu'il m'affiche " ERREUR DE COMPILATION seuls les commentaires peuvent
apparaitre après END SUB", J'ai peut être mal rentré quelque chose, on dirait
qu'il continu après le END SUB:
Private Sub Code_catégorie_Dirty(Cancel As Integer)
Dim sWHERE As String
Dim sSQL As String
If Not IsNull(Me.[Code Sous-catégorie]) Then
sWHERE = vbCrLf & "WHERE ([Code catégorie]=" & Me.[Code
catégorie] & ")"
End If
sSQL = "SELECT [Code Sous-catégorie], [Nom Sous-catégorie], [Code
catégorie] FROM [Sous-catégorie]" & sWHERE & "ORDER BY [Nom Sous-catégorie];"
Me.[Code Sous-catégorie].RowSource = sSQL
Exit Sub
End Sub
ReSalut, j'ai du faire une fausse manip sur le dernier test j'ai corrigé le
tiret et le guillemet. J'ai du avoir un bug impossible de refermer le
formulaire j'ai vidé le code du formulaire et les cases conservaient les
propriétés évenements vide. J'ai du alors corriger manuellement , donc tout
est normal maintenant.
Comme tu me l'a indiqué j'ai placé le code dans le controle Code catégorie.
Sauf qu'il m'affiche " ERREUR DE COMPILATION seuls les commentaires peuvent
apparaitre après END SUB", J'ai peut être mal rentré quelque chose, on dirait
qu'il continu après le END SUB:
Private Sub Code_catégorie_Dirty(Cancel As Integer)
Dim sWHERE As String
Dim sSQL As String
If Not IsNull(Me.[Code Sous-catégorie]) Then
sWHERE = vbCrLf & "WHERE ([Code catégorie]=" & Me.[Code
catégorie] & ")"
End If
sSQL = "SELECT [Code Sous-catégorie], [Nom Sous-catégorie], [Code
catégorie] FROM [Sous-catégorie]" & sWHERE & "ORDER BY [Nom Sous-catégorie];"
Me.[Code Sous-catégorie].RowSource = sSQL
Exit Sub
End Sub
ReSalut, j'ai du faire une fausse manip sur le dernier test j'ai corrigé le
tiret et le guillemet. J'ai du avoir un bug impossible de refermer le
formulaire j'ai vidé le code du formulaire et les cases conservaient les
propriétés évenements vide. J'ai du alors corriger manuellement , donc tout
est normal maintenant.
Comme tu me l'a indiqué j'ai placé le code dans le controle Code catégorie.
Sauf qu'il m'affiche " ERREUR DE COMPILATION seuls les commentaires peuvent
apparaitre après END SUB", J'ai peut être mal rentré quelque chose, on dirait
qu'il continu après le END SUB:
Private Sub Code_catégorie_Dirty(Cancel As Integer)
Dim sWHERE As String
Dim sSQL As String
If Not IsNull(Me.[Code Sous-catégorie]) Then
sWHERE = vbCrLf & "WHERE ([Code catégorie]=" & Me.[Code
catégorie] & ")"
End If
sSQL = "SELECT [Code Sous-catégorie], [Nom Sous-catégorie], [Code
catégorie] FROM [Sous-catégorie]" & sWHERE & "ORDER BY [Nom Sous-catégorie];"
Me.[Code Sous-catégorie].RowSource = sSQL
Exit Sub
End Sub
A mon avis le problème n'est pas dans ces lignes mais dans le reste de ton
module...
Le Exit Sub juste avant le End Sub ne change rien et est totalement inutile.ReSalut, j'ai du faire une fausse manip sur le dernier test j'ai corrigé le
tiret et le guillemet. J'ai du avoir un bug impossible de refermer le
formulaire j'ai vidé le code du formulaire et les cases conservaient les
propriétés évenements vide. J'ai du alors corriger manuellement , donc tout
est normal maintenant.
Comme tu me l'a indiqué j'ai placé le code dans le controle Code catégorie.
Sauf qu'il m'affiche " ERREUR DE COMPILATION seuls les commentaires peuvent
apparaitre après END SUB", J'ai peut être mal rentré quelque chose, on dirait
qu'il continu après le END SUB:
Private Sub Code_catégorie_Dirty(Cancel As Integer)
Dim sWHERE As String
Dim sSQL As String
If Not IsNull(Me.[Code Sous-catégorie]) Then
sWHERE = vbCrLf & "WHERE ([Code catégorie]=" & Me.[Code
catégorie] & ")"
End If
sSQL = "SELECT [Code Sous-catégorie], [Nom Sous-catégorie], [Code
catégorie] FROM [Sous-catégorie]" & sWHERE & "ORDER BY [Nom Sous-catégorie];"
Me.[Code Sous-catégorie].RowSource = sSQL
Exit Sub
End Sub
A mon avis le problème n'est pas dans ces lignes mais dans le reste de ton
module...
Le Exit Sub juste avant le End Sub ne change rien et est totalement inutile.
ReSalut, j'ai du faire une fausse manip sur le dernier test j'ai corrigé le
tiret et le guillemet. J'ai du avoir un bug impossible de refermer le
formulaire j'ai vidé le code du formulaire et les cases conservaient les
propriétés évenements vide. J'ai du alors corriger manuellement , donc tout
est normal maintenant.
Comme tu me l'a indiqué j'ai placé le code dans le controle Code catégorie.
Sauf qu'il m'affiche " ERREUR DE COMPILATION seuls les commentaires peuvent
apparaitre après END SUB", J'ai peut être mal rentré quelque chose, on dirait
qu'il continu après le END SUB:
Private Sub Code_catégorie_Dirty(Cancel As Integer)
Dim sWHERE As String
Dim sSQL As String
If Not IsNull(Me.[Code Sous-catégorie]) Then
sWHERE = vbCrLf & "WHERE ([Code catégorie]=" & Me.[Code
catégorie] & ")"
End If
sSQL = "SELECT [Code Sous-catégorie], [Nom Sous-catégorie], [Code
catégorie] FROM [Sous-catégorie]" & sWHERE & "ORDER BY [Nom Sous-catégorie];"
Me.[Code Sous-catégorie].RowSource = sSQL
Exit Sub
End Sub
A mon avis le problème n'est pas dans ces lignes mais dans le reste de ton
module...
Le Exit Sub juste avant le End Sub ne change rien et est totalement inutile.ReSalut, j'ai du faire une fausse manip sur le dernier test j'ai corrigé le
tiret et le guillemet. J'ai du avoir un bug impossible de refermer le
formulaire j'ai vidé le code du formulaire et les cases conservaient les
propriétés évenements vide. J'ai du alors corriger manuellement , donc tout
est normal maintenant.
Comme tu me l'a indiqué j'ai placé le code dans le controle Code catégorie.
Sauf qu'il m'affiche " ERREUR DE COMPILATION seuls les commentaires peuvent
apparaitre après END SUB", J'ai peut être mal rentré quelque chose, on dirait
qu'il continu après le END SUB:
Private Sub Code_catégorie_Dirty(Cancel As Integer)
Dim sWHERE As String
Dim sSQL As String
If Not IsNull(Me.[Code Sous-catégorie]) Then
sWHERE = vbCrLf & "WHERE ([Code catégorie]=" & Me.[Code
catégorie] & ")"
End If
sSQL = "SELECT [Code Sous-catégorie], [Nom Sous-catégorie], [Code
catégorie] FROM [Sous-catégorie]" & sWHERE & "ORDER BY [Nom Sous-catégorie];"
Me.[Code Sous-catégorie].RowSource = sSQL
Exit Sub
End Sub