「日記作りにAccess…」-テーマまたはカテゴリで選択-
現在のフォームは,これまでの日記を新しい順に並べているだけなので,テーマまたはカテゴリでフィルタをかけ,過去に何を書いたかをわかりやすくすることにした。まずは,テーマでのフィルタ。非連結のコンボボックスを1つ作り,データの「値集合ソース」を「テーマ」テーブルにして,IDではなくテーマそのものが表示されるように設定。フォームの「移動時」イベントで,常にそのレコードのテーマが表示されるように設定。Private Sub Form_Current() With Me .テーマ選択 = .テーマID ←この部分 .カテゴリ選択 = .カテゴリID If IsNull(.日付) Then .日付.SetFocus End WithEnd Subコンボボックスから選択したときに,そのテーマでフィルタがかかるように設定。Private Sub カテゴリ選択_AfterUpdate() DoCmd.ApplyFilter , "カテゴリID = '" & Me.カテゴリ選択 & "'"End Subコンボボックスをダブルクリックしたときに,そのレコードを表示したまま選択が解除されるように設定(下のプロシージャのためにDAO3.6を有効にしています)。Private Sub カテゴリ選択_DblClick(Cancel As Integer) Dim RecNum As Integer RecNum = Me.日記ID Me.FilterOn = False Set myRS = Me.RecordsetClone myRS.FindFirst "日記ID = " & RecNum Me.Bookmark = myRS.BookmarkEnd Sub以上で,無事(実は途中でいろいろあったが)テーマによるフィルタとその解除ができるようになった。この日記はフィルタをかけて書いているので,下の図のいちばん下が「13(フィルタ)」となっているはず。02/10の図と比べてください。 カテゴリによるフィルタと解除の仕掛けは,ほとんどがコピー・ペースト,「テーマ→カテゴリ」書きかえの作業で終わった。今日の作業はここまでにしようっと。