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でIN演算子をクエリの抽出条件に使うのに苦労

やりたいこと: 非連結のチェックボックスでレコードを選択する – hatena chips ・・・のようなこと。 ・フォームのテキストボックスに、’354942-0007474 …

no image

「抽出条件 フォーム access not in クエリ」とか「forms access in 抽出条件 複数」とかでググっても出てこなかったので、メモ

Accessでフォームからクエリに抽出条件をパラメータで渡すやり方が分からなくて、数時間苦労。 このタイトルがGoogleの肥やしになって、このサイトに来てくれる人が増えれば。。。 要するに私がやりた …

no image

Accessの複雑な処理のレポート帳票で1ページのみ出力されるはずが2ページ目になぜかページヘッダーが出るトラブルに見舞われ

レポートのデザインビューでいうと上から、レポートヘッダー、ページヘッダー、グループヘッダー、詳細、グループフッター、ページフッター、レポートフッター・・・というような、結構細かいレポートを作っている。 …

no image

ExcelからAccessの外部データの取り込みでトラブル

ExcelからAccessのクエリを使いたいとき、データ接続途中の「テーブルの選択」ウィンドウに、使いたいクエリが表示されない。 ウィンドウ内には、Accessにあるはずのクエリがあったりなかったり。 …

no image

Accessでフォームフィルタの結果をExcelにエクスポートする

ちょっと、苦労した。 Private Sub cmdDMデータ作成_Click() On Error GoTo Err_cmdDMデータ作成_Click Dim rstf As String Dim …