Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Formulaire - Filtres personnalisés - Probleme de syntaxe

7 réponses
Avatar
seb.....
Bonjour,

J'ai récupéré un code sur
http://www.3stone.be/access/articles.php?lng=fr&pg=43 et j'ai quelques
soucis pour l'adapter.


Voici le code :
-----------------------------------------
Private Sub FiltrerEnrg()
Dim strFiltre As String

If (Not IsNull(Modifiable12)) Then
strFiltre = "[Type]='" & Modifiable12 & "' AND "
End If

If (Not IsNull(Modifiable14)) Then
strFiltre = "[VIPstatus]='" & Modifiable14 & "'"
End If

If (strFiltre = "") Then
Me.Filter = ""
Me.FilterOn = False

Else
strFiltre = "(" & Left$(strFiltre, Len(strFiltre)) & ")"
Me.Filter = strFiltre
Me.FilterOn = True
End If
End Sub
-------------------------------------------
Private Sub Modifiable12_AfterUpdate()
FiltrerEnrg
End Sub
-----------------------------------------
Private Sub Modifiable14_AfterUpdate()
FiltrerEnrg
End Sub


Le but du code est de passer la sélection de 2 listes modifiables à un
filtre de formulaire.
Le problème est que strFiltre récupère la valeur (qui me plante l'éxécution)
: ([Type]='Avocat' AND ) alors qu'il devrait passer au filtre du formulaire
un résultat du genre : ([Type]='avocat') and ([VIPstatus]='VIP' ).

Je suis sûr que c'est un problème de syntaxe. J'aimerais avoir votre avis.

Merci d'avance

Seb

7 réponses

Avatar
Thierry (ze Titi)
Bonjour seb.....

Il y a un problème à la création du filtre. Mets plutôt quelque chose du genre:

strFiltre=""
If (Not IsNull(Modifiable12)) Then
strFiltre = "[Type]='" & Modifiable12
End If

If (Not IsNull(Modifiable14)) Then
strFiltre = strFiltre & IIf(strFiltre="", "", " AND ") & "[VIPstatus]='" & Modifiable14 & "'"
End If

--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info
Avatar
Thierry (ze Titi)
.../...

Je n'étais pas allé voir le code proposé par 3Stone mais maintenant je
comprends pourquoi ton code ne fonctionne pas.

strFiltre = "(" & Left$(strFiltre, Len(strFiltre)) & ")"
doit être en fait:

strFiltre = "(" & Left$(strFiltre, Len(strFiltre) - 5) & ")"



En ce jour mémorable du mardi 30/10/2007, tu as émis l'idée suivante:
Bonjour,

J'ai récupéré un code sur
http://www.3stone.be/access/articles.php?lng=fr&pgC et j'ai quelques soucis
pour l'adapter.


Voici le code :
-----------------------------------------
Private Sub FiltrerEnrg()
Dim strFiltre As String

If (Not IsNull(Modifiable12)) Then
strFiltre = "[Type]='" & Modifiable12 & "' AND "
End If

If (Not IsNull(Modifiable14)) Then
strFiltre = "[VIPstatus]='" & Modifiable14 & "'"
End If

If (strFiltre = "") Then
Me.Filter = ""
Me.FilterOn = False

Else
strFiltre = "(" & Left$(strFiltre, Len(strFiltre)) & ")"
Me.Filter = strFiltre
Me.FilterOn = True
End If
End Sub
-------------------------------------------
Private Sub Modifiable12_AfterUpdate()
FiltrerEnrg
End Sub
-----------------------------------------
Private Sub Modifiable14_AfterUpdate()
FiltrerEnrg
End Sub


Le but du code est de passer la sélection de 2 listes modifiables à un filtre
de formulaire.
Le problème est que strFiltre récupère la valeur (qui me plante l'éxécution)
([Type]='Avocat' AND ) alors qu'il devrait passer au filtre du formulaire
un résultat du genre : ([Type]='avocat') and ([VIPstatus]='VIP' ).


Je suis sûr que c'est un problème de syntaxe. J'aimerais avoir votre avis.

Merci d'avance

Seb


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info


Avatar
seb.....
Merci pour ta réponse,

J'ai modifié la ligne concernée et j'obtiens une nouvelle erreur :
erreur d'éxécution '3075'
) en trop dans l'expression '([VIPstatus]=)'

Je ne vois pas où se trouve cette ) en trop...



"Thierry (ze Titi)" a écrit dans le
message de news:
.../...

Je n'étais pas allé voir le code proposé par 3Stone mais maintenant je
comprends pourquoi ton code ne fonctionne pas.

strFiltre = "(" & Left$(strFiltre, Len(strFiltre)) & ")"
doit être en fait:

strFiltre = "(" & Left$(strFiltre, Len(strFiltre) - 5) & ")"



En ce jour mémorable du mardi 30/10/2007, tu as émis l'idée suivante:
Bonjour,

J'ai récupéré un code sur
http://www.3stone.be/access/articles.php?lng=fr&pgC et j'ai quelques
soucis pour l'adapter.


Voici le code :
-----------------------------------------
Private Sub FiltrerEnrg()
Dim strFiltre As String

If (Not IsNull(Modifiable12)) Then
strFiltre = "[Type]='" & Modifiable12 & "' AND "
End If

If (Not IsNull(Modifiable14)) Then
strFiltre = "[VIPstatus]='" & Modifiable14 & "'"
End If

