我打算使用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方法吗?
答案 0 :(得分:1)
Seek:只有在使用CommandTypeEnum值adCmdTableDirect打开Recordset对象时,才能使用此方法。
所以你需要改为:
rs.Open "Table1", Cn, , , CommandTypeEnum.adCmdTableDirect
就我个人而言,我很少发现搜索/查找/过滤特别有用,执行SQL SELECT语句是获取记录最常用的方法。