您好我正在使用MS Access 2007
我有一个名为Extraction Line的表,它类似于一个订单行表,在这个表中是两个值得关注的领域:
字段:吨位:数字数据类型
字段:值:货币数据类型
我想要发生的是
用户输入吨位值
在tonnage字段的afterupdate事件中,Dlookup会 查看资源表并找到价格字段(货币数据类型) 然后它将资源表价格值与吨位数量字段(例如)$ 50 x 5等相乘,然后将$ 250值添加到价值字段中。
到目前为止,我甚至无法成功使用dlookup从资源表中获取值
我的代码位于tonnage字段的afterupdate事件的提取行表单中:
Private Sub Tonnage_AfterUpdate()
Dim X As Currency
X = DLookup("[Price]", "[Resource]", "Atomic Number" = "076")
'X= Nz(DLookup("[Price]", "[Resource]", "Atomic Number" = "076"), 0)
'X = DLookup("[Price]", "[Resource]", "[Atomic number] = Form![Atomic number]") * [Worth]
我想在执行乘法和其他要求之前先测试获取值的简单部分,但不断得到Null值错误。
由于这种解释,我认为我得到Null值错误 Null Value is due to...
但当然没有价值或没有任何价值,因为我希望dlookup首先获得价值,然后进行数学运算。
在此之前,我在抽取线表单中尝试了各种验证规则,但收到了?名称错误。
实现上述目标的最佳方法是什么?如果我能得到帮助,指出我正确的方向,我可以离开并尝试这一点。
答案 0 :(得分:1)
怎么样:
Private Sub Tonnage_AfterUpdate()
''It is probably best not to use Currency when you do not know what will
''be returned
Dim varX As Variant
varX = Nz(DLookup("[Price]", "[Resource]", "[Atomic Number] = 076"),0) * [Worth]
如果要将查找称为字段或控件,[原子序数]是数字字段:
varX = Nz(DLookup("[Price]", "[Resource]", "[Atomic Number] = " _
& MyNumber),0) * [Worth]
部分内容:
varX = DLookup("[Price]", "[Resource]", "[Atomic Number] = " & MyNumber)
If varX > 0 then
MyAnswer = VarX * Me.Worth
End If