Recordset不支持adseek

时间:2018-01-16 09:16:39

标签: database excel-vba 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访问经验,我不知道结论是否正确或我只是遗漏了什么。我可以使用MS Access使用Seek方法吗?

1 个答案:

答案 0 :(得分:1)

  

Seek:只有在使用CommandTypeEnum值adCmdTableDirect打开Recordset对象时,才能使用此方法。

所以你需要改为:

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

就我个人而言,我很少发现搜索/查找/过滤特别有用,执行SQL SELECT语句是获取记录最常用的方法。