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

Condition dans une requête

18 réponses
Avatar
Philippe
Bonjour,

N'ayant pas de réponse dans mon post précédent je reformule ma question
autrement.

Dans ma requête (sous formulaire) pour lire les éléments sélectionnés dans
la liste, peut-on écrire quelque chose comme :
=[LaListe].[ItemsSelected].[MonChamp] dans la zone critére pour extraire les
infos liées ?

Ou dans une zone filtre ?
Le but et d'extaire les enregistrements correspondants.

Merci.

8 réponses

1 2
Avatar
Fabien
Fabien,
Le champ code est de l'alpha par exemple "A" "B" etc....
je regarde pour la suite

Pour StrSQl = "Select * from [Table] where [MonChamp]
[table] est la table de la liste ou du sous formulaire ?
[Monchamp] c'est bien celui du sous formulaire ?
[Table] represente la table de ton sous formulaire

[NomduChamp] c'est le champ de ta table sur lequel tu fais le filtre

encore merci

Le champ code est de l'alpha ou du numérique ?
Si c'est de l'apha y a t il des ' ou des " dans le champ code ?
Si c'est du Numérique alors remplace
StrIn = StrIn & "'" & Liste0.Column(0,I) & "',"
par
StrIn = StrIn & Liste0.Column(0,I) & ","

Pour controle lors du plantage, dans la fenetre d'execution peu tu
demander un debug.print StrSql et me donner le contenu du strsql ?

Fabien,

Voici une image aprés le clique dans la liste :
http://www.cijoint.fr/cij114676606159.bmp

Tu verra mieux ce qui se passe.
@+


Cette ligne se met en rouge et j'ai une boîte qui me dit "attendu fin
instruction"

aprés Next I
StrSQl = "Select * from [Table] where [mon code] in (
" & Left(StrIn,Len(StrIn)-1)) & ") ;"
^ ^les blancs avant et aprés les & sont obligatoires

CurrentDb.Querydefs("memoire").sql = StrSql
Merci de ton aide trés précieuse.


Bonjour,

N'ayant pas de réponse dans mon post précédent je reformule ma question
autrement.

Dans ma requête (sous formulaire) pour lire les éléments sélectionnés dans
la liste, peut-on écrire quelque chose comme :
=[LaListe].[ItemsSelected].[MonChamp] dans la zone critére pour extraire les
infos liées ?

Ou dans une zone filtre ?
Le but et d'extaire les enregistrements correspondants.

Merci.
Bonjour,

Je ne crois pas que celà soit possible.
Il va falloir passer par du code VB.
Si ta liste s'appel liste0
Private sub Liste0_afterupdate()
Dim StrIn,StrSql as String
Dim I as Integer
For I=0 to Liste0.listcount
If Liste0.selected(I) then
StrIn = StrIn & "'" & Liste0.Column(0,I) & "',"
End if
Next I
StrSQl = "Select * from [Table] where [MonChamp] in ( "&
Left(StrIn,Len(StrIn)-1)) & ") ;"
CurrentDb.Querydefs("La requete source de ton sous formulaire").sql =
StrSQl
Me.SousFormulaire.Requery
End sub
Voilà














Avatar
Philippe
Fabien,

Si tout va bien voici un petit bout de ma base
http://www.cijoint.fr/cij811351217102.zip
Je n'ai pas adapté le code mais tu va s comprendre.
Merci.

Philippe


J'ai pas d'exemple sous la main. Mais toi ne peux tu me passer un
extrait de ta base avec le formulaire ?
Fabien,

Serait'il possible de m'envoyer sur cijoint un fichier simple en exemple ?
Un formulaire avec une liste et le sous formulaire à côté dans un formulaire
principal.
Si tu as un exemple sous la main seulement.
Merci.


Le champ code est de l'alpha ou du numérique ?
Si c'est de l'apha y a t il des ' ou des " dans le champ code ?
Si c'est du Numérique alors remplace
StrIn = StrIn & "'" & Liste0.Column(0,I) & "',"
par
StrIn = StrIn & Liste0.Column(0,I) & ","

Pour controle lors du plantage, dans la fenetre d'execution peu tu
demander un debug.print StrSql et me donner le contenu du strsql ?

