• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Lỗi: Lấy dữ liệu từ StoreProc SQL server

Nơi trao đổi về VBA (Visual Basic for Application), lập trình cho ứng dụng Microsoft Office, AutoCAD...

Điều hành viên: tungblt

phamcuong3004
Bài viết: 1
Ngày tham gia: T.Tư 23/05/2018 6:21 pm

Lỗi: Lấy dữ liệu từ StoreProc SQL server

Gửi bàigửi bởi phamcuong3004 » T.Tư 23/05/2018 6:29 pm

ANh/em giúp đỡ với, tôi đã thử đổi CommandType = adCmdText và truy vấn "Select * from TableName" thì có giá trị của RecordSet. Nhưng khi đổi CommandType = adCmdStoredProc thì lại không có giá trị của Record Set.

Tôi chỉ cần lấy dữ liệu trả về của Store Proc gán vào 1 Sheet bất kỳ. Vậy mà làm hoài không được. Thông cảm vì tôi mới tiếp cận, đã search hoài nhưng không giải quyết được. Nhờ cao nhân nào biết chỉ giúp tôi phải làm thế nào?

Cảm ơn !


Sub myStoredProcedure()
'This sub-routine defines an ADOBD command to return variables to VBA from SQL Stored Procedures.
'The ADODB command executes a Stored Procedure on the SQL Server (cmd.CommandText = [Stored Procedure Name])
'Input requirements from the Stored procedure are declared as variants at the start of the sub-routine.

Dim cnt As ADODB.Connection
Dim rst As ADODB.Recordset
Dim cmd As ADODB.Command
Dim stCon As String 'SQL Connection string
Dim stProcName As String 'Stored Procedure name

'Declare variables for Stored Procedure
Dim myVariable As Integer

'Set ADODB requirements
Set cnt = New ADODB.Connection

'Define database connection string
stCon = "Provider=SQLOLEDB;Data Source=#####;Initial Catalog=Forcast;Persist Security Info=True;User ID= ####;Password = ######;"

'Open database connection
cnt.ConnectionString = stCon
cnt.Open

Set cmd = New ADODB.Command

' Defines the stored procedure commands
stProcName = "spFcRptBom02" 'Define name of Stored Procedure to execute.
cmd.CommandType = adCmdStoredProc 'Define the ADODB command
cmd.ActiveConnection = cnt 'Set the command connection string
cmd.CommandText = "spFcRptBom02" 'Define Stored Procedure to run

'set parameters to be executed
myVariable = 1 'myForm.myControl.Value
Set prm = cmd.CreateParameter("Product_code", adInteger, adParamInput)

'Append parameters
cmd.Parameters.Append prm
cmd.Parameters("Product_code").Value = myVariable

Set rst = New ADODB.Recordset
rst.CursorType = adOpenStatic
rst.LockType = adLockOptimistic
rst.Open cmd

End Sub



Quay về “Visual Basic for Application (VBA)”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.5 khách