【发布时间】:2014-07-31 20:58:18
【问题描述】:
我真的被困住了。我和我的同事无法弄清楚为什么这个数据库不能连接到“CurrentDb”。这是我的代码:
Dim db As Database, rs As DAO.Recordset
Dim strSQL As String, strRowSource As String
strSQL = "SELECT * FROM tbl_Documents"
Set db = CurrentDb
Set rs = db.OpenRecordset(strSQL)
If rs.RecordCount = 0 Then
MsgBox "No Documents available!"
Exit Sub
End If
rs.MoveFirst
Do Until rs.EOF = True
strRowSource = strRowSource & rs!tbl_Documents.DocID & "," & rs!tbl_Document_Types.DocType & "," & rs!tbl_Documents.DocTypeID & "," & rs!tbl_Documents.DateReceived & "," & rs!tbl_Documents.LinkToFile & "," & rs!tbl_Documents.Comments & ";"
rs.MoveNext
Loop
通常我得到的错误是“在此集合中找不到项目”在执行直到循环期间。我对我的数据库和记录集进行了观察,似乎两者都没有正确设置。我收到“操作不支持这种类型的对象”。在数据库对象的连接字段中。本质上,完全相同的代码用于我们拥有的许多其他 Access 数据库。不知道为什么这不会很好玩。
【问题讨论】:
-
你试过
Dim db As DAO.Database吗? -
@Overmind,在通常的库中,DAO 是唯一具有数据库对象的库,您认为问题是什么?整个循环代码对我来说看起来很奇怪。为什么是
rs!tbl_Documents.DocID而不是rs!DocID? strRowSource 会发生什么?为什么选择语句中没有列出字段? -
@Fionnuala 啊,好的。谢谢;反正我一直用。我不得不同意
strRowSource看起来很奇怪。 -
rs!tbl_Document_Types.DocType字段看起来非常奇怪。您选择的是tbl_Documents,而不是文档类型。
标签: ms-access vba database-connection