Fabien,

Voici une image aprés le clique dans la liste :
http://www.cijoint.fr/cij114676606159.bmp

Tu verra mieux ce qui se passe.
@+


Cette ligne se met en rouge et j'ai une boîte qui me dit "attendu fin
instruction"

aprés Next I
StrSQl = "Select * from [Table] where [mon code] in (
" & Left(StrIn,Len(StrIn)-1)) & ") ;"
^ ^les blancs avant et aprés les & sont obligatoires

CurrentDb.Querydefs("memoire").sql = StrSql
Merci de ton aide trés précieuse.


Bonjour,

N'ayant pas de réponse dans mon post précédent je reformule ma question
autrement.

Dans ma requête (sous formulaire) pour lire les éléments sélectionnés dans
la liste, peut-on écrire quelque chose comme :
=[LaListe].[ItemsSelected].[MonChamp] dans la zone critére pour extraire les
infos liées ?

Ou dans une zone filtre ?
Le but et d'extaire les enregistrements correspondants.

Merci.
Bonjour,

Je ne crois pas que celà soit possible.
Il va falloir passer par du code VB.
Si ta liste s'appel liste0
Private sub Liste0_afterupdate()
Dim StrIn,StrSql as String
Dim I as Integer
For I=0 to Liste0.listcount
If Liste0.selected(I) then
StrIn = StrIn & "'" & Liste0.Column(0,I) & "',"
End if
Next I
StrSQl = "Select * from [Table] where [MonChamp] in ( "&
Left(StrIn,Len(StrIn)-1)) & ") ;"
CurrentDb.Querydefs("La requete source de ton sous formulaire").sql =
StrSQl
Me.SousFormulaire.Requery
End sub
Voilà

















Avatar
Fabien
Salut,
Voici ta base modifiée.
Pour info tu as lié la table catégorie a la table troupeau par le champ
Code. Mais dans la table troupeau il n'y a aucune valeur qui
correspondes a la table catégories.
Dans [Code] de [catégorie] tu as des valeurs telles que A1 B2 ... alors
que dans [Code] de [troupeau] tu n'as que a, b, d .
Y a un blême ;-)
@+

Fabien,

Si tout va bien voici un petit bout de ma base
http://www.cijoint.fr/cij811351217102.zip
Je n'ai pas adapté le code mais tu va s comprendre.
Merci.

Philippe


J'ai pas d'exemple sous la main. Mais toi ne peux tu me passer un
extrait de ta base avec le formulaire ?
Fabien,

Serait'il possible de m'envoyer sur cijoint un fichier simple en exemple ?
Un formulaire avec une liste et le sous formulaire à côté dans un formulaire
principal.
Si tu as un exemple sous la main seulement.
Merci.


Le champ code est de l'alpha ou du numérique ?
Si c'est de l'apha y a t il des ' ou des " dans le champ code ?
Si c'est du Numérique alors remplace
StrIn = StrIn & "'" & Liste0.Column(0,I) & "',"
par
StrIn = StrIn & Liste0.Column(0,I) & ","

Pour controle lors du plantage, dans la fenetre d'execution peu tu
demander un debug.print StrSql et me donner le contenu du strsql ?

Fabien,

Voici une image aprés le clique dans la liste :
http://www.cijoint.fr/cij114676606159.bmp

Tu verra mieux ce qui se passe.
@+


Cette ligne se met en rouge et j'ai une boîte qui me dit "attendu fin
instruction"

aprés Next I
StrSQl = "Select * from [Table] where [mon code] in (
" & Left(StrIn,Len(StrIn)-1)) & ") ;"
^ ^les blancs avant et aprés les & sont obligatoires

CurrentDb.Querydefs("memoire").sql = StrSql
Merci de ton aide trés précieuse.


Bonjour,

N'ayant pas de réponse dans mon post précédent je reformule ma question
autrement.

Dans ma requête (sous formulaire) pour lire les éléments sélectionnés dans
la liste, peut-on écrire quelque chose comme :
=[LaListe].[ItemsSelected].[MonChamp] dans la zone critére pour extraire les
infos liées ?

Ou dans une zone filtre ?
Le but et d'extaire les enregistrements correspondants.

Merci.
Bonjour,

