【发布时间】:2020-12-21 23:57:20
【问题描述】:
我正在运行以下代码来运行 sql 并在消息框中显示产品。这工作正常。我的问题是我是否想同时显示所有产品,以便我可以复制或导出结果,就像我运行 Access Query 一样,它会给我显示的所有产品。我可以在这里做什么?我需要重写整个查询还是只是将 for 循环和 msgbox 更改为其他内容?
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Dim rcnt As Integer
Set rs = db.OpenRecordset("SELECT jd.Product FROM Consumption_JobDetails
AS jd " & _"INNER JOIN Consumption_JobRepairCentre AS jc ON jd.jobnumber =
jc.jobnumber;")
rs.MoveLast
rs.MoveFirst
For rcnt = 0 To rs.RecordCount
MsgBox (rs.Fields("Product").Value)
rs.MoveNext
Next rcnt
【问题讨论】:
-
根据提供的链接,我不应该使用执行命令吗?
-
Execute不返回记录,根据您的Select语句,您期望它返回记录。所以你不想使用Execute- 毕竟,你在哪里告诉它把记录放入的对象?Execute没有给你这个选项。你需要一个Recordset对象。 -
为什么要声明两个未使用的记录集对象?为什么要为表名的变量烦恼?您希望数据发生什么?到目前为止,您错误地尝试使用 Execute 方法进行 SELECT 查询。