If (strFiltre = "") Then
Me.Filter = ""
Me.FilterOn = False

Else
strFiltre = "(" & Left$(strFiltre, Len(strFiltre)) & ")"
Me.Filter = strFiltre
Me.FilterOn = True
End If
End Sub
-------------------------------------------
Private Sub Modifiable12_AfterUpdate()
FiltrerEnrg
End Sub
-----------------------------------------
Private Sub Modifiable14_AfterUpdate()
FiltrerEnrg
End Sub


Le but du code est de passer la sélection de 2 listes modifiables à un
filtre de formulaire.
Le problème est que strFiltre récupère la valeur (qui me plante
l'éxécution)
([Type]='Avocat' AND ) alors qu'il devrait passer au filtre du
formulaire
un résultat du genre : ([Type]='avocat') and ([VIPstatus]='VIP' ).


Je suis sûr que c'est un problème de syntaxe. J'aimerais avoir votre
avis.

Merci d'avance

Seb


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info






Avatar
Thierry (ze Titi)
C'est parce que tu n'as pas compris le code de 3Stone ! Ton code doit
être:

Private Sub FiltrerEnrg()
Dim strFiltre As String

If (Not IsNull(Modifiable12)) Then
strFiltre = "[Type]='" & Modifiable12 & "' AND "
End If

If (Not IsNull(Modifiable14)) Then
strFiltre = strFiltre & "[VIPstatus]='" & Modifiable14 & "' AND "
End If

If (strFiltre = "") Then
Me.Filter = ""
Me.FilterOn = False
Else
strFiltre = "(" & Left$(strFiltre, Len(strFiltre) - 5) & ")"
Me.Filter = strFiltre
Me.FilterOn = True
End If
End Sub

--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info
Avatar
seb.....
Merci cela fonctionne..

Effectivement je n'avais pas bien compris.


"Thierry (ze Titi)" a écrit dans le
message de news:
C'est parce que tu n'as pas compris le code de 3Stone ! Ton code doit
être:

Private Sub FiltrerEnrg()
Dim strFiltre As String

If (Not IsNull(Modifiable12)) Then
strFiltre = "[Type]='" & Modifiable12 & "' AND "
End If

If (Not IsNull(Modifiable14)) Then
strFiltre = strFiltre & "[VIPstatus]='" & Modifiable14 & "' AND "
End If

If (strFiltre = "") Then
Me.Filter = ""
Me.FilterOn = False
Else
strFiltre = "(" & Left$(strFiltre, Len(strFiltre) - 5) & ")"
Me.Filter = strFiltre
Me.FilterOn = True
End If
End Sub

--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info




Avatar
Thierry (ze Titi)
Effectivement je n'avais pas bien compris.
Ca n'était pas un reproche, ne le prends pas comme tel ;o)

Le tout est de savoir si tu as compris l'erreur...

Bonne continuation !

Dans ton message <fg7lna$q4p$ du mardi 30/10/2007
jour de Saint Bienvenue, tu as pris l'initiative de nous narrer les
faits suivants:
Merci cela fonctionne..

Effectivement je n'avais pas bien compris.


"Thierry (ze Titi)" a écrit dans le message
de news:
C'est parce que tu n'as pas compris le code de 3Stone ! Ton code doit être:

Private Sub FiltrerEnrg()
Dim strFiltre As String

If (Not IsNull(Modifiable12)) Then
strFiltre = "[Type]='" & Modifiable12 & "' AND "
End If

If (Not IsNull(Modifiable14)) Then
strFiltre = strFiltre & "[VIPstatus]='" & Modifiable14 & "' AND "
End If

If (strFiltre = "") Then
Me.Filter = ""
Me.FilterOn = False
Else
strFiltre = "(" & Left$(strFiltre, Len(strFiltre) - 5) & ")"
Me.Filter = strFiltre
Me.FilterOn = True
End If
End Sub

-- Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info





--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info


Avatar
seb.....
Ne vous inquiétez pas, je ne l'ai pas mal pris... :-)

Pour l'erreur, je pense avoir compris.

Maintenant j'essaie de mettre "tous" dans mes listes modifiables et ce n'est
pas gagné ;-)

bonne fin de journée

seb


"Thierry (ze Titi)" a écrit dans le
message de news:
Effectivement je n'avais pas bien compris.
Ca n'était pas un reproche, ne le prends pas comme tel ;o)

Le tout est de savoir si tu as compris l'erreur...

Bonne continuation !

Dans ton message <fg7lna$q4p$ du mardi 30/10/2007 jour
de Saint Bienvenue, tu as pris l'initiative de nous narrer les faits
suivants:
Merci cela fonctionne..

Effectivement je n'avais pas bien compris.


"Thierry (ze Titi)" a écrit dans le
message de news:
C'est parce que tu n'as pas compris le code de 3Stone ! Ton code doit
être:

Private Sub FiltrerEnrg()
Dim strFiltre As String

If (Not IsNull(Modifiable12)) Then
strFiltre = "[Type]='" & Modifiable12 & "' AND "
End If

If (Not IsNull(Modifiable14)) Then
strFiltre = strFiltre & "[VIPstatus]='" & Modifiable14 & "' AND "
End If

If (strFiltre = "") Then
Me.Filter = ""
Me.FilterOn = False
Else
strFiltre = "(" & Left$(strFiltre, Len(strFiltre) - 5) & ")"
Me.Filter = strFiltre
Me.FilterOn = True
End If
End Sub

-- Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info





--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info