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

執筆者:

関連記事

Accessで複数レコードを1レコードにまとめる(運送会社送り状作成のため

Accessに入れてある楽天の注文データをもとに、運送屋さんの送り状伝票を作ろうと思い立った。 しかし、楽天の注文データは、同一の受注番号で複数の商品に分かれている。 例えば一人の人が3点買い物をした …

no image

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

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

no image

SqlServer 2008 Express R2 をインストールしようとしているのだが、最後の最後でうまくいかない

前回、試しに自分の普段のPCでSqlServer2008をインストールしたのだが、今回はサーバ(といってもXP)を対象に同様のことをしてみた。 しかしインストールの最後で「there was an e …

no image

テキスト型の日付をformat関数で揃える

CSV形式のデータからAccessにインポートしたものだから、日付が2012/5/5やら2012/05/05やら、文字列扱い(日付型でない)の混在したデータの入ったテーブルがある。 これをきちんと並べ …

no image

Accessで「イベントプロパティに指定した式MouseMoveでエラーが発生しました。フォームまたはレポート上のActiveX コントロールを読み込むときにエラーが発生しました。」

フォームに配置したプログレスバーコントロールの上をマウスポインタが横切ろうとすると、必ず上のエラーメッセージが表示される。 原因がわからず、対処もできず、困っていた。 Google先生も頼りにならず、 …