• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MS-Access VBAでLookupのような)

MS-Access VBAで時間帯に合わせて文字列を検索する方法

このQ&Aのポイント
  • MS-Access VBAで、時間帯に合わせて文字列を検索する方法について教えてください。
  • VBA内で利用できる関数はDLookupであり、値が同数でなければnullを返します。しかし、VBAでのlookupのように同数以外は前の数字を検索する処理をしたいです。
  • 例えば、時間帯が9:30の場合、検索値を「9:00」として検索結果に「午前中A」を返したいです。同様に、12:59の場合は検索値を「10:30」として検索結果に「午前中B」を返したいです。

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

temp = dmax("表記", "T_時間帯", "開始 <= #" & Me.時間帯 & "#") でどうですか?

y_usijima
質問者

お礼

ありがとうございました。「開始」の最初を検索して、その中から最大値の値が目標とする答えなんて、考えもつきませでした。 昨日の夕方に回答を見て作成しまして、とりあえず形になりました。御礼が遅れてすみません。本当にありがとうございました。

その他の回答 (1)

  • shut0325
  • ベストアンサー率40% (490/1207)
回答No.1

select case で処理してはどうでしょうか? 参考までにコードを。 15:00以降から9:00未満はElseで処理しています。 'timev=入力された時間値 'SearchTime=検索時使用する丸めた(切り上げた)時間値 Select Case True Case timev >= #9:00:00 AM# And timev < #10:30:00 AM# SearchTime = #9:00:00 AM# Case timev >= #10:30:00 AM# And timev < #1:00:00 PM# SearchTime = #10:30:00 AM# Case timev >= #1:00:00 PM# And timev < #3:00:00 PM# SearchTime = #1:00:00 PM# Case Else SearchTime = #3:00:00 PM# End Select

y_usijima
質問者

お礼

回答をありがとうございました。 そうですね。対象外をelseにしてselect caseを使っても良かったのですね。 切羽詰っていましたので、どうも思った以上のことは出来なかったようです。 今後の参考になると思いますので、私のライブラリに保管しておきます。ありがとうございました。

関連するQ&A