1

アクセス 2007

Form Name is: MineLocationQuery1
1st Subform name is:MineExtractionSubform
2nd Subform name is: ExtractionLineSubform2

dlookup を使用してテーブル内の値をチェックし、それを別の値で乗算しようとしています。それは以下で動作します: サブフォームなしと 1 つのサブフォーム。しかし、2 つのサブフォームを追加すると、機能しません。

これが私がこれまでに試したことです

動作する単純なフォーム検索:

=DLookUp("[Price]","[Resource]","[AtomicRef]='" & [Forms]![ExtractionLine]![AtomicRef] & "'")*[Tonnage]

以下は、1 つのサブフォームで作成されたフォームの実際の例です。

=DLookUp("[Price]","[Resource]","[AtomicRef]='" & [Forms]![MineExtraction1]![ExtractionLineSubform]![AtomicRef] & "'")*[Tonnage]

そして、これは私が2つのサブフォームで行った多くの試みの1つであり、機能していません.

=DLookUp("[Price]","[Resource]","[AtomicRef]='" & Forms![MineLocationQuery1]!MineExtractionSubform.Form!ExtractionLineSubform2.Form.AtomicRef & "'")*[Tonnage]

価値のあるテキストボックスコントロールソースに多くの試行をコピーして貼り付け、繰り返し#Nameエラーが発生することに疲れてイライラする以外に、私は何を間違っていますか

4

1 に答える 1

1

メイン フォームのテキスト ボックスでネストされたサブフォームを参照したい場合は、次のように言います。

=[SubformControl1].[Form].[SubformControl2].[Form].[AControlName]

これは、サブフォーム コントロールの名前と、コントロールに含まれるオブジェクトへの参照として Form を使用することに注意してください。

したがって、これは(読みやすくするために分割されています)正しく見えます:

=DLookUp("[Price]","[Resource]","[AtomicRef]='" & Forms![MineLocationQuery1]!
MineExtractionSubform.Form!ExtractionLineSubform2.
Form.AtomicRef & "'")*[Tonnage]

ただし、名前を間違えるのは非常に簡単です。たとえば、サブフォーム コントロール名ではなく、含まれているフォームを参照している可能性があります。Expression Builder を使用してトラブルシューティングを行うか、すぐに表示されるウィンドウ (Ctrl+G) でフォームを少しずつ参照して、名前が正しいことを確認できます。例えば:

?Forms![MineLocationQuery1].Name
?Forms![MineLocationQuery1]!MineExtractionSubform.Name

詳細: http://access.mvps.org/access/forms/frm0031.htm

コメントを編集

サブフォーム 2 で作業している場合は、この場合はそうすべきだと思いますが、[atomicref] を参照するだけで済みます。

=DLookUp("[Price]","[Resource]","[AtomicRef]='" & [atomicref] & "'")
于 2012-11-21T14:52:38.147 に答える