Доступ к SQL Server с VB6 - PullRequest
       1

Доступ к SQL Server с VB6

0 голосов
/ 07 марта 2011

Я пытаюсь отобразить данные, хранящиеся на сервере SQL в VB6.

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)

Ошибка говорит:

элемент не найден в коллекции, соответствующей запрошенному имени или порядковому номеру

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

1 Ответ

2 голосов
/ 07 марта 2011

Вы сохранили proc возвращает следующие столбцы:

  • StockMaster
  • sum1
  • sum2
  • TQty

Ваш код VB6 пытается использовать следующие имена в rs объекте Recordset:

  • SMControl
  • qty

Так что я думаю, что ошибка говорит о том, что SMControl не является допустимым именем для Field в вашем объекте Recordset. Я думаю, вам нужно изменить SMControl на StockMaster в вашем коде VB6.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...