导航到下一条记录时触发事件

Trigger an event while navigating to next record

我需要根据当前记录在表单中设置特定下拉列表的记录源,即当我单击下一条记录时,记录源应该得到更新。

但是我找不到任何事件可以这样做。这需要在不添加任何 extra/new 按钮的情况下完成。

我尝试使用 "Form Current" 事件,但显然它只在加载表单时触发一次,而不是在我移动到同一表单中的下一条记录时触发。

有什么建议吗?

示例代码:

Private Sub Form_Current()

 MsgBox ("hello")

 Dim strSQL As String

 strSQL = "SELECT DISTINCTROW StudentTeachingStatusTbl.ID, StudentTeachingStatusTbl.SuccessStatus FROM StudentTeachingStatusTbl WHERE Active = -1" & _
        "or ID IN (Select SuccessID from StudentTeachingExperiencesTbl where StuId = " & Me.Text2.Value

 If Not IsNull(Me.StudentTeachExp_SubF.Controls("SemesterID")) Then
    strSQL = strSQL & " and SemesterID = " & Me.StudentTeachExp_SubF.Controls("SemesterID").Value
 End If

 strSQL = strSQL & ")"

 Me.StudentTeachExp_SubF.Controls("SuccessID").RowSource = strSQL               
 End Sub

当表单聚焦到一条新记录时触发"On Current"事件。 打开表单时确实会发生这种情况,因为表单上有记录。

"On Load"和"On Open"在打开表单时触发一次。

尝试将 MsgBox 添加到您的 "On Current" 事件代码以进行测试。

祝你好运。

查看您的代码,您正在更改子窗体记录源,那么您是在子窗体还是主窗体上更改记录?

如果是子窗体,则需要使用子窗体的 OnChange 事件,而不是父窗体事件。