如果 Dlookup 在多个表中不满足条件,则显示错误。Microsoft访问



好的,我可以使用一些建议,因为我不经常习惯 VBA。

我有一个表单,在该表单中,我有一个由 make 表构建的子窗体。我没有必要改变这一点。

但是,我想在按下更新SQL服务器的上传按钮之前添加健全性检查。我卡在IIf(Dlookup(功能上;我正在尝试查看本地表,如果本地表中的三个字段与我在子窗体上的字段和条件匹配,请检查子窗体中的 5 列是否加起来是子窗体中的另一个字段。

举个例子;在本地表中有三个字段:"单位"、"类型"、"中心"

"单位"标准如下:1212、1213、1214 等

"类型"标准如下:商店,外部,内部银行

"中心"标准如下:电气车间、机械车间、外部车间。

我需要做的是将上面提到的表中称为"Ledgend"的字段与我的表单上的子表单相匹配,如果该单位、类型和中心都存在于我的子窗体的一行中,然后计算(SUM(我的子窗体上的 5 个字段,如果它与我的子窗体上名为 Total 的字段匹配,则保持原样,但如果它没有,则突出显示以下行:不同并抛出错误消息

If DLookup("Unit", [dbo_TableName]) = "Unit", FORM![SUBFORM_NAME]!Unit & "TYPE", [dbo_TableName]) = "TYPE", FORM![SUBFORM_NAME]!TYPE, & _
"Center", [dbo_TableName]) = "Center", FORM![SUBFORM_NAME]!Center Then
subform Sum(Dis + ABS + Center + SS + WRK) 
Else
MsgBox ("Error")
End If

Sum(( 不用于添加字段,而是用于聚合记录。DLookup 的语法是完全错误的。提及subform是没有意义的。听起来你需要一个嵌套的如果那时。下面假设代码位于子窗体后面。

If Not IsNull(DLookup("ID", "Ledgend", "Unit & Type & Center'" = Me!Unit & Me!TYPE & Me!Center & "'")) Then
If Me!Total <> Dis + ABS + Center + SS + WRK Then
MsgBox "Error"
'code here to set BackColor property of each control
Exit Sub
End If
Else
Exit Sub
End If

顺便说一句,莱奇德是传奇的拼写错误。

可以使用条件格式规则来管理背景色属性的设置。

相关内容

最新更新