我有一个子表单,并且从SQL Server插入表以访问表后,数据没有更新
我有带有某些对象(表,表格,子表格)的MS Access应用程序。我的子表单记录来源是其中的一张桌子,当我打开表单时,包含显示的子表单数据。
我连接到SQL Server,并从dbo.telefone
中获取一些数据,并在发生诸如单击按钮之类的事件后插入到我的表(GetTelServer)中,但是即使刷新或重新查询表单或子表单,新数据也不会以子表单更新。形成。我真的很困惑为什么会发生这种情况?
Dim strSQL1 As String
Dim rst1, RstAccess As ADODB.Recordset
strSQL1 = "SELECT * from dbo.telefone"
Set rst1 = New ADODB.Recordset
With rst1
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open strSQL1, cn, adCmdText
End With
Set RstAccess = New ADODB.Recordset
RstAccess.Open "SELECT * from GetTelServer", cnAccess, adOpenKeyset, adLockOptimistic
Do Until rst1.EOF
RstAccess.AddNew
RstAccess.Fields("Name").Value = rst1.Fields("Name").Value
RstAccess.Fields("job").Value = rst1.Fields("job").Value
RstAccess.Update
rst1.MoveNext
Loop
Me.Query_subform.Requery
Me.Refresh
RstAccess.Close
Set RstAccess = Nothing
cnAccess.Close
Set cnAccess = Nothing
Me.Query_subform.Form.RecordSource = "SELECT * from GetTelServer"
'even
set Query_subform.Form.recordset= RstAccess
我不知道为什么数据没有出现在我的子表单中。当然,如果重新打开表单,一切都很好,但是我不想重新打开表单。我希望子表格数据在插入表后立即更新
我相信,在将记录源分配给子窗体之后,需要从源数据刷新。您的最后一行看起来无效(如果有效,语法验证后记录集将带有大写字母),请注释掉它。
请添加新的最后一行:
Me.Query_subform.Refresh
甚至是Me.Refresh都可以做到...然后重新测试。