1

こんにちは、MS Access 2007 を使用しています。

Extraction Line というテーブルがあります。これはオーダー ライン テーブルに似ています。このテーブル内には、次の 2 つのフィールドがあります。

フィールド: トン数:数値データ型

フィールド: 価値:通貨データ型

私がしたいことは

ユーザーがトン数を入力するとすぐに

トン数フィールドの afterupdate イベントでは、Dlookup がリソース テーブルを参照し、価格フィールド (通貨データ型) を見つけます。次に、リソース テーブルの価格値にトン数フィールドを乗算します (例: $50 x 5 など、$250 の値)。次に、value フィールドに追加されます。

これまでのところ、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 Value is due to...

しかし、もちろん、dlookupで最初に値を取得してから計算を実行したいので、そこには値がないか、何もありません。

この方法の前に、Extraction Line フォーム内でさまざまな検証ルールを試しましたが、?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 に答える