2010-08-05 41 views
0

我有一個查詢運行在已更改的Excel宏中,我無法弄清楚如何更改宏中的代碼。原始查詢是:在Excel中更改MSQuery查詢

隨着ActiveSheet.QueryTables.Add(連接:=陣列(陣列(_ 「ODBC; DSN = MS Access數據庫; DBQ =」 & strPath的&「; DriverId = 25; FIL = MS訪問; MaxBufferSize = 2048; PageTimeout「_ ),Array(」= 5;「)),Destination:= range(」A1「)) .CommandText = Array(_ 」SELECT 8MR Final .Plan,8MR Final .Area,8MR Final .Track,8MR Final1 MR Report .SEGMENT,8MR FinalSeg Begin8MR FinalSeg End8MR FinalTrack Category8MR Final .Component,8" _ , _ "MR Final.ID,8MR FinalDefect Desc8MR Final。測量,8MR FinalDef Begin Sta8MR FinalDef End Sta8MR Final .Rail,8MR Final。標準,8MR FinalWork Action8MR Final.Quanti「_ ,_ 」ty,8MR Final.UM,8MR FinalUnit Cost8MR FinalExt Cost8MR Final。評論「& Chr(13)&」「& Chr(10)&」從" & strpath & "8MR Final8MR Final「_ )

新的查詢具有連接在它和參數可以是在宏如何改變它在宏觀運行中運行,從進入新的查詢是:?

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 Report [MR Endpoint],[1 MR Report]。[Track Category],[1 MR Report] .Component,[7Meas] .ID,[1 MR Report]。[Defect Desc],[7Meas] .Meas,[ 1 MR Report]。[Def Begin Sta],[1 MR Report]。[Def End Sta],[1 MR Report] .Rail,[1 MR Report]。標準,[MR Report] [工作行動], [1 MR報告]。數量,[1 MR報告] .UM,[1 MR報告]。[單位成本],[1 MR報告]。[Ext Cost],[7Meas]。Comments 從[1 MR報告] LEFT JOIN 7Meas ON([1 MR報告] .Segment = [7Meas] .Segment)AND([1 MR Report] .Defect = [7Meas] .Defect)AND([1 MR Report])。 ([(1 MR Report] .Key)= [userplankey])) ORDER BY [1 MR Report] .Plan,[1 MR Report] .Area,[Def Report Begin Sta] = [7Meas] .Loc) WHERE [1 MR Report] .Track,[1 MR Report] .Segment,[1 MR Report]。[Seg Begin],[1 MR Report] .Component,[7Meas] .ID,[1 MR Report]。[Defect Desc ],[1 MR Report]。[Def Begin Sta],[1 MR Report]。[工作行動];

我已經想出瞭如何從電子表格中獲取參數並將其放置在全局變量中,但在轉換查詢時遇到困難。如果可能,我需要它以相同的方式運行。預先感謝任何幫助和建議。

Lora

回答

0

試着把它做成塊。

從SELECT子句和FROM子句中的一個字段開始。看看你能否得到這個工作。如果不是,請減少FROM子句中的連接,直到可以使其工作,然後逐個添加每個連接。

然後將每個字段添加回SELECT子句,直到您擁有所有這些字段,然後在WHERE子句中添加條件,並將最後的ORDER BY子句保留。

另外,考慮在FROM子句中使用別名,以便讀取更容易。