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

Is Null Is not null ou les 2

2 réponses
Avatar
Frederic
Bonjour,

je tourne et retourne ca depuis hier, y a rien a faire
alors je viens vers vous.

Dans ma table j'ai un champ date ( et d'autres).
Ce champ peut etre rempli ou non ( cela indique si une
operation a ete realisee ou non).

Pour requeter sur ce champ j'ai 3 solutions.
En mode requete ou Sql dans le critere je met is Null, ou
is Not Null ou pas criteres pour avoir tous les enreg. ca
marche tres bien.

Mais pour les utilsateurs je dois passer par un formulaire
destine a remplir le(s) critere(s) de recherches. C'est la
que ca buggue je ne sais pas ce que je dois mettre dans le
controle du formulaire pour renvoyer is null ou is not
Null ou tout et ce que je dois mettre dans le where de la
requete pour recuperer le contenu de ce controle.

Quoique je fasse j'ai toujours des messages d'erreur, "Too
complex....."

Merci pour votre aide


Frederic

2 réponses

Avatar
Eric
"Frederic" écrivait
news:1e32f01c45519$47e1cbe0$:

Bonjour,

je tourne et retourne ca depuis hier, y a rien a faire
alors je viens vers vous.

Dans ma table j'ai un champ date ( et d'autres).
Ce champ peut etre rempli ou non ( cela indique si une
operation a ete realisee ou non).

Pour requeter sur ce champ j'ai 3 solutions.
En mode requete ou Sql dans le critere je met is Null, ou
is Not Null ou pas criteres pour avoir tous les enreg. ca
marche tres bien.

Mais pour les utilsateurs je dois passer par un formulaire
destine a remplir le(s) critere(s) de recherches. C'est la
que ca buggue je ne sais pas ce que je dois mettre dans le
controle du formulaire pour renvoyer is null ou is not
Null ou tout et ce que je dois mettre dans le where de la
requete pour recuperer le contenu de ce controle.

Quoique je fasse j'ai toujours des messages d'erreur, "Too
complex....."

Merci pour votre aide


Frederic




Bonjour Frederic,

Tu crées un formulaire sur ta table et tu peux mettre un cadre avec 3
options : Renseigné, Non renseigné, Tous (controle indépendant)
et sur l'évènement AfterUpdate (Après MAj) de ce cadre (nom CadreChoix)
la proc suivante:

Private Sub CadreChoix_AfterUpdate()
Dim Filtrage As String
If CadreChoix = 3 Then
FilterOn = False
Exit Sub
End If
Select Case CadreChoix
Case 1
Filtrage = "not isnull([TonChampDate])"
Case 2
Filtrage = "isnull([TonChampDate])"
End Select
Me.Filter = Filtrage
Me.FilterOn = True
End Sub

A+
Eric

Avatar
Eric
re,

J'avais mal lu ton post ou lu trop rapidement. Peut-être ne veux-tu qu'on
formulaire de saisie des paramètres et derrière exécuter ta requête.

Dans ce cas-là, tu crées un formulaire indépendant contenant un cadre avec
3 options (idem post précédent) Renseigné, Non renseigné et tous.
Sur mise à jour du cadre :

Private Sub CadreChoix_AfterUpdate()
Dim filtrage As String, qry As DAO.QueryDef
Dim txtsql As String
Set qry = CurrentDb.QueryDefs("TaRequête")
filtrage = ""
Select Case CadreChoix
Case 1
filtrage = " where not isnull([TonChpDate])"
Case 2
filtrage = " where isnull([TonChpDate])"
End Select
With qry
'on sauve le sql initial de la requête
txtsql = .sql
' on enlève le ; final du sql
.sql = Left(.sql, Len(.sql) - 3)
.sql = .sql & filtrage & ";"
End With
DoCmd.OpenQuery "TaRequête"
'on remet le sql initial de la requête
qry.sql = txtsql
Set qry = Nothing
End Sub