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でレポートのレコードソースを動的にセットしたい

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

no image

Accessでのテーブルのエクスポート定義

Access2007のテーブルをcsv保存したいのだが、結果ファイルにダブルコーテーションを付けたくない・・・。 ダブルクォーテーションつきであれば、例えば、 DoCmd.TransferText a …

no image

AccessでIN演算子をクエリの抽出条件に使うのに苦労

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

Shopify(Matrixify)でスケジュール化したJobのキャンセル

どうしても方法を見つけられなかったが、ふと画面に目を落とすと、あった、方法が。 焦ると視野が狭くなって、なかなか気が付かないんだよなあ、こういうの。 You have 4 scheduled jobs …

no image

VBAで英字混じりの引数から数字のみを取り出す関数

たとえば、abcABC123456XYGという引数から、123456のみを取り出したい。 VBAの組み込み関数で、適当なのがありそうだけど、無いみたい。 カスタム関数を作るにも、これはという情報がググ …