
MSアクセスを使い、データを表形式で表示させています。
同じ日付のレコードが沢山あるのですが、本日分のみを表形式で一覧表示させるにはどうすればよいでしょうか。
また、例えばボタンをクリックすれば、表の中身だけが入れ替わり、
翌日分が表示される、という風にするにはどうすればよいでしょうか。
今はテーブルからクエリで本日分だけ抽出し、それを表示させているのですが、
前日、前々日、3日前‥と遡ろうとするとその分だけクエリを作成しないといけないので、
何かやり方が間違っていると思いますので‥。
ご教授のほど、よろしくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんにちは
フォームのFilterプロパティを利用するとうまくいくと思います。
・フォームのRecodeSouceに該当テーブルを指定する
・フォームのFilterに抽出条件を設定する
・フォームのFilterOnをTrueにする
本日分表示のためのボタンクリックイベントに
Me.Filter = "HIZUKE = '" & Date & "'"
Me.FilterOn = True
前日分表示のためのボタンクリックイベントに
Me.Filter = "HIZUKE = '" & DateAdd("d", -1, Date) & "'"
Me.FilterOn = True
このままだとフォーム表示の際、テーブルの全レコードが表示されます。
最初から本日分を表示するならフォームロードイベントに本日分のFilter設定を行ってください。
No.3
- 回答日時:
少し、質問文を私なりに整理してみました。
<TEST>
ID__日付___________DATA_1__DATA_2
1___2007/06/15__1A_1_____2A_1
2___2007/06/16__1A_2______2A_2
3___2007/06/16__1A_3______2A_3
4___2007/06/17__1A_4______2A_4
5___2007/06/17__1A_5______2A_5
これを、レコード移動ボタンを持たない帳票フォームに本日分を表示するようにしています。
しかし、これでは常に本日分しか表示されないので困っています。
そこで、表示[対象日]を配置しボタンで更新し、それにフォームを連動させようと考えています。
・フォームヘッダーに抽出・表示する日付を示す[対象日]を配置。
・その横に[→][←]の[cmdNextDay][cmdPreviousDay]というコマンドボタンも配置。
この辺りまでは考えつきましたが、以下の点が不明です。
1、フォーム起動時、[対象日]を本日に設定する方法。
2、フォーム起動時、[対象日]に対応したデータを表示する方法。
3、[対象日]が変更されたら、それに応じて再表示する方法。
さて、これだけのことですと、実は8行程度のVBAコードを書けば実現できます。
Option Compare Database
Option Explicit
Private Sub cmdNextDay_Click()
Me.対象日 = Me.対象日 + 1
UpdateRecordSource Me.対象日
End Sub
Private Sub cmdPreviousDay_Click()
Me.対象日 = Me.対象日 - 1
UpdateRecordSource Me.対象日
End Sub
Private Sub Form_Load()
Me.対象日 = Date
Me.RecordSource = "SELECT * FROM TEST WHERE 日付=#" & Date & "#;"
End Sub
Public Sub UpdateRecordSource(ByVal NewDay As Date)
Me.RecordSource = "SELECT * FROM TEST WHERE 日付=#" & NewDay & "#;"
Me.Requery
End Sub
さて、クエリを使い、かつ、VBA のコードを最小にするには一体どういう手を使ったらいいのでしょうか?
*******************************************
Option Compare Database
Option Explicit
Private Sub cmdNextDay_Click()
Me.対象日 = Me.対象日 + 1
Me.Requery
End Sub
Private Sub cmdPreviousDay_Click()
Me.対象日 = Me.対象日 - 1
Me.Requery
End Sub
*******************************************
Me.対象日の既定値を利用して日付を設定すれば VBA コードは不要です。
ですから、書くべきコードは僅か4行。
クエリがフォームに配置されている[対象日]を参照している訳ですからリクエリすればOKという訳です。
つまり、No2 の回答が全てですよ。
<アドバイス>
**** と **** との間の仕掛けをしてから、No2 さんの回答に従ってクエリを改造してみて下さい。
そして、上手くいかなかったら、そのクエりを[SQLビュー]モードで表示し、それを回答者に示して下さい。
そうすれば、一発で解決します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセスで教えてください。 クエリで2日前を抽出する計算式を 入力して表示させると ちゃんとyyyy 1 2023/06/08 21:05
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- その他(Microsoft Office) wordの差し込み印刷での日付表示 2 2023/08/15 16:51
- Visual Basic(VBA) 翌日にお休み予定の従業員がいる場合にアラートを出したい 1 2023/07/11 11:18
- Access(アクセス) Accessクエリで年月フィールドを年のみで抽出する方法について 2 2022/08/29 18:10
- Access(アクセス) Access2016でフォーム内にExcelの複数シートを 表示させるイメージで複数テーブルの デー 1 2022/11/25 15:30
- ドライブ・ストレージ SSDを追加したら昔のHDDがおかしくなった 4 2023/03/23 13:25
- その他(Microsoft Office) Outlookメール 連絡先の検索について 〈 ご説明 〉 Windows PC の Outlook 1 2022/09/23 14:43
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS2003 でクエリの抽出条件...
-
アクセスのフォームにカンマ区...
-
コマンドの検索について。
-
パススルークエリの動的パラメ...
-
フォームに表示したいんですが...
-
access 検索フォームで検索が...
-
年月日を持つテーブルから年月...
-
アクセス マクロのメッセージ...
-
データベースのINT型項目にNULL...
-
Access レポート印刷するときに...
-
エクセルをACCESSのレポ...
-
アクセスで数値型のフィールド...
-
サブフォームに対してGoToRecor...
-
passwordが入れられません・・・・
-
ACCESS フォームをそのまま印刷...
-
レコードを保存するコード ア...
-
「フォームを作成できませんで...
-
サブフォームを非表示させる方...
-
Accessレポートのチェックボッ...
-
access vba 開いていないフォー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL*Loader
-
Accessのフォームで、空欄のレ...
-
年月日を持つテーブルから年月...
-
access 検索フォームで検索が...
-
ACCESS2003 でクエリの抽出条件...
-
アクセスのフォームにカンマ区...
-
アクセス マクロのメッセージ...
-
ACCESSのフォーム上で複数検索...
-
複数条件検索について
-
VBAからクエリのパラメータを設...
-
パススルークエリの動的パラメ...
-
AccessにてExcelファイル名にパ...
-
検索フォームで空白を抽出したい
-
ACCESS マクロで検索に...
-
Accessの検索フォームで。
-
クエリの条件式に複数のコンボB...
-
Accessのフォームで、当該デー...
-
Access テキストボックスとlik...
-
ACCESS どこがおかしいのか?
-
Access2000で文字列中の半角ス...
おすすめ情報