
コンボボックスで選択された値を元に選択を行わせるクエリを作成しています。
ですがある特定のコンボボックスからの値でなく、複数のコンボボックスの値を組み合わせて選択を行うのはどの様にしたら良いのでしょうか?
テーブル名:テーブル1
クエリ名:選択クエリ1
選択の元になるフィールドはテーブル1内の[時刻]フィールドです。
ここは日付/時刻型になっており、表示形式は[YYYY/MM/DD HH:MM:SS]です。
この部分である範囲の選択を行いたいのですが、それの元となるコンボボックスを年/月/日/時/分/(秒)に分けたいと考えています。
(秒は無くても良い)
通常コンボボックスの値を参照する際は
Like [Forms]![フォーム名]![コンボボックス名]
という条件式を使いますが、複数のコンボボックスの値を組み合わせる場合はどのように記述したら良いのでしょうか?
またクエリのデザインビューで出来ない場合はモジュールでの記述方法をご教授頂けるとありがたいです。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
>日時データ内のたくさんある要素の中から時と分のみをコンボボックスで参照してクエリを作りたい、という内容です。
なるほど、状況が分かってきました。
>テーブルの表示上は書式で時と分しか表示されない様にしてある(13:00の様な形式)けれども、実際には年~秒までのデータが入っていますよね?これが原因でしょうか?
はい、その通りで、書式は見た目だけの問題で、データの内容は変化しません。
抽出条件で比較されるのは内容なので、書式は全く影響しません。
時間と分だけで条件を絞り込みたいと言うことなので、
日付型のデータから、時間と分のみを取り出す必要があります。
Hour関数とMinute関数を利用します。
それと、グラフの元データに利用すると言うことなので、
VBAは使わずに、クエリで処理した方が楽かと思います。
----以下手順----
コンボボックス名を下記と仮定します。
[開始時][開始分][終了時][終了分]
選択クエリ1をデザインビューで開き、下記のフィールドを追加します。
時分: Hour([時刻])*100+Minute([時刻])
このフィールドの抽出条件を下記にします。
>=([Forms]![フォーム名]![開始時]*100+[Forms]![フォーム名]![開始分]) And <([Forms]![フォーム名]![終了時]*100+[Forms]![フォーム名]![終了分])
----以上手順----
>= や < の不等号は、調整してください。
上記は開始時間は含めるが、終了時間は含めていません。
両方含めるなら、下記のような記述も出来ます。
Between [Forms]![フォーム名]![開始時]*100+[Forms]![フォーム名]![開始分] And [Forms]![フォーム名]![終了時]*100+[Forms]![フォーム名]![終了分]
内容としては[時刻]から時間と分を取り出し、整数化しています。
同様に、コンボボックスの内容も整数化し、それを選択範囲に使っています。
整数化に関しては方法は色々あります。
上記の例は、時間を100倍し、分をそのまま足しています。
12:34 → 1234
時間を60倍し、分を足して、分単位にする方法でもOKです。
12:34 → 754
比較に使うだけなので、どんな方法でも構いません。
ご返答ありがとうございます。
Hour関数とMinute関数、知りませんでした...(汗)
確かにこれを使えば簡単に比較可能ですね!
おかげで何とか目標達成出来そうです。
また機会がありましたらよろしくお願いいたします。
No.1
- 回答日時:
各コンボボックス名を、[年][月][日][時][分][秒]と仮定します。
エラー処理を考えないなら、下記で日付型に変換できます。
CDate([Forms]![フォーム名]![年] & "/" & [Forms]![フォーム名]![月] & "/" & [Forms]![フォーム名]![日] & " " & [Forms]![フォーム名]![時] & ":" & [Forms]![フォーム名]![分] & ":" & [Forms]![フォーム名]![秒])
連結して日付形式の文字列にし、CDateで日付型に変換しています。
コンボボックスの値が正常範囲でない場合や、
Null の場合にエラーになりますので、
コンボボックスに入力規則を設定した方が良いでしょう。
例:
入力チェック→はい
入力規則→Is Not Null
----------------------------------------------------------
上記の方法で目的が達成できれば蛇足ですが、
モジュールを使う方法について。
その選択クエリを何に使うのか?で、回答が異なってきます。
例えば、レポートに出力するレコードを選択するとか、
フォームに表示するレコードを選択するとか、
集計クエリの元になるレコードを選択する等々・・・
目的によって最適な方法が異なりますので、モジュールでの記述が知りたいなら、
もう少し詳しい情報を補足して頂いた方が良いと思います。
この回答への補足
ご返答頂きありがとうございます。
実際にはある時間範囲のレコードを抽出し、それをフォーム上でグラフ化することを検討しています。
上の質問では年~秒まで書きましたが、実際に抽出で選択するのは[時]と[分]の部分だけです。
要は9:00~10:30の様な形でコンボボックスを使って時間範囲を選択させる形です。
(時は0~23まで、分は00,15,30,45の4つから選択)
選択するのはコンボボックス4つ、抽出したい時間範囲の初めの[時]と[分]、終わりの[時]と[分]です。
日付/時刻型フィールドとして挿入されている日時データから時と分だけをコンボボックスで選択して抽出させたいのですが、先ほど上でご回答いただいた例から時と分の部分だけを使ってやってみましたが上手くいきませんでした。
テーブルの表示上は書式で時と分しか表示されない様にしてある(13:00の様な形式)けれども、実際には年~秒までのデータが入っていますよね?これが原因でしょうか?
なおクエリ実行時元となるテーブルには当日分のレコードしか入っておらず(年月日部分は全て同じ)、コンボボックスで選択の際も日付の指定は必要ない様にさせたいと思います。
日時データ内のたくさんある要素の中から時と分のみをコンボボックスで参照してクエリを作りたい、という内容です。
説明がわかり辛くて申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
- PHP 【PHP/MySQL】コード上で生成したクエリを基に集計クエリを作りたい 1 2022/07/28 15:06
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Excel(エクセル) コンボボックス及びリストボックスを5段階連動させる方法をご存知の方ご教授頂きたいです。 Excelで 3 2022/04/03 21:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAからクエリのパラメータを設...
-
ACCESS2003 でクエリの抽出条件...
-
年月日を持つテーブルから年月...
-
Access2000で文字列中の半角ス...
-
複数条件検索について
-
アクセスのフォームにカンマ区...
-
SQL*Loader
-
Accessのフォームで、空欄のレ...
-
Access テキストボックスとlik...
-
Access レポート印刷するときに...
-
データベースのINT型項目にNULL...
-
passwordが入れられません・・・・
-
アクセスで数値型のフィールド...
-
エクセルをACCESSのレポ...
-
エクセルVBAからアクセスフ...
-
新規レコード行を非表示にしたい
-
MSワード 年齢を計算表示でき...
-
Excelで入力したデータを自動的...
-
レコードを保存するコード ア...
-
アクセスのテキストボックスの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL*Loader
-
Accessのフォームで、空欄のレ...
-
年月日を持つテーブルから年月...
-
access 検索フォームで検索が...
-
ACCESS2003 でクエリの抽出条件...
-
アクセスのフォームにカンマ区...
-
アクセス マクロのメッセージ...
-
ACCESSのフォーム上で複数検索...
-
複数条件検索について
-
VBAからクエリのパラメータを設...
-
パススルークエリの動的パラメ...
-
AccessにてExcelファイル名にパ...
-
検索フォームで空白を抽出したい
-
ACCESS マクロで検索に...
-
Accessの検索フォームで。
-
クエリの条件式に複数のコンボB...
-
Accessのフォームで、当該デー...
-
Access テキストボックスとlik...
-
ACCESS どこがおかしいのか?
-
Access2000で文字列中の半角ス...
おすすめ情報