布尔字符串的结果

问题描述 投票:1回答:1

我正在使用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”的字符串。

任何使评估结果以普通布尔值结果的提示都会非常有用。

ms-access access-vba boolean-expression
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.