MS-Access2000を使っています。
テーブルに時間が指定してあり、その時間幅に合わせて文字列を検索したいと考えています。
Excelのlookup のように対象の値を入れると同数以外は前の(上の)数字を検索するという処理をしたいのです。
しかし、VBA内ではVlookupは無く、DLookupとなり値が同数でなければ「null」を返してきます。
何か良い方法はあるでしょうか?ぜひ、回答をよろしくお願い致します。
VBAでの関数
temp = DLookup("表記", "T_時間帯", "開始 = #" & Me.時間帯 & "#")
T_時間帯
開始 表記
9:00 午前中A
10:30 午前中B
13:00 午後A
15:00 午後B
例
*9:30をMe.時間帯に入れておくと検索値を「9:00」としたい
*12:59Me.時間帯に入れておくと検索値を「10:30」としたい
*13:00Me.時間帯に入れておくと検索値を「13:00」としたい
*17:00Me.時間帯に入れておくと検索値を「15:00」としたい
No.2ベストアンサー
- 回答日時:
temp = dmax("表記", "T_時間帯", "開始 <= #" & Me.時間帯 & "#")
でどうですか?
ありがとうございました。「開始」の最初を検索して、その中から最大値の値が目標とする答えなんて、考えもつきませでした。
昨日の夕方に回答を見て作成しまして、とりあえず形になりました。御礼が遅れてすみません。本当にありがとうございました。
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を使っても良かったのですね。
切羽詰っていましたので、どうも思った以上のことは出来なかったようです。
今後の参考になると思いますので、私のライブラリに保管しておきます。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) vba 15 2023/04/07 12:33
- Excel(エクセル) エクセル 条件に合う日付に入力された時間数の合計したい 4 2022/06/17 22:18
- その他(恋愛相談) 旦那の検索履歴 旦那がAVをよく検索しているので見てみたら私がいない時間帯で家にいる時に検索してるの 5 2022/11/14 14:27
- Firefox(ファイヤーフォックス) Firefox bookmarkの検索BOXでのインクリメンタルサーチを止めたい 5 2022/06/29 12:15
- アルバイト・パート バイトについての質問です。 応募したいバイトをネットで検索したら募集時間が13:00 ~ 18:00 3 2022/05/26 13:44
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- 子育て ファンターネ!の時間について教えてください 1 2023/03/02 20:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カーソル0件の時にエラーを発生...
-
カーソル宣言をIFで分けられま...
-
処理件数を非表示にしたい
-
データ型でFloatとreal の計算...
-
動的SQLの処理件数
-
クエリの実行時間の目安
-
ACCESSで一括処理する方法
-
Accessで処理経過を表示したい...
-
NVLとDECODEのスピード差
-
300万件のデータの処理について
-
RDBとVSAMの比較
-
カーソルがコミットするとクロ...
-
SQL plus で改行
-
カーソルを使って、最終行レコ...
-
ストアドプロシージャ_カーソル...
-
(x 行処理されました)を表示さ...
-
フィルターかけた後、重複を除...
-
差し込み後、元データを変更し...
-
SQLで特定の項目の重複のみを排...
-
エクセルで最後の文字だけ置き...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カーソル0件の時にエラーを発生...
-
処理件数を非表示にしたい
-
データ型でFloatとreal の計算...
-
カーソル宣言をIFで分けられま...
-
NVLとDECODEのスピード差
-
Accessで処理経過を表示したい...
-
ストアドプロシージャ_カーソル...
-
カーソルを使って、最終行レコ...
-
ACCESSで一括処理する方法
-
RDBとVSAMの比較
-
300万件のデータの処理について
-
SELECT と INSERT の速度
-
SQL-LOADERの逆のもの
-
動的SQLの処理件数
-
クエリの実行時間の目安
-
PL/SQL で continue ?
-
テーブルの項目が異なるテーブ...
-
カーソルがコミットするとクロ...
-
Oracleデータベースの暗号化
-
SQLについて WITH句とサブクエ...
おすすめ情報