通过Access快速开发平台2.4.3版本自动生成的窗体,如果后台是Access,那么有可能在执行完删除操作之后,List窗体中的数据不会即时刷新,这个是这一2.4.3版本的一个BUG,将会在下一版本进行修正。临时用以下方法解决一下。
解决这个问题很简单,只需要将ADO.RunSQL改为DAORunSQL(平台内置函数)
原代码:
Public Sub btnDelete_Click()
If Not Me.sfrList.Form.CurrentRecord > 0 Then Exit Sub
Me.sfrList.SetFocus
RunCommand acCmdSelectRecord
Dim strMessage As String: strMessage = LoadString("Are you sure to delete?")
If Not MsgBoxEx(strMessage, vbExclamation + vbOKCancel) = vbOK Then Exit Sub
ADO.RunSQL "Delete FROM [tblTest] Where [ID]=" & Nz(Me.sfrList![ID], 0)
RequeryDataObject Me.sfrList
End Sub
修改后:
Public Sub btnDelete_Click()
If Not Me.sfrList.Form.CurrentRecord > 0 Then Exit Sub
Me.sfrList.SetFocus
RunCommand acCmdSelectRecord
Dim strMessage As String: strMessage = LoadString("Are you sure to delete?")
If Not MsgBoxEx(strMessage, vbExclamation + vbOKCancel) = vbOK Then Exit Sub
DAORunSQL "Delete FROM [tblTest] Where [ID]=" & Nz(Me.sfrList![ID], 0)
RequeryDataObject Me.sfrList
End Sub
这样改好之后,在点击删除按钮,执行完删除操作之后,List窗体中的数据就会即时刷新。