Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如果Dlookup没有';不符合多个表中的条件,则显示错误。数据库_Vba_Ms Access_Dlookup - Fatal编程技术网

Vba 如果Dlookup没有';不符合多个表中的条件,则显示错误。数据库

Vba 如果Dlookup没有';不符合多个表中的条件,则显示错误。数据库,vba,ms-access,dlookup,Vba,Ms Access,Dlookup,好的,我需要一些建议,因为我不经常使用VBA 我有一个表单,在该表单中,我有一个子表单,它是由make表构建的。我不需要改变这个 但是,我想在按下更新SQL server的上载按钮之前添加一个健全性检查。我被卡在IIf(Dlookup)函数上;我试图查看一个本地表,如果本地表中的三个字段与我在子窗体上的字段和条件匹配,则检查我的子窗体中的5列是否与我的子窗体中的另一个字段相加 例如,;本地表中有三个字段:“单位”、“类型”、“中心” “单位”标准如下:1212、1213、1214等 “类型”标准

好的,我需要一些建议,因为我不经常使用VBA

我有一个表单,在该表单中,我有一个子表单,它是由make表构建的。我不需要改变这个

但是,我想在按下更新SQL server的上载按钮之前添加一个健全性检查。我被卡在IIf(Dlookup)函数上;我试图查看一个本地表,如果本地表中的三个字段与我在子窗体上的字段和条件匹配,则检查我的子窗体中的5列是否与我的子窗体中的另一个字段相加

例如,;本地表中有三个字段:“单位”、“类型”、“中心”

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

“类型”标准如下:车间、外部、内部银行

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

***我需要做的是将上面提到的表中的字段(称为“Ledgend”)与我表单上的子表单匹配,如果单位、类型和中心都在我的子表单上的一行中,则计算(总和)我的子窗体上有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的语法完全错误。引用
子表单
毫无意义。听起来你需要一个嵌套的If-Then。以下假设代码位于子窗体后面

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
如果不为null(DLookup(“ID”、“Ledgend”、“Unit&Type&Center””=Me!Unit&Me!Type&Me!Center&“”),则
如果我!总Dis+ABS+中心+SS+WRK然后
MsgBox“错误”
'在此处编码以设置每个控件的BackColor属性
出口接头
如果结束
其他的
出口接头
如果结束
顺便说一句,Ledgend是一个拼写错误的传说


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

June7您是否可以将其转换为EXCEL。基于某些字段名执行vlookup,然后在工作表的整个结尾检查这些单元格中的值,如果它们不等于FieldNameX,则突出显示黄色如果您有新要求,则应创建新问题。