vba - 访问 VBA 运行多个选择查询并导出到不同工作表上的 excel
问题描述
我正在尝试将多个查询导出到同一个 excel 工作表并命名该 excel 工作表。我可以让它导出到同一个电子表格中的多个工作表,但不是同一个。
选项比较数据库
Sub validate()
Dim db As Database
Set db = CurrentDb
Dim strFolder As String
Dim rst1 As DAO.Recordset
Dim rst2 As DAO.Recordset
Dim qry1 As String
Dim qry2 As String
qry1 = "SELECT DISTINCT IIf(IsDate([models].[startdate])=False,'No' + ' ' + [models.Startdate],'Yes') AS StartDate, IIf(IsDate([models].[Enddate])=False," & _
"'No' + ' ' + [models.Enddate],'Yes') AS EndDate FROM [Models]"
db.CreateQueryDef "temp1", qry1
qry2 = "SELECT DISTINCT Left([pages.imagefile],InStr([pages.imagefile],'_')-1) AS Pages_Series, " & _
"Left([parts.imagefile],InStr([parts.imagefile],'_')-1) AS Parts_ImgSeries, IIf([Pages_Series]=[Parts_ImgSeries],'Yes','No') AS Expr1 FROM [Pages], [Parts]"
db.CreateQueryDef "temp2", qry2
strFolder = CurrentProject.Path & "\"
DoCmd.TransferSpreadsheet acExport, , "temp1", strFolder & "Validated.xlsx", True
DoCmd.TransferSpreadsheet acExport, , "temp2", strFolder & "Validated.xlsx", True
CurrentDb.QueryDefs.Delete "temp1"
CurrentDb.QueryDefs.Delete "temp2"
End Sub
这会将两个查询放入 2 个不同的工作表中,但我需要将它们都放在同一个工作表中。还有如何命名工作表。
解决方案
由于您正在寻找要在工作表中依次输出的查询结果,因此我可能建议更改您的 SQL 以使用 a 组合两个查询union
的结果,然后将此单个查询的结果输出到电子表格:
select distinct
IIf(IsDate([models].[startdate])=False,'No ' & [models.Startdate],'Yes') as StartDate,
IIf(IsDate([models].[Enddate])=False,'No ' & [models.Enddate],'Yes') as EndDate,
null as Expr1
from
[Models]
union all
select distinct
Left([pages.imagefile],InStr([pages.imagefile],'_')-1) as Pages_Series,
Left([parts.imagefile],InStr([parts.imagefile],'_')-1) as Parts_ImgSeries,
IIf([Pages_Series]=[Parts_ImgSeries],'Yes','No') as Expr1
from
[Pages], [Parts]
我还建议使用与号运算符( &
) 进行连接,因为这将始终将参数视为字符串,而加法运算符 ( +
) 将首先尝试解释数据的数字内容,然后再使用连接,如果数据是非数值。
推荐阅读
- php - PHP Wordpress - 如何单独向每个用户发送电子邮件,而不是密件抄送
- r - 如何添加缺失的年份和0来完成数据
- ant-design-pro - 如何将自己的环境变量传递给 UMIJS 应用程序?
- powershell - 如何让 Powershell yaml 正确解析看起来像日期的字符串
- c++ - 错误:成员访问不完整类型“蜗牛”
- javascript - Mac 上 Adobe Acrobat 的 javascript 保存在哪里?
- vba - 文件路径/类型 vba 中带有“包含”参数的 if/else 语句
- user-input - 如何在最近创建的用户上调用对象 ID
- tailwind-css - 可以从 CSS 中引用顺风颜色吗?
- javascript - 错误 TS2304:找不到名称“db”。在火力地推物体时