MSQuery查询在Excel中更改

时间:2010-08-05 14:22:56

标签: excel-vba excel-2003 vba excel

我有一个在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 Final1 MR Report。细分,8MR Final。{{1} },Seg Begin8MR FinalSeg End8MR FinalTrack Category。组件,8MR Final。ID,8" _ , _ "MR Final。{{ 1}},8MR Final。测量,Defect Desc8MR Final8MR FinalDef Begin Sta8MR Final。铁路,Def End Sta。标准,8MR Final8MR Final8MR Final。量化“_         ,_         “ty,Work Action。UM,8MR Final8MR Final8MR FinalUnit Cost8MR Final。评论”& Chr(13)& “”& Chr(10)& “FROM Ext Cost8MR 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

1 个答案:

答案 0 :(得分:0)

尝试分片。

从SELECT子句和FROM子句中的一个字段开始。看看你能否实现这一目标。如果没有,请减少FROM子句中的连接,直到可以使其工作,然后单独添加每个连接。

然后将每个字段添加回SELECT子句,直到您拥有所有字段,然后在WHERE子句中添加条件,并将ORDER BY子句保留为last。

另外,请考虑在FROM子句中对表进行别名处理,以便更容易阅读。