Je ne crois pas que celà soit possible.
Il va falloir passer par du code VB.
Si ta liste s'appel liste0
Private sub Liste0_afterupdate()
Dim StrIn,StrSql as String
Dim I as Integer
For I=0 to Liste0.listcount
If Liste0.selected(I) then
StrIn = StrIn & "'" & Liste0.Column(0,I) & "',"
End if
Next I
StrSQl = "Select * from [Table] where [MonChamp] in ( "&
Left(StrIn,Len(StrIn)-1)) & ") ;"
CurrentDb.Querydefs("La requete source de ton sous formulaire").sql =
StrSQl
Me.SousFormulaire.Requery
End sub
Voilà


















Avatar
Fabien
Salut,
Voici ta base modifiée.
http://cjoint.com/?bdjmPDmvqD

Pour info tu as lié la table catégorie a la table troupeau par le champ
Code. Mais dans la table troupeau il n'y a aucune valeur qui
correspondes a la table catégories.
Dans [Code] de [catégorie] tu as des valeurs telles que A1 B2 ... alors
que dans [Code] de [troupeau] tu n'as que a, b, d .
Y a un blême ;-)
@+

Fabien,

Si tout va bien voici un petit bout de ma base
http://www.cijoint.fr/cij811351217102.zip
Je n'ai pas adapté le code mais tu va s comprendre.
Merci.

Philippe


J'ai pas d'exemple sous la main. Mais toi ne peux tu me passer un
extrait de ta base avec le formulaire ?
Fabien,

Serait'il possible de m'envoyer sur cijoint un fichier simple en
exemple ?
Un formulaire avec une liste et le sous formulaire à côté dans un
formulaire principal.
Si tu as un exemple sous la main seulement.
Merci.


Le champ code est de l'alpha ou du numérique ?
Si c'est de l'apha y a t il des ' ou des " dans le champ code ?
Si c'est du Numérique alors remplace
StrIn = StrIn & "'" & Liste0.Column(0,I) & "',"
par
StrIn = StrIn & Liste0.Column(0,I) & ","

Pour controle lors du plantage, dans la fenetre d'execution peu tu
demander un debug.print StrSql et me donner le contenu du strsql ?

Fabien,

Voici une image aprés le clique dans la liste :
http://www.cijoint.fr/cij114676606159.bmp

Tu verra mieux ce qui se passe.
@+


Cette ligne se met en rouge et j'ai une boîte qui me dit
"attendu fin instruction"

aprés Next I
StrSQl = "Select * from [Table] where [mon code] in ( " &
Left(StrIn,Len(StrIn)-1)) & ") ;"
^ ^les blancs avant et aprés les & sont obligatoires

CurrentDb.Querydefs("memoire").sql = StrSql
Merci de ton aide trés précieuse.


Bonjour,

N'ayant pas de réponse dans mon post précédent je reformule ma
question autrement.

Dans ma requête (sous formulaire) pour lire les éléments
sélectionnés dans la liste, peut-on écrire quelque chose comme
: =[LaListe].[ItemsSelected].[MonChamp] dans la zone critére
pour extraire les infos liées ?

Ou dans une zone filtre ?
Le but et d'extaire les enregistrements correspondants.

Merci.
Bonjour,

Je ne crois pas que celà soit possible.
Il va falloir passer par du code VB.
Si ta liste s'appel liste0
Private sub Liste0_afterupdate()
Dim StrIn,StrSql as String
Dim I as Integer
For I=0 to Liste0.listcount
If Liste0.selected(I) then
StrIn = StrIn & "'" & Liste0.Column(0,I) & "',"
End if
Next I
StrSQl = "Select * from [Table] where [MonChamp] in ( "&
Left(StrIn,Len(StrIn)-1)) & ") ;"
CurrentDb.Querydefs("La requete source de ton sous
formulaire").sql = StrSQl
Me.SousFormulaire.Requery
End sub
Voilà




















Avatar
Philippe
Bonjour Fabien,

Un trés grand merci, c'est parfait.
Oui en effet dans le champ code j'avais écris "a" "b" etc plutôt que a1 b1 ,
c'est le fait que j'ai recréé une petite base pour l'exemple je n'avais pas
fais attention, le principal c'est que ça tourne, bravo à toi.

Bonne journée.
Philippe


Salut,
Voici ta base modifiée.
http://cjoint.com/?bdjmPDmvqD

Pour info tu as lié la table catégorie a la table troupeau par le champ
Code. Mais dans la table troupeau il n'y a aucune valeur qui
correspondes a la table catégories.
Dans [Code] de [catégorie] tu as des valeurs telles que A1 B2 ... alors
que dans [Code] de [troupeau] tu n'as que a, b, d .
Y a un blême ;-)
@+

