0

我正在尝试通过 VBA 连接到 mdb 数据库。代码非常好。如果我在任何其他表上运行查询,它工作得很好。但是当我使用表名“SpeedRestriction”时,查询不会返回任何行。我试过方括号,但它不起作用。我对数据库只有只读访问权限,因此无法更改预先存在的表名。该代码没有给出任何错误/异常。

有什么解决方法吗?以下是代码。

sPath = <Valid path>

Set conn = New ADODB.Connection
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
        "Data Source=" & sPath


conn.Open strConnection

Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient

sSql = "Select * from SpeedRestriction"

rs.Open sSql, conn, adOpenForwardOnly, adLockPessimistic, adCmdText

Debug.Print rs.EOF
Debug.Print rs.BOF

'XL_Ws_SpeedData.Range("A1").CopyFromRecordset rs
ThisWorkbook.Worksheets("Speed Data").Range("A1").CopyFromRecordset rs

Set rs = Nothing
conn.Close
Set conn = Nothing
4

1 回答 1

0

我解决了这个问题。mdb 文件放置在与 vba 脚本不同的文件夹中(但它是本地笔记本电脑上的有效路径)。我将 .mdb 文件放在与 vba 脚本相同的文件夹中,并在脚本中相应地更改了路径。它运行得非常好。但我仍然无法理解如何获取其他表行,并且只有一个表出现问题。这对我来说没有意义

于 2017-04-20T13:48:32.933 回答