- 検索コンボボックスの選択肢追加
- 10
- 12
- 14
最新トピック
1
25 日前
排他制御 25 日前
2
1 ヶ月前
Hatena様にご質問 1 ヶ月前
6
4 ヶ月前
モジュールでカレントフォームのコントロールを使うには 4 ヶ月前
7
4 ヶ月前
日付のテキストボックスからフォームが開けません 4 ヶ月前
9
4 ヶ月前
レポートにおける数値の間隔を広げる方法 4 ヶ月前
12
4 ヶ月前
リストボックスから複数選択しそれをテーブルに格納したい 4 ヶ月前
タグリスト
Markdown テーブル生成
Accessのテーブルやクエリのデータを貼り付ける場合は下記で、Markdown書式のテーブルに変換して貼り付けてください。
サンプルの解説
テーブル T_案件 に 日付/時刻型の「年月日」フィールドがある。
「年月日」は未入力(NUll)のレコードもある。
上記のテーブルから帳票フォームを作成する。
フォームヘッダーにコンボボックスを「cbo年月」を配置する。
値集合ソース
テーブルに未入力のレコードが存在するのでユニオンクエリにする必要はなかったです。
Format([年月日],"yyyy/mm")で年月日を年月に変換、さらに
Format(・・・,"&;""(空欄)""")をかぶせることで、Nullを(空欄)に変換。(空欄)を先頭に持ってくるようにするために、
[年月日] Is Null AS Nというフィールドを追加ORDER BY 2, 1 DESC;の数字は何列目かを指定しています。下記と同じ意味になります。
ORDER BY [年月日] Is Null, Format(Format([年月日],"yyyy/mm"),"&;""(空欄)""") DESC;フィールドの式が長いときは簡略化できるので便利です。
cbo年月の更新後処理のイベントプロシージャ
cbo年月 が未選択の時は全件表示、
"(空欄)"を選択したときは年月日が空欄のレコードを抽出、
年月を選択したときは、その年月のレコードを抽出。
年月でフィルターをかける時、
Me.Filter = "Format([日付],"yyyy/mm")='" & Me!cbo年月 & "'"とした方がコードは短くなるが、インデックスが無効になるので、処理を軽くしたい場合は上のコードのように年月日フィールドに直接条件を設定するようにしたほうがよい。
詳細は下記参照。
抽出条件でインデックスが無効になる場合 - hatena chips