Tôi có một dự án về cơ bản mục tiêu là tạo Excel (Báo cáo) bắt đầu Nhấp vào nút trong Access bằng VBA.VBA - Tạo tệp Excel từ Access (QueryTable)
Nội dung của báo cáo này là kết quả của Cơ sở dữ liệu SQL Server được lưu trữ.
dòng lỗi:
With MeuExcel.Worksheets(4)
.QueryTables.Add connection:=rs, Destination:=.Range("A2")
End With
tôi nhận được là:
invalid procedure call or argument (erro '5')
Hoàn Mã (Edited sử dụng lời khuyên Remou Thành viên):
Sub GeraPlanilhaDT()
Dim MeuExcel As New Excel.Application
Dim wb As New Excel.Workbook
Set MeuExcel = CreateObject("Excel.Application")
MeuExcel.Workbooks.Add
MeuExcel.Visible = True
Dim strNomeServidor, strBaseDados, strProvider, strConeccao, strStoredProcedure As String
strNomeServidor = "m98\DES;"
strBaseDados = "SGLD_POC;"
strProvider = "SQLOLEDB.1;"
strStoredProcedure = "SP_ParametrosLeads_DT"
strConeccao = "Provider=" & strProvider & "Integrated Security=SSPI;Persist Security Info=True;Data Source=" & strNomeServidor & "Initial Catalog=" & strBaseDados
Dim cnt As New ADODB.connection
Dim cmd As New ADODB.command
Dim rs As New ADODB.recordset
Dim prm As New ADODB.parameter
cnt.Open strConeccao
cmd.ActiveConnection = cnt
cmd.CommandType = adCmdStoredProc
cmd.CommandText = strStoredProcedure
cmd.CommandTimeout = 0
Set prm = cmd.CreateParameter("DT", adInteger, adParamInput)
cmd.Parameters.Append prm
cmd.Parameters("DT").Value = InputBox("Digite o Código DT", "Código do Distribuidor")
Set rs = cmd.Execute()
Dim nomeWorksheetPrincipal As String
nomeWorksheetPrincipal = "Principal"
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = nomeWorksheetPrincipal
With MeuExcel.Worksheets(4)
.QueryTables.Add connection:=rs, Destination:=.Range("A2")
End With
cnt.Close
Set rs = Nothing
Set cmd = Nothing
Set strNomeServidor = Nothing
Set strBaseDados = Nothing
Set strProvider = Nothing
If (ActiveSheet.UsedRange.Rows.Count > 1) Then
FormataDadosTabela
Else
MsgBox ("Não foi encontrado nenhum Distribuidor com esse DT")
End If
End Sub
Điều kỳ lạ là các mã hoạt động khi chạy trong Excel nhưng không hoạt động trong Access
Okay , giống như bạn, bây giờ tôi có mã hoạt động trong Excel nhưng không hoạt động trong Access. Dường như có sự cố khi thêm bảng truy vấn. Tôi không thể thấy lý do tại sao. Tôi tự hỏi nếu một giải pháp thay thế sẽ phù hợp? Ví dụ, chỉ cần viết các bản ghi vào một trang tính phù hợp? – Fionnuala
FYI: Tôi có Excel Querytables tự động truy cập trong nhiều năm mà không có vấn đề, mặc dù với dữ liệu Access là nguồn. Tuy nhiên, tôi đã không thử nó trong Office 2010. –
@Rachel Có lẽ bạn có thể đăng một số mã Access làm việc? – Fionnuala