- ベストアンサー
※ 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」を返したいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
temp = dmax("表記", "T_時間帯", "開始 <= #" & Me.時間帯 & "#") でどうですか?
その他の回答 (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
質問者
お礼
回答をありがとうございました。 そうですね。対象外をelseにしてselect caseを使っても良かったのですね。 切羽詰っていましたので、どうも思った以上のことは出来なかったようです。 今後の参考になると思いますので、私のライブラリに保管しておきます。ありがとうございました。
お礼
ありがとうございました。「開始」の最初を検索して、その中から最大値の値が目標とする答えなんて、考えもつきませでした。 昨日の夕方に回答を見て作成しまして、とりあえず形になりました。御礼が遅れてすみません。本当にありがとうございました。