Re: [SQL ] VBA利用SQL讀BOM,SP多參數
再請教一個問題,如果要帶入的參數是不固定的n個
有時1個,有時20個
可以類似C的 sub function 多引數嗎? int func(int arg_count, ...)
CREATE PROCEDURE DB_GetEntireLevelBOM
-- Add the parameters for the stored procedure here
@MN1_PartNumber VARCHAR(30),
@MN2_PartNumber VARCHAR(30),
@MN3_PartNumber VARCHAR(30),
.....
※ 引述《licheer (Keep The Faith)》之銘言:
: 資料庫名稱: MSSQL
: 下面這段code在MSSQL Studio中是可以執行,也可以查到結果
: 但是搬到VBA裡面(將下面的SQL語句,全部放在同一個string中)
: 就會出現 "當物件關閉時,不允許操作" 的錯誤
: 請問這是哪裡錯了呢?
: ======
: declare @maincode char(60)
: set @maincode='12345-77889965'--
: declare @i int
: set @i=0
: --定義主件品號臨時表
: declare @tmp_main table (品號 CHAR(60))
: --將待查品號存入主件品號臨時表
: INSERT INTO @tmp_main SELECT MD003 FROM BOMMD WHERE MD001=@maincode
: --定義BOM明細臨時表
: declare @tmp_bom table (主件品號 char(60),元件品號 char(60),組成用量 float,
: 階數 int)
: --將待查品號下一級元件品號數據存入BOM明細臨時表
: insert into @tmp_bom select MD001,MD003,MD006,@i from BOMMD
: where MD001 =@maincode
: --如果BOMM表MD001(主件品號)存在於BOM明細臨時表中的元件品號且階數為當前最低
: 層,進入迴圈
: while exists(select * from BOMMD where MD001 in (select 元件品號 from
: @tmp_bom where 階數=@i))
: begin
: --向BOM明細臨時表插入BOMMD中MD001與主件品號臨時表品號一致的資料(以主件品號
: 臨時表左關聯BOMMD,存在多對一關係)
: insert into @tmp_bom select MD001,MD003,MD006,@i+1 from
: (select MD001,MD003,MD006 from @tmp_main LEFT join BOMMD on 品號
: =MD001)A where MD001 is not null
: --清空主件品號臨時表
: delete from @tmp_main
: --向主件品號臨時表插入BOMMD中的主品號存在於BOM明細臨時表元件品號的MD003(子
: 品號)
: INSERT INTO @tmp_main SELECT MD003 FROM BOMMD WHERE MD001
: in (select 元件品號 from @tmp_bom where 階數=@i)
: set @i=@i+1
: end
: select * from @tmp_bom ORDER BY 階數,元件品號
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.234.143.56 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1568547793.A.475.html
→
09/16 17:37,
5年前
, 1F
09/16 17:37, 1F
→
09/16 17:42,
5年前
, 2F
09/16 17:42, 2F
Database 近期熱門文章
PTT數位生活區 即時熱門文章
-4
30