字符串的布尔结果

时间:2018-09-17 14:44:30

标签: ms-access access-vba boolean-expression

我正在使用MS Access,并且想在表中存储要检查的项目,例如:

enter image description here

我将使用以下详细信息(在打开的记录集中)从该表收集详细信息:

Field_Review = rst1![Field_NM] & ""
Evaluation = rst1![Eval_TP] & ""
Goal = rst1![Field_Val] & ""

我将使用以下代码从打开的表单中提取值:

strResult = Forms![Main].Form(Field_Review).Value

我想使用类似这样的方式返回布尔结果:

blnResult = Goal & Evaluation & strResult

我设置了blnResultDim blnResult as Boolean。 我不断收到错误消息“运行时错误'13':类型不匹配。”

当我尝试调试时,我注意到我没有返回期望的布尔值;但是,字符串的字面值为“ APPROVED = APPROVED”。

任何将评估结果设为普通布尔值的提示都会很有帮助。

1 个答案:

答案 0 :(得分:4)

Eval()可能会为您带来想要的东西。这是即时窗口示例。

您的价值观...

Goal = "APPROVED"
Evaluation = "="
strResult = "APPROVED"

将它们串联时,请使用引号将字符串中的文本值定界。如果要使用双引号,请将2放在最后一个字符串中的任意位置。但是单引号对我来说更容易...

strExpression = "'" & Goal & "'" & Evaluation & "'" & strResult & "'"
? strExpression
'APPROVED'='APPROVED'

现在计算该表达式并将其存储在变量中。您实际上并不需要CBool() ...仅需要Eval(strExpression)就足够了……但是我在这里包括了它,因为blnResult将显示为True而不是-1。两者是相同的数字,但我想避免对显示格式感到困惑。

blnResult = CBool(Eval(strExpression))
? blnResult
True