gpt4 book ai didi

ms-access - 在内存中,独立的,断开连接的 ADO 记录集

转载 作者:行者123 更新时间:2023-12-04 16:35:32 24 4
gpt4 key购买 nike

当我的表单加载时,我正在我的数据表子表单上运行此代码,但我没有收到任何错误消息或代码中断。我的 debug.print 显示 Recordset rs 填充了 2131 条记录,但我的表单显示了一行带有 #Name?在每个领域。我的控件上的控件源属性肯定与我上面列出的字段名称匹配。 RS 是一个表单级变量,在表单关闭之前我不会关闭它或将其设置为空。

知道我做错了什么吗?

Set rs = New ADODB.Recordset
rs.Fields.Append "TimesUsed", adInteger
rs.Fields.Append "strWorkType", adVarWChar, 150
rs.Fields.Append "DateLastUsed", adDate
rs.Fields.Append "SelectedYN", adBoolean
Set rs.ActiveConnection = Nothing
rs.CursorLocation = adUseClient
rs.LockType = adLockBatchOptimistic
rs.Open

Dim sSQL As String
sSQL = "MyComplicated SQL Statement Ommitted from this SO Question"

Dim r As DAO.Recordset
Set r = CurrentDb.OpenRecordset(sSQL, dbOpenDynaset, dbSeeChanges)
If Not (r.EOF And r.BOF) Then
r.MoveFirst
Dim fld
Do Until r.EOF = True
rs.AddNew
For Each fld In r.Fields
rs(fld.Name) = r(fld.Name).value
Next
rs.Update
r.MoveNext
Loop
End If
r.Close
Set r = Nothing
Debug.Print rs.RecordCount '2131 records
Set Me.Recordset = rs

好的,所以我刚读了 this on the MSDN site :

记录集必须包含一个或多个唯一索引的字段,例如表的主键。

(注意:此信息在此上下文中似乎是错误的。)

最佳答案

是否可以在仅是内存对象的记录集上设置主键?

是的,使用 adFldKeyColumnAttribAppend Method .阅读 FieldAttributeEnum更多细节。

如果您的 SQL 语句中已有合适的唯一字段(或字段组合)可用,请使用该字段。如果没有,请创建一个长整数字段并将其用作假主键字段...为您插入的每一行增加值。

rs.Fields.Append "pkey", adInteger, , adFldKeyColumn

另请参阅 Danny Lesandrini 来自 Database Journal 的这篇文章是否有帮助: Create In-Memory ADO Recordsets

关于ms-access - 在内存中,独立的,断开连接的 ADO 记录集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10458418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com