存储过程代码--------------
Create procedure QUERY_BOM as 
DECLARE @T TABLE([QAB001] VARCHAR(20)  COLLATE Chinese_PRC_BIN , [QAB003] VARCHAR(20)  COLLATE Chinese_PRC_BIN ,[QAB005] VARCHAR(20) , LVL INT)
DECLARE @LVL INTSET @LVL=0
INSERT @T SELECT [QAB001], [QAB003],[QAB005],@LVL FROM SGMQAB  WHERE [QAB001]='F-B5101CGEA01'WHILE @@ROWCOUNT>0 
BEGIN 
SET @LVL=@LVL+1 
INSERT @T SELECT A.[QAB001],A.[QAB003],A.[QAB005],@LVL FROM SGMQAB AS A,@T AS B WHERE A.[QAB001]=B.[QAB003] AND B.LVL=@LVL-1 
END 
 
SELECT T.QAB001 as 主件品号,T.QAB003 as 子件品号,C.DEA002 as 品名,C.DEA960 as 规格 ,T.QAB005 as 用量 ,C.DEA023 as 最近进价,T.QAB005*C.DEA023 AS 价格
FROM @T AS T left JOIN TPADEA AS C
  ON [DEA001]=[QAB003]
WHERE NOT EXISTS(SELECT 1 FROM SGMQAB  WHERE [QAB001]=T.[QAB003])
VB中调用代码----------------
Private Sub Command1_Click()
Dim rsCmd As New ADODB.Command
Dim rsStr As New Recordset
Dim aStr As String
rsCmd.CommandText = "QUERY_BOM"
rsCmd.CommandType = adCmdStoredProcrsStr.CursorLocation = adUseClient
rsStr.CursorType = adOpenKeyset
rsStr.LockType = adLockOptimisticstrsql = "QUERY_BOM"
rsStr.Open strsql, Conn, , , adCmdTextMsgBox rsStr.RecordCountEnd Sub
报 对象关闭时,不允许操作?本人刚学程序,很多地方不知道怎么来弄, 请教高手 存储过程中 [QAB001]='F-B5101CGEA01' 这个地方,怎么通过VB中的一个录入框返回值 查询到表里,谢谢了!