我不能为我的生活解决这个问题,但我通常不是Access / VBA开发人员..
我有一个包含大约20个字段的数据库表,其中一个是Yes / No字段。我想使用DLookup提取Yes / No值,但是收到以下错误:
Run-time error '3075':
Syntax error (missing operator) in query expression 'Enabled'.
我正在使用它的代码:
MsgBox (DLookup("Enabled", "Numbers", "ID = " & Me.cbxNumber.Value & ""))
已启用是是/否字段 ID是一个String字段。
上面的DLookup对于返回其他字段的String值非常合适,所以带搜索查询的最后一个参数和表字段应该没问题。它只是抱怨返回字段('Enabled')认为它是一个查询。
MsgBox元素也是无关紧要的,因为我已经尝试将结果分配给一个Integer和一个布尔值,并且它不会抱怨类型不匹配,如果这是一个有问题的部分,我会期望它。
有什么想法吗?
答案 0 :(得分:2)
您的代码适用于我:
表格强>
<强>形式:强>
<强>代码:强>
Private Sub Command30_Click()
MsgBox (DLookup("Enabled", "Numbers", "ID = " & Me.cbxNumber.Value & ""))
End Sub
消息框根据需要显示0或-1。要检查的事项:
您的代码是否在表单模块中?否则Me.cbxNumber.Value
将无法返回任何内容。
如果你跑
,你会得到什么?debug.print Me.cbxNumber
来自表单上按钮的OnClick?
答案 1 :(得分:2)
您说ID是字符串字段。如果是这种情况,请尝试将DLookup更改为...
DLookup("[Enabled]", "Numbers", "ID = " & Chr(34) & Me.cbxNumber.Value & Chr(34))
如果ID为Long,则使用此字符串...
DLookup("[Enabled]", "Numbers", "ID = " & Me.cbxNumber.Value)