循环浏览记录时,访问中的更改事件将不起作用
Change event in access won't work when cycling through records
我目前有一个包含两个子表单的表单,在一个名为 Customer Addresses 的子表单中,我有一个包含地址 table 主键的文本框。我在此表单上放置按钮以循环到下一条或上一条记录,当我循环浏览这些记录时,我可以看到我的不同地址 ID 在文本框中循环。
现在,当我的 addressID 被循环时,我希望该值自动更新另一个名为 CustomerContacts 的子表单中的另一个文本框。我向更改和更新事件添加了一些代码,但没有成功。
Private Sub Text0_Change()
Me.Parent!ContactInformation.Form!ContactInformation_Address.Value = Text0.Value
End Sub
以上代码中的引用是正确的。我用一个组合框测试了这段代码,我实际上点击了下拉箭头并选择了一个值,它成功地更新了另一个子表单中的另一个文本框。
所以我在这里遗漏了一些东西,当循环浏览记录时它不会触发更改或更新事件,所以我想知道如何解决所有这些问题。
已将 Forms 宏转换为 Visual Basic。现在,我选择下一条和上一条记录的命令按钮位于 vba 代码中。 Next 获取要更新的文本框的代码,并将其放在选择记录的行下方。
'------------------------------------------------------------
' Command24_Click
'
'------------------------------------------------------------
Private Sub Command24_Click()
On Error GoTo Command24_Click_Err
On Error Resume Next
DoCmd.GoToRecord , "", acPrevious
Me.Parent!ContactInformation.Form!ContactInformation_Address.Value = Text0.Value
If (MacroError <> 0) Then
Beep
MsgBox MacroError.Description, vbOKOnly, ""
End If
Command24_Click_Exit:
Exit Sub
Command24_Click_Err:
MsgBox Error$
Resume Command24_Click_Exit
End Sub
'------------------------------------------------------------
' Command25_Click
'
'------------------------------------------------------------
Private Sub Command25_Click()
On Error GoTo Command25_Click_Err
' _AXL:<?xml version="1.0" encoding="UTF-16" standalone="no"?>
' <UserInterfaceMacro For="Command24" xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application"><Statements><Action Name="OnError"/><Action Name="GoToRecord"><Argument Name
' _AXL:="Record">Previous</Argument></Action><ConditionalBlock><If><Condition>[MacroError]<>0</Condition><Statements><Action Name="MessageBox"><Argument Name="Message">=[MacroError].[Description]</Argument></Action></Statements></If></ConditionalBlo
' _AXL:ck></Statements></UserInterfaceMacro>
On Error Resume Next
DoCmd.GoToRecord , "", acNext
Me.Parent!ContactInformation.Form!ContactInformation_Address.Value = Text0.Value
If (MacroError <> 0) Then
Beep
MsgBox MacroError.Description, vbOKOnly, ""
End If
Command25_Click_Exit:
Exit Sub
Command25_Click_Err:
MsgBox Error$
Resume Command25_Click_Exit
End Sub
我目前有一个包含两个子表单的表单,在一个名为 Customer Addresses 的子表单中,我有一个包含地址 table 主键的文本框。我在此表单上放置按钮以循环到下一条或上一条记录,当我循环浏览这些记录时,我可以看到我的不同地址 ID 在文本框中循环。
现在,当我的 addressID 被循环时,我希望该值自动更新另一个名为 CustomerContacts 的子表单中的另一个文本框。我向更改和更新事件添加了一些代码,但没有成功。
Private Sub Text0_Change()
Me.Parent!ContactInformation.Form!ContactInformation_Address.Value = Text0.Value
End Sub
以上代码中的引用是正确的。我用一个组合框测试了这段代码,我实际上点击了下拉箭头并选择了一个值,它成功地更新了另一个子表单中的另一个文本框。
所以我在这里遗漏了一些东西,当循环浏览记录时它不会触发更改或更新事件,所以我想知道如何解决所有这些问题。
已将 Forms 宏转换为 Visual Basic。现在,我选择下一条和上一条记录的命令按钮位于 vba 代码中。 Next 获取要更新的文本框的代码,并将其放在选择记录的行下方。
'------------------------------------------------------------
' Command24_Click
'
'------------------------------------------------------------
Private Sub Command24_Click()
On Error GoTo Command24_Click_Err
On Error Resume Next
DoCmd.GoToRecord , "", acPrevious
Me.Parent!ContactInformation.Form!ContactInformation_Address.Value = Text0.Value
If (MacroError <> 0) Then
Beep
MsgBox MacroError.Description, vbOKOnly, ""
End If
Command24_Click_Exit:
Exit Sub
Command24_Click_Err:
MsgBox Error$
Resume Command24_Click_Exit
End Sub
'------------------------------------------------------------
' Command25_Click
'
'------------------------------------------------------------
Private Sub Command25_Click()
On Error GoTo Command25_Click_Err
' _AXL:<?xml version="1.0" encoding="UTF-16" standalone="no"?>
' <UserInterfaceMacro For="Command24" xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application"><Statements><Action Name="OnError"/><Action Name="GoToRecord"><Argument Name
' _AXL:="Record">Previous</Argument></Action><ConditionalBlock><If><Condition>[MacroError]<>0</Condition><Statements><Action Name="MessageBox"><Argument Name="Message">=[MacroError].[Description]</Argument></Action></Statements></If></ConditionalBlo
' _AXL:ck></Statements></UserInterfaceMacro>
On Error Resume Next
DoCmd.GoToRecord , "", acNext
Me.Parent!ContactInformation.Form!ContactInformation_Address.Value = Text0.Value
If (MacroError <> 0) Then
Beep
MsgBox MacroError.Description, vbOKOnly, ""
End If
Command25_Click_Exit:
Exit Sub
Command25_Click_Err:
MsgBox Error$
Resume Command25_Click_Exit
End Sub