![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
超初心者です。どうぞよろしくお願いします。
教職員で出欠記録の管理をAccessでやろうと思っています。
AccessのDlookup関数の使い方が分かりません。
テーブルA:
フィールド名:授業日
データ :2009/4/7
:2009/10/5
テーブルB:
フィールド名:期間名称 初日 最終日
データ :前期 2009/4/1 2009/9/30
:後期 2009/10/1 2010/3/31
があるとします。クエリーの中でテーブルBの条件を見ながら
テーブルAのデータを判断させて
授業日 期間名称
データ :2009/4/7 →→→ 前期
:2009/10/5 →→→ 後期
と表示させたいのです。Dlookup関数でやれると思っているのですが
うまくいきません。何とかならないでしょうか。今までは手入力していましたが無駄に思えます。
1.クエリーの中で
2.できるだけ簡単に
を条件として何とかなりませんか。
モジュールとかVBAは全く分かりません。”簡単”というのを第一にお願いします。
なお,うまくいくようなら当然Dlookup関数にはこだわりません。
以上,よろしくお願いします。
No.3ベストアンサー
- 回答日時:
うまく伝えることができるかが難点ですが
テーブルA/Bの内容が以下だとします。
(ここだけ、新規mdbで確認してみてください)
テーブルA)
授業日
2009/04/07
2009/10/05
2009/05/08
2009/03/02
2009/11/03
2009/12/05
テーブルB)
期間名称初日最終日
前期2009/04/012009/09/30
後期2009/10/012010/03/31
ここで、#1での手順に従って、クエリを作成実行すると
授業日期間名称
2009/04/07前期
2009/10/05後期
2009/05/08前期
2009/11/03後期
2009/12/05後期
の様になります。
> 複数のデータの他のデータも表示されません
これは、授業日/期間名称しか表示選択していないので、他は表示されません。
表示したいものは、追加設定していきます(本来のテーブルAの内容上で)
DLookup の方法も書いておきます。
今まで使用していたテーブルAを表示するクエリをデザインで開きます。
表示したい位置のフィールド欄に以下を記述します。
(テーブルBを表示する必要はありません)
期間名称: DLookUp("期間名称","テーブルB","[初日] <= #" & 授業日 & "# AND [最終日] >= #" & 授業日 & "#")
上記テーブルA/Bの内容で、授業日/期間名称を表示させると
授業日期間名称
2009/04/07前期
2009/10/05後期
2009/05/08前期
2009/03/02
2009/11/03後期
2009/12/05後期
となります。
テーブルBの範囲にない日付 2009/03/02 の表示では、
前者:表示されません
後者:NULL (空白)表示となります
また別の方法:テーブルBを使わない方法)
4~9月:前期
10~3月:後期
という設定が今後も変わらないのであれば、授業日から計算します。
クエリを作ります。
テーブルAを表示させて、授業日をダブルクリックします。
授業日の隣のフィールド欄に以下を記述します。
期間名称: IIf(Month(DateAdd("m",-3,授業日))<=6,"前期","後期")
内容的には、3か月前の月を求め、6以下なら前期、でなければ後期
クエリをデータシートビュー表示にして表示を確認します。
授業日期間名称
2009/04/07前期
2009/10/05後期
2009/05/08前期
2009/03/02後期
2009/11/03後期
2009/12/05後期
サンプルのデータでは、上記の様になります。
前回 範囲外であった 2009/03/02 にも期間名称は埋められています。
またわからなかったら、補足してください。
感謝感激です。
今回ご指導頂いた方法で,完全に一致した結果が得られました。
新規で実験用に作ったデータベースでは希望した通りの結果です。
まだ,追記して頂いた方法は実験していませんが,最初の方法で問題は解決しています。
今回の件で,クエリーやBetween について,理解が深まった気がします。お陰様で,大きな山場を抜けた気がします。
早速,開発中のデータベースで同様のことをやってみます。
有り難うございました。
No.2
- 回答日時:
> Between #"[初日]"# And #"[最終日]"# と入力すると
いえいえ、加工しないでください。
> 授業日の抽出条件に以下を記述します。
> BETWEEN [初日] AND [最終日]
このまま、やってみてください。
この回答への補足
そのまま,やってみました。
エラー表示は確かに出ませんでしたが,テーブルAの先頭の
データ(2009/4/7)が2回表示されて,それにそれぞれ「前期」「後期」と表示されただけでした。
当然,2回目の表示ではこの日付は「後期では無い」ので誤りの表示になっています。
本来入力した複数のデータの他のデータも表示されません。
何がうまくいかない原因なのでしょうか?
何度も,お付き合い頂いて感謝しています。
まだ,うまくいきません。
ご面倒でなければいましばらくご指導下さい。
追記
質問の仕方が悪いのかもしれません。
具体的にどこを詳しく記入すればいいですか?
どうぞ,よろしくお願いします。
No.1
- 回答日時:
クエリを作成します。
クエリデザインから作成します。
テーブルA と テーブルBを表示します。
テーブルAの授業日をダブルクリックします。
テーブルBの期間名称をダブルクリックします。
授業日の抽出条件に以下を記述します。
BETWEEN [初日] AND [最終日]
クエリ表示をデータシートビューに切り替えてみます。
良ければ保存します。
こういうことで良かったのでしょうか。
この回答への補足
Between #"[初日]"# And #"[最終日]"# と入力すると
不適切な日付・・・というエラーメッセージがでます。
残念ですが,まだ,うまくいっていません。
よろしくお願いします。
早速のご回答とご指導に感謝します。有り難うございました。
今,確認中ですが「抽出条件でデータ型が一致しません」
というメッセージが出ました。
以前,データの型と言うことで#で囲むとか,"で囲むとか
どこかで見た気がするので,あちこち調べて実験していますが
まだ,うまくいきません。
もう少し,助けて頂けませんか?
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Access VBA を利用して、フォルダ内のファイルの名称を変更したい 1 2023/08/03 08:27
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- その他(データベース) Microsoft Accessについて 1 2022/06/06 16:20
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Access(アクセス) Access DLookup vbaで条件を2件設定したい場合どうすればよいでですか? 現在 If( 1 2023/06/28 14:28
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- 会社・職場 Excel、Googleスプレッドシートなどへのデータ入力 2 2023/07/06 05:59
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
3つの表を1つに縦に連結する
-
時間の足し算
-
INSERT時にデータ登録とmaxの発...
-
ACCESSに同時アクセス(編集)を...
-
Accessレコードの追加や変更が...
-
Accessクエリでの、LIKE条件
-
採点のDBを作りたい
-
SQLで日付を条件に削除したい
-
デザインビューで、連結式 を...
-
フォームの計算がテーブルに反...
-
ツリー構造をRDBで表現するには?
-
Accessの追加クエリで既存のテ...
-
2つのテーブルを比較して一致し...
-
accessのマクロでODBC接続で外...
-
access テーブル内のレコード...
-
ファイルメーカ 検索実行せず...
-
SQLで条件指定結合をしたいがNU...
-
Accessでテーブルにパスワード...
-
データ型の変更
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
ACCESSに同時アクセス(編集)を...
-
Accessクエリでの、LIKE条件
-
Accessでテーブルからテーブル...
-
access テーブル内のレコード...
-
デザインビューで、連結式 を...
-
2つのテーブルを比較して一致し...
-
3つの表を1つに縦に連結する
-
ACCESSで指定されたテーブルか...
-
Accessレコードの追加や変更が...
-
Accessの追加クエリで既存のテ...
-
Accessでvlookupみたいなことは...
-
SQLで条件指定結合をしたいがNU...
-
ツリー構造をRDBで表現するには?
-
SQLで日付を条件に削除したい
-
リンクテーブルを CopyObject ...
-
Accessのサブフォームで#Name...
-
時間の足し算
-
INSERT時にデータ登録とmaxの発...
-
SQL: SELECT UNIONすると文字数...
おすすめ情報