Fabien,

Si tout va bien voici un petit bout de ma base
http://www.cijoint.fr/cij811351217102.zip
Je n'ai pas adapté le code mais tu va s comprendre.
Merci.

Philippe


J'ai pas d'exemple sous la main. Mais toi ne peux tu me passer un
extrait de ta base avec le formulaire ?
Fabien,

Serait'il possible de m'envoyer sur cijoint un fichier simple en
exemple ?
Un formulaire avec une liste et le sous formulaire à côté dans un
formulaire principal.
Si tu as un exemple sous la main seulement.
Merci.


Le champ code est de l'alpha ou du numérique ?
Si c'est de l'apha y a t il des ' ou des " dans le champ code ?
Si c'est du Numérique alors remplace
StrIn = StrIn & "'" & Liste0.Column(0,I) & "',"
par
StrIn = StrIn & Liste0.Column(0,I) & ","

Pour controle lors du plantage, dans la fenetre d'execution peu tu
demander un debug.print StrSql et me donner le contenu du strsql ?

Fabien,

Voici une image aprés le clique dans la liste :
http://www.cijoint.fr/cij114676606159.bmp

Tu verra mieux ce qui se passe.
@+


Cette ligne se met en rouge et j'ai une boîte qui me dit
"attendu fin instruction"

aprés Next I
StrSQl = "Select * from [Table] where [mon code] in ( " &
Left(StrIn,Len(StrIn)-1)) & ") ;"
^ ^les blancs avant et aprés les & sont obligatoires

CurrentDb.Querydefs("memoire").sql = StrSql
Merci de ton aide trés précieuse.


Bonjour,

N'ayant pas de réponse dans mon post précédent je reformule ma
question autrement.

Dans ma requête (sous formulaire) pour lire les éléments
sélectionnés dans la liste, peut-on écrire quelque chose comme
: =[LaListe].[ItemsSelected].[MonChamp] dans la zone critére
pour extraire les infos liées ?

Ou dans une zone filtre ?
Le but et d'extaire les enregistrements correspondants.

Merci.
Bonjour,

Je ne crois pas que celà soit possible.
Il va falloir passer par du code VB.
Si ta liste s'appel liste0
Private sub Liste0_afterupdate()
Dim StrIn,StrSql as String
Dim I as Integer
For I=0 to Liste0.listcount
If Liste0.selected(I) then
StrIn = StrIn & "'" & Liste0.Column(0,I) & "',"
End if
Next I
StrSQl = "Select * from [Table] where [MonChamp] in ( "&
Left(StrIn,Len(StrIn)-1)) & ") ;"
CurrentDb.Querydefs("La requete source de ton sous
formulaire").sql = StrSQl
Me.SousFormulaire.Requery
End sub
Voilà























Avatar
Fabien
Bonne continuation ;-)

Bonjour Fabien,

Un trés grand merci, c'est parfait.
Oui en effet dans le champ code j'avais écris "a" "b" etc plutôt que a1 b1 ,
c'est le fait que j'ai recréé une petite base pour l'exemple je n'avais pas
fais attention, le principal c'est que ça tourne, bravo à toi.

Bonne journée.
Philippe


Salut,
Voici ta base modifiée.
http://cjoint.com/?bdjmPDmvqD

Pour info tu as lié la table catégorie a la table troupeau par le champ
Code. Mais dans la table troupeau il n'y a aucune valeur qui
correspondes a la table catégories.
Dans [Code] de [catégorie] tu as des valeurs telles que A1 B2 ... alors
que dans [Code] de [troupeau] tu n'as que a, b, d .
Y a un blême ;-)
@+

Fabien,

