Tôi đang cố gắng chạy macro Excel để truy vấn một số dữ liệu từ cơ sở dữ liệu ODBC của tôi. Chi tiết cơ sở dữ liệu của tôi như sau:
DSN : sgdv
UID : l8qc1
Mật khẩu : l8qc1
máy chủ :sgdv
Tôi đang cố gắng truy vấn dữ liệu từ cơ sở dữ liệu nhưng VBA hiển thị lỗi như dưới đây cho dòng Connection.Open "DSN=sgdv"
.
Lỗi thời gian chạy -2147217843 (80040e4d) Lỗi tự động hóa
Tôi không thể xác định lỗi. Hãy giúp tôi. Dưới đây là mã của tôi
Sub ReadDB()
Dim mainWorkBook As Workbook
Dim intRowCounter
Set mainWorkBook = ActiveWorkbook
intRowCounter = 2
mainWorkBook.Sheets("Sheet2").Range("A2:Z100").Clear
Set Connection = CreateObject("ADODB.Connection")
Connection.Open "DSN=sgdv"
strQuery = "SELECT * FROM DEDICT01 where DEDICT01.SER_SN='Z1E80R4C'"
Set resultSet = Connection.Execute(strQuery)
Do While Not resultSet.EOF
mainWorkBook.Sheets("Sheet2").Range("A" & intRowCounter).Value = resultSet.Fields("DEDICT01.CUST_PARTS_NO").Value
resultSet.movenext
Loop
resultSet.Close
End Sub
Tôi đã sửa đổi chương trình và mã hóa mới của tôi là
Sub ReadDB()
Dim mainWorkBook As Workbook
Dim intRowCounter
Set mainWorkBook = ActiveWorkbook
intRowCounter = 2
mainWorkBook.Sheets("Sheet2").Range("A2:Z100").Clear
Set Connection = CreateObject("ADODB.Connection")
Connection.ConnectionString = "DSN=sgdv;UID=l8qc1;PWD=l8qc1;"
Connection.Open
strQuery = "SELECT * FROM DEDICT01 where DEDICT01.SER_SN='Z1E80R4C'"
Set resultSet = Connection.Execute(strQuery)
Do While Not resultSet.EOF
mainWorkBook.Sheets("Sheet2").Range("A" & intRowCounter).Value = resultSet.Fields("DEDICT01.CUST_PARTS_NO").Value
resultSet.movenext
Loop
resultSet.Close
End Sub
Lỗi trước đây của tôi đã biến mất nhưng bây giờ tôi đang gặp lỗi mới ở dòng
mainWorkBook.Sheets("Sheet2").Range("A" & intRowCounter).Value = resultSet.Fields("DEDICT01.CUST_PARTS_NO").Value
Lỗi là
Thời gian chạy lỗi '3265':
Lỗi do ứng dụng xác định hoặc xác định đối tượng
Connection.Open "DSN=sgdv"
được tô sáng là màu vàng. Khi tôi nhấn F8 ở dòng này sau khi được tô sáng, mã lỗi sẽ hiển thị.