1

サブフォームを含む Access フォームがあります。サブフォームにはデータシートがあります。メイン フォームには、サブフォームにレコードを追加するドロップ ダウン ボックスとボタンがあります。これはすべて正常に動作します (VBA コード)。ここで、行ヘッダーをクリックしたかのように、最後に挿入されたレコードを強調表示したいと思います。

これを行うにはどうすればよいですか?メイン フォームのコンボボックスは tpoint で適切なレコードに設定されているはずですが、サブフォーム レコードを強調表示するにはどうすればよいですか?

4

1 に答える 1

2

ターゲットレコードをサブフォームの現在のレコードにします。次に、それRunCommandを「選択」するために使用します...これもレコードを強調表示します。

DoCmd.RunCommand acCmdSelectRecord

あなたの質問は「最後に追加されたレコードを現在のレコードにするにはどうすればよいですか」に変化しているようです。

最後に追加されたレコードがまだ現在のレコードである場合は、すでにそこにいるので、問題ありません。

ユーザーが最後のレコードを追加した後に別のレコードに移動した場合、そのレコードに戻るには少なくとも2つの方法があります。

  1. DoCmd.GoToRecord
  2. レコードセットクローンでfindメソッドを使用します。

状況に最も適したアプローチを選択してください。コンボボックスのバインドされた値が最後に追加された行の数値の主キーである場合は、、、を実際に使用している名前に置き換えることpkey_fieldYourComboNameHere、このような2番目の提案を試すことができます。SubformControl

Private Sub FindLastRecordAdded()
    Dim rst As DAO.Recordset
    Dim strCriteria As String

    strCriteria = "[pkey_field] =" & Me.YourComboNameHere

    Set rst = Me.SubformControl.Form.RecordsetClone
    rst.FindFirst strCriteria
    If rst.NoMatch Then
        MsgBox "Oops. This shouldn't happen.", vbInformation
    Else
        Me.SubformControl.Form.Bookmark = rst.Bookmark
    End If

    Set rst = Nothing
End Sub
于 2012-10-12T18:08:28.967 に答える