来自字符串的布尔结果

Boolean Result from a string

我正在使用 MS Access 并希望将项目存储在 table 中以供审阅,例如:

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

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

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

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

我想 return 使用类似这样的布尔结果:

blnResult = Goal & Evaluation & strResult

我设置blnResultDim blnResult as Boolean。 我一直收到错误 "Run-time error '13': Type mismatch."

当我尝试调试时,我注意到我没有 return 想要的布尔值;然而,一个字面值 "APPROVED=APPROVED".

的字符串

任何使评估结果成为普通布尔值的提示都会非常有帮助。

Eval() 或许能满足您的需求。这是一个即时 window 示例。

你的价值观...

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