Làm thế nào để thực thi một thủ tục lưu trữ từ Excel?
Tôi có đoạn mã sau để thực thi một stored procedure từ SQL Server và trả về một dataset vào Excel, sử dụng một tham số được lấy từ listbox, tuy nhiên tôi nhận được thông báo lỗi "procedure smsabacodes has no parameters and arguments were supplied". Xin vui lòng cho tôi biết vấn đề nằm ở đâu?
Cảm ơn rất nhiều
Private Sub CommandButton1_Click()
Dim cmd As New ADODB.Command
Đặt cmd = New ADODB.Command
Dim objconn As ADODB.Connection
Dim rsdata As New ADODB.Recordset
Dim sconnect As String
'tạo chuỗi kết nối
cmd.ActiveConnection = Chuỗi kết nối của tôi
cmd.CommandText = "smsabacodes"
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Append _
cmd.CreateParameter("@sabacode", adVarChar, adParamInput, 12, ListBox1.Value)
'Tạo các đối tượng kết nối và tập bản ghi'
Set objconn = New ADODB.Connection
Set rsdata = New ADODB.Recordset
'MỞ KẾT NỐI VÀ THỰC THI THỦ TỤC LƯU TRỮ'
Với rsdata
.CursorType = adOpenStatic
.CursorLocation = adUseClient
.LockType = adLockOptimistic
.Mở cmd
'NHỚ LẤY LẠI HỒ SƠ'
Nếu không phải rsdata.EOF thì
'ĐỔ NỘI DUNG CỦA TẬP BẢN GHI VÀO BẢNG TÍNH'
Sheet1.Range("A10").CopyFromRecordset rsdata
'ĐÓNG BỘ GHI
rsdata.Close
'ĐIỀU CHỈNH ĐỘ RỘNG CỘT CHO PHÙ HỢP VỚI DỮ LIỆU'
Sheet1.UsedRange.EntireColumn.AutoFit
Khác
MsgBox "Lỗi: không có bản ghi nào được trả về", vbCritical
Kết thúc nếu
'DỌN DẸP CÁC ĐỐI TƯỢNG ADO'
Nếu CBool(objconn.State And adStateOpen) thì objconn.Close
Đặt objconn = Nothing
Đặt rsdata = Nothing
Kết thúc bằng
End Sub
Trả lời:
Vì bạn đang làm việc với Excel và SQL Server, vui lòng đăng câu hỏi của bạn tại liên kết sau để được hỗ trợ thêm: http://social.technet.microsoft.com/Forums/en/excel/threads
Comments
Post a Comment