1

您好,我正在使用 MS Access 2007

我有一个名为 Extraction Line 的表,它类似于订单行表,在这个表中是关注的两个字段:

字段:吨位:数字数据类型

字段:值:货币数据类型

我想要发生的是

一旦用户输入吨位值

在吨位字段的更新后事件中,Dlookup 将查看资源表并找到价格字段(货币数据类型),然后将资源表价格值乘以吨位金额字段(例如)$50 x 5 等,$250 值然后添加到值字段。

到目前为止,我什至无法成功使用 dlookup 从资源表中获取值

我的代码在吨位字段的 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 值错误

但是当然不会有任何价值或没有任何价值,因为我希望 dlookup 先获取价值然后进行数学运算。

在此之前,我在提取线表单中尝试了各种验证规则,但收到 ?Name 错误。

实现上述目标的最佳方法是什么。如果我能得到帮助,为我指明正确的方向,我可以离开并尝试这个。

4

1 回答 1

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]

如果要将查找称为字段或控件,并且 [Atomic Number] 是数字字段:

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
于 2012-10-20T18:49:56.630 回答