我有一个在Excel宏中运行的查询已经更改,我无法弄清楚如何更改宏中的代码。原始查询是:
使用ActiveSheet.QueryTables.Add(Connection:= Array(Array(_
“ODBC; DSN = MS Access数据库; DBQ =”& strpath& “; DriverId = 25; FIL = MS Access; MaxBufferSize = 2048; PageTimeout”_
),Array(“= 5;”)),目的地:=范围(“A1”))
.CommandText =数组(_
“选择8MR Final
。计划,8MR Final
。区域,8MR Final
。跟踪,8MR Final
。1 MR Report
。细分,8MR Final
。{{1} },Seg Begin
。8MR Final
,Seg End
。8MR Final
,Track Category
。组件,8MR Final
。ID,8" _
, _
"MR Final
。{{ 1}},8MR Final
。测量,Defect Desc
。8MR Final
,8MR Final
。Def Begin Sta
,8MR Final
。铁路,Def End Sta
。标准,8MR Final
。8MR Final
,8MR Final
。量化“_
,_
“ty,Work Action
。UM,8MR Final
。8MR Final
,8MR Final
。Unit Cost
,8MR Final
。评论”& Chr(13)& “”& Chr(10)& “FROM Ext Cost
。8MR Final
" & strpath & "
”_
)
新查询加入了它和一个参数。可以在宏中运行吗?如何更改它以在宏中运行。来自访问的新查询是:
SELECT [1 MR Report] .Plan AS PlanDesc,[1 MR Report] .Area,[1 MR Report] .Track,[1 MR Report] .Segment,[1 MR Report]。[Seg Begin],[ 1 MR报告]。[Seg End],[1 MR Report]。[Track Category],[1 MR Report] .Component,[7Meas] .ID,[1 MR Report]。[Defect Desc],[7Meas]。测量,[1 MR报告]。[Def开始Sta],[1 MR报告]。[Def End Sta],[1 MR Report] .Rail,[1 MR Report]。标准,[1 MR报告]。[工作行动],[1 MR报告]。数量,[1 MR报告] .UM,[1 MR报告]。[单位成本],[1 MR报告]。[Ext Cost],[7Meas]。评论 来自[1 MR报告] LEFT JOIN 7Meas ON([1 MR Report] .Segment = [7Meas] .Segment)AND([1 MR Report] .Defect = [7Meas] .Defect)AND([1 MR Report]。[ Def Begin Sta] = [7Meas] .Loc) WHERE((([1 MR Report] .Key)= [userplankey])) 订单[1 MR报告]。计划,[1 MR报告] .Area,[1 MR报告] .Track,[1 MR Report] .Segment,[1 MR Report]。[Seg Begin],[1 MR Report] .Component,[7Meas] .ID,[1 MR Report]。[缺陷描述],[1 MR报告]。[Def开始Sta],[1 MR报告]。[工作行动];
我已经想出如何从电子表格中获取参数并将其放在全局变量中,但是在转换查询时遇到了问题。如果可能的话,我需要它以相同的方式运行。提前感谢您的任何帮助和建议。
Lora
答案 0 :(得分:0)
尝试分片。
从SELECT子句和FROM子句中的一个字段开始。看看你能否实现这一目标。如果没有,请减少FROM子句中的连接,直到可以使其工作,然后单独添加每个连接。
然后将每个字段添加回SELECT子句,直到您拥有所有字段,然后在WHERE子句中添加条件,并将ORDER BY子句保留为last。
另外,请考虑在FROM子句中对表进行别名处理,以便更容易阅读。