MS Access

Accessでのキーワード検索(フィルタ)とブックマークの関係備忘録

投稿日:2010年9月1日 更新日:

Accessでのキーワード検索(フィルタ)とブックマークの関係を作るのに苦労したのでここに備忘録。

ポイントは、検索ではなくフィルタを使うことと、BookmarkではなくIDをグローバル変数に保存してFindFirstを使うこと。

簡単そうに見えて、作り終えたのは全力で2時間後。

Option Compare Database
Dim bmark As Variant 'ブックマーク用のグローバル変数

Private Sub 修正済みチェック_Click()
If チェック55 = True Then
Me.更新日.Value = Date
Else
Me.更新日.Value = Null
End If
End Sub

Private Sub Form_Open(Cancel As Integer)
Me![検索ボックス].SetFocus
End Sub

Private Sub 検索ボックス_AfterUpdate()
‘ コントロールの値と一致するレコードを検索する

Me.Filter = “[企業名] Like ‘*” & Me![検索ボックス] & “*'”
Me.FilterOn = True

bmark = Me.企業ID ‘フォーム上でのカレントレコードの位置保存

End Sub

Private Sub 移動後_Click()
On Error GoTo Err_移動後_Click
Dim rs As Object

Set rs = Me.Recordset.Clone
DoCmd.GoToRecord , , acNext

bmark = Me.企業ID ‘フォーム上でのカレントレコードの位置保存

Exit_移動後_Click:
Exit Sub

Err_移動後_Click:
MsgBox Err.Description
Resume Exit_移動後_Click

End Sub
Private Sub 移動前_Click()
On Error GoTo Err_移動前_Click

DoCmd.GoToRecord , , acPrevious
bmark = Me.企業ID ‘フォーム上でのカレントレコードの位置保存

Exit_移動前_Click:
Exit Sub

Err_移動前_Click:
MsgBox Err.Description
Resume Exit_移動前_Click

End Sub

Private Sub フィルタ解除_Click()
On Error GoTo Err_フィルタ解除_Click

Me.FilterOn = False

‘ブックマークを保存したレコードに戻る Dim rs As Object
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst “[企業ID] = ” & bmark
If Not rs.EOF Then Me.Bookmark = rs.Bookmark

Exit_フィルタ解除_Click:
Exit Sub

Err_フィルタ解除_Click:
MsgBox Err.Description
Resume Exit_フィルタ解除_Click

End Sub

-MS Access

執筆者:

関連記事

no image

AccessからMySQLを操作

WordPressに書いた記事は、MySQLに格納されている。 格納された大量の記事をまとめて修正したいときは、いちいち管理画面から修正するのは疲れる。 今までは、PhpMyAdminでSQLのUPD …

no image

Accessでレポートのレコードソースを動的にセットしたい

今までは、フォーム上のボタンをクリックしたら、レポートをデザインで開いてからレコードソースをセットしなければならないと思っていた。 つまり、こんなやり方をやっていた。 フォーム:  【ボタン1をクリッ …

no image

AccessでコンボボックスのリストをVBAで行番号で選択する

こんな方法があるのは知らなかった。 メモメモ。 ‘コンボボックスの1行目を選択する ‘Forms!見積請求書F.cbo銀行振込先 = Forms!見積請求書F.cbo銀行振込先.ItemData(0) …

no image

Accessで指定テーブル内を全文検索

今まで、特定のフィールド内でしか検索できないものだと思っていた・・・。 Accessのリボンの検索ボタンをクリックして表示されるダイアログボックス内の「探す場所」で特定のテーブル/クエリ/フォーム名か …

もう何度もAccessの集計クエリの作成をミスって怒られている

私が悪い。反省。 自戒のメモ。 Accessの集計クエリに条件を加えたい場合、その条件をどこに書くかによって結果が全く違ってくる。 それをわかってはいるのだが・・・最大やら演算やら、細かいことを同時に …