忍者ブログ
26 April

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

22 May

【Access/VBA】サブフォーム内の任意のレコードに移動する。

びゃああああ!!!解決してないぞこのスレッド!!
http://www.accessclub.jp/bbs5/0004/vba797.html

うおおお、あきらめてなるものかー!ぐぐるぐぐる

http://www.nurs.or.jp/~ppoy/access/access/acF001.html

pPoyさんありがとうpPoyさん!!!
(pPoyさんのコードや凡例はいつも超実用的で大変お世話になっております!)

やりたかったのは、特定のレコード削除後に、その削除レコードの場所から画面を大きく移動させない事。

Execute "Delete From~"する
   ①Me.Refreshする  → カーソルは保持できるが、#Deleteの枠が残る
   ②Me.Requeryする → リクエリーなんで、当然カーソルが先頭に戻る。

ひぎゃあああ!ヾ(:3ノシ )ノシ


サブフォームのステートメントからコールしたかったので、↓になりました。
Delete前に、SaveBMして、リクエリー後、MoveBMします。
'------------------------------------------------
Private BM As Variant

Private Sub SaveBM()
'=========================
'   移動先の保持 by m_o_co
'=========================

On Error GoTo Err_Me

Forms(Parent.Name).[サブフォーム名].SetFocus
DoCmd.GoToRecord , , acPrevious
BM = Me.Bookmark
DoCmd.GoToRecord , , acNext   ’ 後の処理で、カレントレコード前提で組んでるのが一杯あるので戻す。

No_Err:

Exit Sub
Err_Me:

Select Case Err.Number
Case 2105
' 先頭レコードだとエラーになるので。
BM = Null
Resume No_Err
End Select

End Sub

Private Sub MoveBM()
'=========================
'  カーソル移動 by m_o_co
'=========================

If Not IsNull(BM) Then
Forms(Parent.Name).[サブフォーム名].SetFocus
Me.Bookmark = BM
End If

BM = Null

End Sub
'------------------------------------------------

まじ、ブックマーク呪わしい。ほんと…!

拍手

PR