Не удается выполнить хранимую процедуру SQL Server в модуле Access - PullRequest
0 голосов
/ 06 июля 2018

В Access я создал форму с элементами Text1, List1 и Command1.
Код для командной кнопки:

    Private Sub Command1_Click()

    Dim con As ADODB.Connection
    Dim cmd As ADODB.Command
    Dim rs As ADODB.Recordset
    Set con = New ADODB.Connection
    Set cmd = New ADODB.Command
    Set rs = New ADODB.Recordset
    con.Open "Provider=sqloledb;Data Source=192.168.100.41,1433;Network Library=DBMSSOCN;Initial Catalog=xxx;User ID=xxx;Password=xxx;"
    cmd.ActiveConnection = con
    cmd.CommandTimeout = 0
    cmd.Parameters.Append cmd.CreateParameter("@keyword", adVarChar, adParamInput, 100, Trim(Text1.Value))
    cmd.CommandText = "stored_procedure"
    Set rs = cmd.Execute(, , adCmdStoredProc)
    If (rs.RecordCount <> 0) Then
    Do While Not rs.EOF
    Me.List1.AddItem (rs.Fields(0).Value & " | " & rs.Fields(1).Value & " | " & rs.Fields(2).Value)
    rs.MoveNext
    Loop
    End If
    rs.Close
    Set rs = Nothing
    Set cmd = Nothing
    con.Close
    Set con = Nothing
    End Sub

Когда я пытаюсь запустить код, ничего не происходит. Нет ошибок. Кажется, кнопка пуста.
SP отлично работает на SQL сервере.
Тот же код кнопки, отлично работает в форме Excel.
Если я заменю часть SP на [rs.open "select * from table, где ключевое слово наподобие .."] работает нормально
Спасибо

1 Ответ

0 голосов
/ 06 июля 2018

Вам, вероятно, нужно использовать курсор на стороне клиента, я бы отладил.print rs.RecordCount, чтобы проверить, что он считает возвращенными записями.

conn.cursorlocation=aduseclient
...