0

さまざまなクエリに基づくレポートがあります。ほとんどのクエリは、行の customerID テキストボックスの値をキーとして使用して、他のフィールドから特定のデータを抽出します。

テキストボックスの 1 つの Control Source プロパティについては、次のようにします。

=DLookUp([Level],[qryLevel],[Me].[customerID])  

qryLevel の SQL は次のとおりです。

SELECT TOP 1 Level, myDate FROM sometable WHERE custID=Me.customerID ORDER BY myDate DESC  

qryLevel は単独でテストすると機能しますが、DLookUp 関数は正しく機能していないようです。これは、Access が各パラメーターを求めるダイアログ ボックスを表示し、#NAME? を出力するためです。ダイアログボックスに値が入力されていない場合は、テキストボックスに。

これらのテキストボックスのそれぞれに、別のクエリから独自の結果を出力させるにはどうすればよいですか?

4

1 に答える 1

2

DLookup関数の引数はすべて文字列でなければなりません: http://allenbrowne.com/casu-07.html

したがって、最初の 2 つの引数については、二重引用符で囲みます。

whereドキュメントによると、最後の引数については、'where' という単語がなくても、SQL 句と同等であると説明されています。実際には、クエリから単一のレコードのみを返すため、最後の引数はおそらくまったく必要ありません。

=DLookup("[Level]", "[qryLevel]")

ただし、コンテナ オブジェクトを意味するqryLevelものを参照するため、独立したクエリとしてどのように機能するかはわかりません。Me次のように表現する方がよい:

SELECT TOP 1 Level, myDate
FROM sometable
WHERE custID = [Forms]![MyForm]![customerID]
ORDER BY myDate DESC

...これは、フォームの内外を問わず、あらゆるコンテキストで機能します。

于 2013-10-04T00:14:58.547 に答える