Sql server 用VB6访问sqlserver

Sql server 用VB6访问sqlserver,sql-server,vb6,Sql Server,Vb6,我试图在VB6中显示存储在SQL server中的数据 ALTER PROCEDURE [dbo].[ledger] -- Add the parameters for the stored procedure here AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON;

我试图在VB6中显示存储在SQL server中的数据

ALTER PROCEDURE [dbo].[ledger] 
    -- Add the parameters for the stored procedure here

AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
select a.StockMaster,sum1,sum2,(sum2-sum1) as TQty from
(SELECT tblStockMaster.SmName AS StockMaster, SUM(isnull(tblReceivingD.TotalQuantity,0)) AS sum2
FROM tblStockMaster LEFT JOIN tblReceivingD ON tblReceivingD.StockControlR=tblStockMaster.SmName
GROUP BY tblStockMaster.SmName) a ,
(SELECT tblStockMaster.SmName AS StockMaster, SUM(isnull(tblPurchaseOrderD.TotalQuantity,0)) AS sum1
FROM tblStockMaster LEFT JOIN tblPurchaseOrderD ON tblPurchaseOrderD.StockControl=tblStockMaster.SmName GROUP BY tblStockMaster.SmName) b
where a.StockMaster =b.StockMaster 
在VB6中找不到SQL。如何连接到SQL数据库?代码如下:

Private Sub Form_Load()
SetGrid
recdisplay "ledger"
End Sub
Function SetGrid()


With MSFlexGrid1
    .Rows = 1

    .ColWidth(0) = 0
    .ColWidth(1) = 4650: .TextMatrix(0, 1) = "Item Name"
    .ColWidth(2) = 3565: .TextMatrix(0, 2) = "Total Quantity"
    End With
End Function



Function recdisplay(sql As Variant)
错误显示:

在与请求的名称或序号对应的集合中找不到项


存储过程返回以下列:

  • StockMaster
  • sum1
  • sum2
  • TQty
VB6代码试图在
rs
记录集对象中使用以下名称:

  • SMControl
  • 数量

因此,我认为错误在于,
SMControl
不是记录集对象中
字段的有效名称。我想您需要在VB6代码中将
SMControl
更改为
StockMaster

在“With-MSFlexGrid1”行上粘贴一个断点,转到即时窗口并键入:rs。保存“c:\rs.xml”,adPersistXML…这将把您的记录集写入xml,以便您可以在代码之外检查它。谢谢您的关注!谢谢你的帮助。你需要接受正确的答案,因为那些不给予表扬的人最终永远得不到进一步的帮助。
Dim R As Integer
Set rs = New ADODB.Recordset
rs.Open sql, conn, adOpenStatic, adLockReadOnly

With MSFlexGrid1
.Rows = 1

    While Not rs.EOF
     .AddItem rs!SMControl & vbTab & rs!SmName & vbTab & rs!tqty

     rs.MoveNext
     Wend

End With
End Function