OVH Cloud OVH Cloud

syntaxe et opérateur

2 réponses
Avatar
Bruno
bonjour,
dans l'instruction suivante je voudrais insérer la condition iif :
en récupérant le sql de ma requete que j'essaye d'adapter à du code vb
mais je ne comprend pas bien encore comment s'articule la syntaxe entre le
vb et le sql ?!!
mon instruction :
strSQL = CurrentDb.QueryDefs("RQchoix").SQL
position = InStr(strSQL, "Where")
tmp = Left(strSQL, position - 1)
tmp = tmp & "where Format(LaDate,'mm YYYY') ='" & Me.ListLaDate & "'"
je voudrais remplacer la dernièrer partie :
='" & Me.ListLaDate & "'"
par :
=IIf([forms]![frmChoix]![listLaDate]="Toutes",Format([LaDate],"mm
yyyy"),[forms]![frmChoix]![listLaDate])
ce qui pourrait donner ceci, a condition d'avoir la bonne syntaxe je suppose
!? :
IIf('" & Me.ListLaDate & "'="Toutes",Format(LaDate,'mm YY'" & Me.ListLaDate
& "'"
YY''" & Me.ListLaDate & "')

voila, si quelqu'un à une suggestion ... merci
Eric, tu reconnaitras la suite de mes élucubrations ...

ha, d'autre part je me demande pourquoi la phrase suivante ne fonctionne pas
? :
If (rs!LaNature) <> "toto" Or (rs!LaNature) <> "titi" then
msgbox "coucou"
end if

merci de votre aide ...

2 réponses

Avatar
Eric
Bonjour,

Point 1 : Je modifierai ainsi

strSQL = CurrentDb.QueryDefs("RQchoix").SQL
position = InStr(strSQL, "Where")
tmp = Left(strSQL, position - 1)
If Me.ListLaDate <> "Toutes" then
tmp = tmp & " Where Format(LaDate,'mm yyyy')='" & Me.ListLaDate & "'"
end if

Car si Me.ListLaDate est égal à "Toutes", il n' y a pas de restriction
donc pas de Where. Dans le cas contraire, la restriction se fait dans le If.

Point 2 : Remplaces le Or par un And
If (rs!LaNature) <> "toto" AND (rs!LaNature) <> "titi" then
msgbox "coucou"
end if

bonjour,
dans l'instruction suivante je voudrais insérer la condition iif :
en récupérant le sql de ma requete que j'essaye d'adapter à du code vb
mais je ne comprend pas bien encore comment s'articule la syntaxe entre le
vb et le sql ?!!
mon instruction :
strSQL = CurrentDb.QueryDefs("RQchoix").SQL
position = InStr(strSQL, "Where")
tmp = Left(strSQL, position - 1)
tmp = tmp & "where Format(LaDate,'mm YYYY') ='" & Me.ListLaDate & "'"
je voudrais remplacer la dernièrer partie :
='" & Me.ListLaDate & "'"
par :
=IIf([forms]![frmChoix]![listLaDate]="Toutes",Format([LaDate],"mm
yyyy"),[forms]![frmChoix]![listLaDate])
ce qui pourrait donner ceci, a condition d'avoir la bonne syntaxe je suppose
!? :
IIf('" & Me.ListLaDate & "'="Toutes",Format(LaDate,'mm YY'" & Me.ListLaDate
& "'"
YY''" & Me.ListLaDate & "')

voila, si quelqu'un à une suggestion ... merci
...
ha, d'autre part je me demande pourquoi la phrase suivante ne fonctionne pas
? :
If (rs!LaNature) <> "toto" Or (rs!LaNature) <> "titi" then
msgbox "coucou"
end if

merci de votre aide ...


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Bruno
merci Eric, ça me convient très bien


Bonjour,

Point 1 : Je modifierai ainsi

strSQL = CurrentDb.QueryDefs("RQchoix").SQL
position = InStr(strSQL, "Where")
tmp = Left(strSQL, position - 1)
If Me.ListLaDate <> "Toutes" then
tmp = tmp & " Where Format(LaDate,'mm yyyy')='" & Me.ListLaDate & "'"
end if

Car si Me.ListLaDate est égal à "Toutes", il n' y a pas de restriction
donc pas de Where. Dans le cas contraire, la restriction se fait dans le If.

Point 2 : Remplaces le Or par un And
If (rs!LaNature) <> "toto" AND (rs!LaNature) <> "titi" then
msgbox "coucou"
end if

bonjour,
dans l'instruction suivante je voudrais insérer la condition iif :
en récupérant le sql de ma requete que j'essaye d'adapter à du code vb
mais je ne comprend pas bien encore comment s'articule la syntaxe entre le
vb et le sql ?!!
mon instruction :
strSQL = CurrentDb.QueryDefs("RQchoix").SQL
position = InStr(strSQL, "Where")
tmp = Left(strSQL, position - 1)
tmp = tmp & "where Format(LaDate,'mm YYYY') ='" & Me.ListLaDate & "'"
je voudrais remplacer la dernièrer partie :
='" & Me.ListLaDate & "'"
par :
=IIf([forms]![frmChoix]![listLaDate]="Toutes",Format([LaDate],"mm
yyyy"),[forms]![frmChoix]![listLaDate])
ce qui pourrait donner ceci, a condition d'avoir la bonne syntaxe je suppose
!? :
IIf('" & Me.ListLaDate & "'="Toutes",Format(LaDate,'mm YY'" & Me.ListLaDate
& "'"
YY''" & Me.ListLaDate & "')

voila, si quelqu'un à une suggestion ... merci
...
ha, d'autre part je me demande pourquoi la phrase suivante ne fonctionne pas
? :
If (rs!LaNature) <> "toto" Or (rs!LaNature) <> "titi" then
msgbox "coucou"
end if

merci de votre aide ...


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr