【问题标题】:How to display all the result using Access VBA Select Query?如何使用 Access VBA Select Query 显示所有结果?
【发布时间】:2020-12-23 00:02:35
【问题描述】:

我正在运行以下代码来运行 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

【问题讨论】:

  • 将数据写入消息框将不允许复制或导出。根据检索到的值的数量,MsgBox 甚至可能无法全部显示。构建用于导出的查询或报表对象。或者使用 Excel 自动化将记录集写入工作表。
  • 发布的代码不起作用,因为换行符不正确。我猜有一个复制/粘贴问题。
  • 这是代码的复制/粘贴。如何构建这样的查询?这个有什么例子或解决方案吗?
  • 在查询中加入表并没有什么特别之处。打开查询生成器并构建查询。基本访问功能。如果你需要教程,我相信网上有很多。

标签: sql vba ms-access


【解决方案1】:

使用串联构建一串值以显示在 MsgBox 中。

Do While Not rs.EOF
    strP = strP & rs!Product & ", " 'or use vbCrLf instead of ", ".
    rs.MoveNext
Loop
MsgBox strP

【讨论】:

  • 我将 strP 声明为字符串并运行此代码。它给了我错误 - 运行时错误 3265,找不到项目。
  • 再次,此代码将在 Msgbox 中生成输出,并且不会像我运行 Access 选择查询一样显示。无论如何我可以像简单的 Access 选择查询一样显示我的结果吗?
  • 抱歉,我不小心在产品字段名称中添加了一个“s”。构建查询或报表对象。代码可以打开查询或报告。基本访问功能。
  • Access 可以运行存储的查询,我知道。我想运行 select SQL 语句的原因是因为我想提供动态输入来过滤这个查询,比如从 table where center = InputCenterNumberManually 中选择产品。使用存储的查询我只能有一种过滤器,我不能动态更改中心数。
  • 我通过使用 Querydef 并在那里分配我的查询解决了这个问题。谢谢!
猜你喜欢
  • 2014-09-28
  • 1970-01-01
  • 2017-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多