• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DLookup関数 アクセス)

DLookup関数で指定の条件に該当する金額を取得する方法

このQ&Aのポイント
  • DLookup関数を使用して、指定の条件に該当する金額を取得する方法について教えてください。
  • 開始日と終了日、金額のデータが含まれるテーブルがあり、指定の日付に対応する金額を取得するためのVBAコードを作成したいです。
  • 具体的な例として、日付が2012/6/1の場合、2012/4/1から2013/3/31の間に該当する金額が100,000であるため、DLookup関数を使用してこの金額を取得したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.1

単純に Debug.Print DLookup("[金額]", "Tテーブル", "[開始日] <= #2013/06/01# And [終了日] >= #2013/06/01#") では? テーブルのどこにも「2013/06/01」という日付は存在していませんから、 「=(イコール)」だけで比較してしまうともちろん「該当無し」ですよね。 「4/1~翌3/31」であれば、年度を持ってやるほうが早いかもしれません。 好みの問題ではありますけどね。 ※年度の求めかた  Year(DateAdd("m", -3, 日付))  つまり、[年度]をフィールドとして持てば  Debug.Print DLookup("[金額]", "Tテーブル", "[年度]=" & Year(DateAdd("m", -3, #2013/6/1#)))  こんな具合で。

yfdmxhkohrt
質問者

お礼

いただいたコードで取得できました。 >テーブルのどこにも「2013/06/01」という日付は存在していませんから、 「=(イコール)」だけで比較してしまうともちろん「該当無し」ですよね。 確かにそうですね。 Year(DateAdd("m", -3, 日付)) このコードは初めて知りました。 年度が取得できました。 色々有難うございます。