database - Recordset 不支持 adseek

标签 database excel ms-access adodb vba

我打算使用 MS Access 作为我程序的数据库。我对 MS Access 一无所知,此时我正在进行反复试验和大量研究。在我的研究中,我发现 Seek 方法可以快速定位与指定值匹配的行。但是,似乎提供程序“Microsoft.ace.OLEDB.12.0”不支持 adSeek 方法。我使用下面的代码发现了这一点。

Sub Test3()


Dim Cn As ADODB.Connection
Dim sConnString As String
Dim rs As New ADODB.Recordset

'Set a connection
Set Cn = New ADODB.Connection

'Set connection string
sConnString = "Provider=Microsoft.ace.OLEDB.12.0; Data Source=" & ThisWorkbook.Path & "\Database21.accdb" & ";"
Cn.Open ConnectionString:=sConnString

'open recordset
rs.Index = "ID"
rs.CursorLocation = adUseServer
rs.Open "Table1", Cn

'Message if the recordset supports adSeek
MsgBox rs.Supports(adSeek)



Cn.Close

End Sub

鉴于我没有任何数据库或 MS Access 经验,我不知道结论是否正确,或者我只是遗漏了一些东西。我可以通过 MS Access 使用 Seek 方法吗?

最佳答案

Seek: This method can only be used when the Recordset object has been opened with a CommandTypeEnum value of adCmdTableDirect.

所以你需要改成:

rs.Open "Table1", Cn, , , CommandTypeEnum.adCmdTableDirect

我个人很少发现 seek/find/filter 特别有用,执行 SQL SELECT 语句是获取记录的最有效方式。

关于database - Recordset 不支持 adseek,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48277711/

相关文章:

c# - 没有为一个或多个必需参数/SQL 提供的值应该是正确的

javascript - 我应该为我的 webapp 使用什么 Python 框架/数据库

mysql - 我可以使用查询输入参数来设置不同的 where 条件吗? (类似于 IF 语句)

mysql - 连接 MySQL 和 C

arrays - 数组中的通配符查找 - VBA

sql - 即使有从 VBA SQL 返回的记录,EOF 值也始终为真

database-design - 关系数据库与维度数据库,有什么区别?

excel - VBA将Excel范围复制到不同的工作簿

excel - SAS - 使用 excel 文件导入过程,dbms 无效

sql - 如何轻松过滤我的查询