【问题标题】:TransferSpreadsheet Misses ~200 Records - Access VBATransferSpreadsheet 遗漏约 200 条记录 - 访问 VBA
【发布时间】:2015-08-05 16:28:32
【问题描述】:

我正在编写一个脚本来将两个查询导出到 Excel 电子表格。从那里,我在另一个处理数据的工作簿中运行一个宏。一切正常,只是最初导出的数据缺少记录(每次大约 200 条)。

我的代码:

'Step 1: Run qry_OpenKaizens and ouput data to OpenKaizens.xlsx
    myQueryName = "qry_OpenKaizens"
    myExportFileName = CurrentProject.Path & "\OpenKaizens.xlsx"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, myQueryName, myExportFileName, True
'Step 2: Rim qry_closed Kaizens and output data to ClosedKaizens.xlsx
    myQueryName = "qry_ClosedKaizens"
    myExportFileName = CurrentProject.Path & "\ClosedKaizens.xlsx"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, myQueryName, myExportFileName, True

qry_OpenKaizens(应该有 79 条记录,有 71 条):

SELECT KaizenData.TrackingNumber, KaizenData.KaizenLevel, KaizenData.Plant, KaizenData.Year1, KaizenData.[Tracking No], KaizenData.MainPillar, KaizenData.Area AS Dept, KaizenData.Team AS Area, KaizenData.[OP/STA] AS [Machine/Station], KaizenData.ProjectName AS [Project Name], KaizenData.IssueDescription AS [Description Phenomena], KaizenData.SolutionDescription AS [Solution Description], KaizenData.[Project Board], KaizenData.[Loss Category], KaizenData.[Loss Type], KaizenData.EnteredDate AS [Entered Date], KaizenData.StartingDate AS [Starting Date], KaizenData.EndDate AS [Completion Data], KaizenData.Notes, KaizenData.EstimatedSavings, KaizenData.EstimatedCost, KaizenData.BC, [EstimatedSavings]-[EstimatedCost] AS [Estimated Benefit], IIf([openstatus]=True,"Open") AS Status
FROM KaizenData
WHERE (((IIf([openstatus]=True,"Open")) Is Not Null)); 

qry_ClosedKaizens(应该有 7514 条记录,但有 7239 条):

SELECT KaizenData.TrackingNumber, KaizenData.KaizenLevel, KaizenData.Plant, KaizenData.Year1, KaizenData.[Tracking No], KaizenData.MainPillar, KaizenData.Area AS Dept, KaizenData.Team AS Area, KaizenData.[OP/STA] AS [Machine/Station], KaizenData.ProjectName AS [Project Name], KaizenData.IssueDescription AS [Description Phenomena], KaizenData.SolutionDescription AS [Solution Description], KaizenData.[Project Board], KaizenData.[Loss Category], KaizenData.[Loss Type], KaizenData.EnteredDate AS [Entered Date], KaizenData.StartingDate AS [Starting Date], KaizenData.EndDate AS [Completion Data], KaizenData.[Wk Comp], KaizenData.Benefit, KaizenData.Cost, KaizenData.BC, KaizenData.Savings, IIf([closedstatus]=True,"Closed") AS Status
FROM KaizenData
WHERE (((IIf([closedstatus]=True,"Closed")) Is Not Null));

【问题讨论】:

  • 我唯一一次遇到这样的问题,问题出在编码中。您确定 Excel 宏不会更改从 Access 导出的数据吗?您发布的代码段之前和之后发生了什么?如果您在查询中运行生成表,您是否获得与原始查询在选择视图中相同的记录数?如果没有,至少您可以将问题范围缩小到 Access。
  • @PractLogical 一开始我也有同样的想法,并检查了我导入前后的宏。根本没有任何东西触及该工作表!我将工作簿更改为自行导入数据,而不是使用访问权限导出数据,现在它工作正常。

标签: ms-access vba


【解决方案1】:

您的 where 语句似乎出了问题,而不是导出事务。

iif 语句不应该在您的选择行上,而您的 where 语句应该只计算 Closed 或 Open 吗?

当 closedstatus 为 null 或为空或包含空白时会发生什么?

【讨论】:

    猜你喜欢
    • 2019-07-26
    • 1970-01-01
    • 2015-02-09
    • 2014-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多