In vbscript can you use two possible conditions in an if statement? (OR)

久未见 提交于 2019-12-01 22:07:11

you have to explicitly state the condition for each OR. Please see below

If filter_purchase = 0 Or filter_purchase = "" Then
   SetDocVar "filter_purchase", "0"
Else
   SetDocVar "filter_purchase", CStr(filter_purchase)
End If

This should be the condition you want

If ((filter_purchase = 0) Or (filter_purchase = "")) Then

@agamike, I believe a single = is used for comparison in a vbs if not and not == link here

If you're just trying to test for an uninitialized variable then your If expression is actually redundant. All variables in VBScript are variants and all variants start out with a default value of 0/False/"". For example:

Dim v
If v = ""    Then MsgBox "Empty string"
If v = 0     Then MsgBox "Zero"
If v = False Then MsgBox "False"

All three of these tests will pass. Note how you can compare a single variable against string, numeric, and boolean literals. Uninitialized variables have no type yet, so these kinds of comparisons are completely fine.

However, once you assign a value to the variable, you need to consider its type when making comparisons. For example:

Dim v
v = ""
If v = ""    Then MsgBox "Empty String"    ' Pass.  "" = "".
If v = 0     Then MsgBox "Zero"            ' Fail! Illegal comparison.
If v = False Then MsgBox "False"           ' Fail! "" <> False.

Now that the variant has been defined as holding a string, it will need to be compared against other string types (literals or variables) or values that can be cast (either implicitly or explicitly) to a string.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!