请帮忙!
我已根据Microsoft的一个模板创建了一个用于记录服务调用的数据库(现在非常松散!)
我有一个“案例详细信息”表单,它是从案例列表拆分表单打开的。最初,这是用过滤器打开表单 - 我假设它意味着它实际上正在加载整个记录集?
正如我假设(希望正确),随着数据库的增长,这将是非常低效的,我决定使用SQL语句将表单更改为open和ADO记录集,只选择我想要的记录。
此代码如下所示,表单将以正确的记录打开,我可以更新字段。
Private Sub Form_Load()
On Error GoTo Form_Load_Err
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
If (IsNull(TempVars!currentid)) Then
Me.DataEntry = True
Else
'Use the ADO connection that Access uses
Set cn = CurrentProject.Connection
'Create an instance of the ADO Recordset class,
'and set its properties
Set rs = New ADODB.Recordset
With rs
Set .ActiveConnection = cn
.Source = "SELECT * FROM Cases WHERE ID = " & TempVars!currentid & ";"
.LockType = adLockOptimistic
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.Open
End With
'Set the form's Recordset property to the ADO recordset
Set Me.Recordset = rs
Set rs = Nothing
Set cn = Nothing
End If
Call IntializeCollections
Select Case (Me.Status)
Case 7, 8
Call EnableControls(mcolgrpAllFields, False)
End Select
Form_Load_Exit:
Exit Sub
Form_Load_Err:
MsgBox Error$
Resume Form_Load_Exit
End Sub
然而,这是问题所在。为了保存我的更改,我该怎么做?我做了一些谷歌搜索,看着MS Access Form Bound to ADO Disconnected Recordset,但我仍然感到非常难过。
是否有简单的“保存更新”命令?或者我是否必须遍历每个字段,检查更改,然后保存这些更改?
有人可以指出我正确的方向吗?
提前致谢
答案 0 :(得分:0)
如果您需要一次更新一条记录,请尝试使用此解决方案来处理已断开连接的记录集:http://www.techrepublic.com/blog/how-do-i/how-do-i-pass-data-over-a-network-using-disconnected-recordsets/