【发布时间】:2020-07-13 19:14:18
【问题描述】:
我正在使用一个小函数打开一个 ADODB 连接(这工作正常),我正在尝试将一个参数传递给一个 Make Table 查询。并收到一条错误消息:“操作查询不能用作行源”
这是我正在测试的代码。
Conn.Execute (sql)
With cmd
.ActiveConnection = Conn
.CommandType = adCmdText
.CommandText = "SELECT * FROM c1GetLIVEDBnTF WHERE [AS OF DATE] = ?"
End With
cmd.Parameters.Append cmd.CreateParameter("[AS OF DATE]", adInteger, adParamInput, 10)
cmd.Parameters(0).Value = Range("ASOFDATE").Value
Set rs = cmd.Execute
我正在尝试将 Range("ASOFDATE").Value(Excel 工作表)中的日期传递到 Access Make Table 查询中。
我找到了下面的示例,但无法开始工作。
【问题讨论】:
-
我不是 Access 方面的专家,但是... 如果您尝试先将 Range("ASOFDATE").Value 存储在变量中,然后再发送变量?我不确定您是否可以将数组作为变量发送。
-
这段代码:
Conn.Execute (sql)在做什么?你在哪里得到错误? -
您的“截至日期”字段真的是
adInteger类型,还是adDate类型? (不过,这可能不会导致您的错误。) -
很抱歉没有更好地阐明设置。 MT Query 的名称是“c1GetLIVEDBnTF”,它将所有数据插入到名为“bLIVEDBnTF”的表中。
-
您不能通过 Make Table 查询
SELECT。您必须制作表格,然后从您制作的表格中进行选择。 (或者将生成表查询更改为选择查询。)如果没有经过大量测试,我对 ADODB 的了解不足,无法编写答案,因此其他人可以随时发布正确的答案。