Syntax Question

J

J-P-W

Hi,

I want to evaluate 2 things, "Area" and "SubsQuestions"

I need to know if Area = "Six" or Area = "Seven" AND SubsQuestions =
"Yes"

Is it

....... If Area = "Six" or Area = "Seven" AND SubsQuestions = "Yes"
Then

or

....... If Area = "Six" AND SubsQuestions = "Yes" or Area = "Seven" AND
SubsQuestions = "Yes" Then

To confirm...... Six and No is to be ignored
...... Seven and No is to be ignored
...... Seven and Yes will be dealt with
...... Six and Yes will be dealt with

I'm getting confused just typing it!

Thanks

Jon
 
B

Bob Barrows [MVP]

J-P-W said:
Hi,

I want to evaluate 2 things, "Area" and "SubsQuestions"

I need to know if Area = "Six" or Area = "Seven" AND SubsQuestions =
"Yes"

Is it

...... If Area = "Six" or Area = "Seven" AND SubsQuestions = "Yes"
Then

or

...... If Area = "Six" AND SubsQuestions = "Yes" or Area = "Seven" AND
SubsQuestions = "Yes" Then
Simple grouping

If Area = "Six" or (Area = "Seven" AND SubsQuestions ="Yes") then
 
J

J-P-W

Simple grouping

If Area = "Six" or (Area = "Seven" AND SubsQuestions ="Yes") then

--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"- Hide quoted text -

- Show quoted text -

Thanks.

So I can have:

If Area = ("Six" AND SubsQuestions = "Yes") or (Area = "Seven" AND
SubsQuestions = "Yes") Then
'Do stuff
Else
'Do not
End If

Cool :)
 
B

Bob Barrows [MVP]

J-P-W said:
Thanks.

So I can have:

If Area = ("Six" AND SubsQuestions = "Yes") or (Area = "Seven" AND
SubsQuestions = "Yes") Then
'Do stuff
Else
'Do not
End If
No, that is not possible - the first parenthesis is in the wrong location:
it needs to be infront of Area:

If (Area = "Six" AND SubsQuestions = "Yes") or _
(Area = "Seven" AND SubsQuestions = "Yes") Then

It's also too verbose. This does exactly the same thing (the commutative
property applies to boolean operators as well as arithmetic operators):

If (Area = "Six" or Area = "Seven") AND SubsQuestions = "Yes" Then
 
J

J-P-W

No, that is not possible - the first parenthesis is in the wrong location:
it needs to be infront of Area:

If (Area = "Six" AND SubsQuestions = "Yes") or _
(Area = "Seven" AND SubsQuestions = "Yes") Then

It's also too verbose. This does exactly the same thing (the commutative
property applies to boolean operators as well as arithmetic operators):

If (Area = "Six" or Area = "Seven") AND SubsQuestions = "Yes" Then

--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"

Whoops that was a typo, however, your last solution is the neatest -
thanks Bob

Jon
 
E

Evertjan.

McKirahan wrote on 17 nov 2007 in
microsoft.public.inetserver.asp.general:
Yes; though your first set of parentheses is wrong.
Also, for readability, take a look at this:

If (SubsQuestions = "Yes" And Area = "Six") _
Or (SubsQuestions = "Yes" And Area = "Seven") Then
'Do stuff
Else
'Do not
End If

I prefer for readability:

SQy = SubsQuestions = "Yes"
A6 = Area = "Six"
A7 = Area = "Seven"

If SQy AND (A6 OR A7) Then
'Do stuff
Else
'Do not
End If

or:

SQy = SubsQuestions = "Yes"
A6 = Area = "Six"
A7 = Area = "Seven"
A6orA7 = A6 OR A7

If SQy AND A6orA7 Then
'Do stuff
Else
'Do not
End If
 
T

ThatsIT.net.au

Evertjan. said:
McKirahan wrote on 17 nov 2007 in
microsoft.public.inetserver.asp.general:


I prefer for readability:

SQy = SubsQuestions = "Yes"
A6 = Area = "Six"
A7 = Area = "Seven"

If SQy AND (A6 OR A7) Then
'Do stuff
Else
'Do not
End If

or:

SQy = SubsQuestions = "Yes"
A6 = Area = "Six"
A7 = Area = "Seven"
A6orA7 = A6 OR A7

If SQy AND A6orA7 Then
'Do stuff
Else
'Do not
End If

To use a bit of both your suggestions
testQ = (SubsQuestions = "Yes")
test6 = (Area = "Six")
test7 = (Area = "Seven")

IF testQ then
IF test6 OR test7 THEN
'Do stuff
END IF
ELSE
'Do not
END IF
 
T

ThatsIT.net.au

McKirahan said:
ThatsIT.net.au said:
[snip]
I prefer for readability:

SQy = SubsQuestions = "Yes"
A6 = Area = "Six"
A7 = Area = "Seven"

If SQy AND (A6 OR A7) Then
'Do stuff
Else
'Do not
End If
[snip]

To use a bit of both your suggestions
testQ = (SubsQuestions = "Yes")
test6 = (Area = "Six")
test7 = (Area = "Seven")

IF testQ then
IF test6 OR test7 THEN
'Do stuff
END IF
ELSE
'Do not
END IF

Sorry, that's not equivalent;you don't handle:
IF test6 OR test7 THEN's ELSE


yes it is,

first subquerys must be true or it fails, only if subquerys is true need we
test test6 or test7
 
T

ThatsIT.net.au

McKirahan said:
ThatsIT.net.au said:
McKirahan said:
[snip]


I prefer for readability:

SQy = SubsQuestions = "Yes"
A6 = Area = "Six"
A7 = Area = "Seven"

If SQy AND (A6 OR A7) Then
'Do stuff
Else
'Do not
End If

[snip]

To use a bit of both your suggestions
testQ = (SubsQuestions = "Yes")
test6 = (Area = "Six")
test7 = (Area = "Seven")

IF testQ then
IF test6 OR test7 THEN
'Do stuff
END IF
ELSE
'Do not
END IF

Sorry, that's not equivalent;you don't handle:
IF test6 OR test7 THEN's ELSE


yes it is,

first subquerys must be true or it fails, only if subquerys is true need we
test test6 or test7

Sorry, it's not.

If the second test fails you do not perform "Do not".

IF testQ then
IF test6 OR test7 THEN
'Do stuff
ELSE <= you don't allow for this
'Do not
END IF
ELSE
'Do not
END IF

OK I see what you mean, my error
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,479
Members
44,899
Latest member
RodneyMcAu

Latest Threads

Top