まりふのひと

サブフォーム付きフォームを開いた時、特定のレコードをアクティブにするモジュール

  1. 「コード」は、フォームを開く時、引数で渡すものとする。
  2. サブフォーム名は、"sfm詳細"
  3. 下記ソースは、ブログ上で修正しているので、「考え方のみ」の提供とする。
    実際のコードでは検証済み。
Private Sub Form_Open(Cancel As Integer)
On Error GoTo Err_Form_Open
Dim mbTitle As String
Dim strCode As String
Dim RST As DAO.recordset

    mbTitle = MYObjName & "/Form_Open"
    strCode = Nz(OpenArgs)
    If strCode = "" Then Exit Sub
    
    Set RST = Me.sfm詳細.Form.RecordsetClone
    RST.FindFirst "[コード]='" & strCode & "'"
    Me.sfm詳細.Form.Bookmark = RST.Bookmark
    RST.Close

Exit_Form_Open:
    Set RST = Nothing
    Exit Sub
    
Err_Form_Open:
    MsgBox Err.Number & "/" & Err.Description, vbCritical, mbTitle
    Resume Exit_Form_Open
End Sub
※課題
  1. アクティブにはなるが、サブフォームの最上部ではない。
    どちらかと言えば、下方になるので、格好悪い。