Si tout va bien voici un petit bout de ma base
http://www.cijoint.fr/cij811351217102.zip
Je n'ai pas adapté le code mais tu va s comprendre.
Merci.

Philippe


J'ai pas d'exemple sous la main. Mais toi ne peux tu me passer un
extrait de ta base avec le formulaire ?
Fabien,

Serait'il possible de m'envoyer sur cijoint un fichier simple en
exemple ?
Un formulaire avec une liste et le sous formulaire à côté dans un
formulaire principal.
Si tu as un exemple sous la main seulement.
Merci.


Le champ code est de l'alpha ou du numérique ?
Si c'est de l'apha y a t il des ' ou des " dans le champ code ?
Si c'est du Numérique alors remplace
StrIn = StrIn & "'" & Liste0.Column(0,I) & "',"
par
StrIn = StrIn & Liste0.Column(0,I) & ","

Pour controle lors du plantage, dans la fenetre d'execution peu tu
demander un debug.print StrSql et me donner le contenu du strsql ?

Fabien,

Voici une image aprés le clique dans la liste :
http://www.cijoint.fr/cij114676606159.bmp

Tu verra mieux ce qui se passe.
@+


Cette ligne se met en rouge et j'ai une boîte qui me dit
"attendu fin instruction"

aprés Next I
StrSQl = "Select * from [Table] where [mon code] in ( " &
Left(StrIn,Len(StrIn)-1)) & ") ;"
^ ^les blancs avant et aprés les & sont obligatoires

CurrentDb.Querydefs("memoire").sql = StrSql
Merci de ton aide trés précieuse.


Bonjour,

N'ayant pas de réponse dans mon post précédent je reformule ma
question autrement.

Dans ma requête (sous formulaire) pour lire les éléments
sélectionnés dans la liste, peut-on écrire quelque chose comme
: =[LaListe].[ItemsSelected].[MonChamp] dans la zone critére
pour extraire les infos liées ?

Ou dans une zone filtre ?
Le but et d'extaire les enregistrements correspondants.

Merci.
Bonjour,

Je ne crois pas que celà soit possible.
Il va falloir passer par du code VB.
Si ta liste s'appel liste0
Private sub Liste0_afterupdate()
Dim StrIn,StrSql as String
Dim I as Integer
For I=0 to Liste0.listcount
If Liste0.selected(I) then
StrIn = StrIn & "'" & Liste0.Column(0,I) & "',"
End if
Next I
StrSQl = "Select * from [Table] where [MonChamp] in ( "&
Left(StrIn,Len(StrIn)-1)) & ") ;"
CurrentDb.Querydefs("La requete source de ton sous
formulaire").sql = StrSQl
Me.SousFormulaire.Requery
End sub
Voilà
























Avatar
Fabien2
Bonjour,
je suis un peu perdu!!!! alors je pose ma question ici:
Bonjour,

Voila je débute dans access et travaille pas mal avec votre site internet.
Et je n'est pas trouvé la reponse à mon problème. En effet j'ai créer une
requête ne mode creation et dans critére j'ai mis [Recherche date], de cette
façon l'utilisateur choisit la date et la requete fait apparaitre les
informations de cette journée. Mais si l'utilisateur rentre une date qui ne
se trouve pas dans la base de donnée alors comment faire afficher un message
d'erreur.

Merci beaucoup.

Fabien
Avatar
Michel_D
Bonjour,

Pour avoir éventuellement plus de réponses, il est préférable de
recommencer un fil de discussion.

Ceci étant dit, pour ton problème, je pense que tu devrais songer
à utiliser un formulaire basé sur ta requête.


"Fabien2" a écrit dans le message de news:
Bonjour,
je suis un peu perdu!!!! alors je pose ma question ici:
Bonjour,

Voila je débute dans access et travaille pas mal avec votre site internet.
Et je n'est pas trouvé la reponse à mon problème. En effet j'ai créer une
requête ne mode creation et dans critére j'ai mis [Recherche date], de cette
façon l'utilisateur choisit la date et la requete fait apparaitre les
informations de cette journée. Mais si l'utilisateur rentre une date qui ne
se trouve pas dans la base de donnée alors comment faire afficher un message
d'erreur.

Merci beaucoup.

Fabien



1 2