Lỗi "Run-time error 429" khi chạy file Excel VBA kết nối với CSDL Access

Liên hệ QC

dhpnam

Thành viên mới
Tham gia
28/3/20
Bài viết
8
Được thích
0
Mình có 1 file Excel theo dõi và 1 CSDL Access (2000-2003) đặt trong cùng thư mục. Khi mình run thì gặp lỗi
"Run-time error '429'
Activex component can't create object."

Mình đã thử nhiều cách nhưng không thành công. Mình đang sử dung Office 2010
Nhờ cao nhân hỗ trợ fix lỗi này giúp.
Xin cảmơn
 

File đính kèm

  • Test.rar
    664.9 KB · Đọc: 15
Mình có 1 file Excel theo dõi và 1 CSDL Access (2000-2003) đặt trong cùng thư mục. Khi mình run thì gặp lỗi
"Run-time error '429'
Activex component can't create object."

Mình đã thử nhiều cách nhưng không thành công. Mình đang sử dung Office 2010
Nhờ cao nhân hỗ trợ fix lỗi này giúp.
Xin cảmơn
Bạn Run code nào/ Nút nào mà phát sinh lỗi vậy bạn?
 
Mình có 1 file Excel theo dõi và 1 CSDL Access (2000-2003) đặt trong cùng thư mục. Khi mình run thì gặp lỗi
"Run-time error '429'
Activex component can't create object."

Mình đã thử nhiều cách nhưng không thành công. Mình đang sử dung Office 2010
Nhờ cao nhân hỗ trợ fix lỗi này giúp.
Xin cảmơn

Tôi không nghĩ là dùng đối tượng Workspace được trong Excel, nó chỉ có trong Access. Tương tự cũng như thư viện DAO 3.6 cũng chỉ có trong Access VBA.
Từ Excel bạn chỉ có thể tương tác với Access thông qua thư viện ADO thôi, không dùng phương thức của DAO như bạn đang làm (Dim db As Database).
 
Tôi không nghĩ là dùng đối tượng Workspace được trong Excel, nó chỉ có trong Access. Tương tự cũng như thư viện DAO 3.6 cũng chỉ có trong Access VBA.
Từ Excel bạn chỉ có thể tương tác với Access thông qua thư viện ADO thôi, không dùng phương thức của DAO như bạn đang làm (Dim db As Database).
Mình gửi file sang máy khác thì sử dụng bình thường á bạn.
Sau đó mình cài lại office nhưng vẫn bị lỗi. Không biết có thiếu file .ddl hay .ocx nào không nữa
 
Tôi không nghĩ là dùng đối tượng Workspace được trong Excel, nó chỉ có trong Access. Tương tự cũng như thư viện DAO 3.6 cũng chỉ có trong Access VBA.
Từ Excel bạn chỉ có thể tương tác với Access thông qua thư viện ADO thôi, không dùng phương thức của DAO như bạn đang làm (Dim db As Database).
Tôi chạy file của tác giả bình thường nhé!
 
Office 2016x64
1586697438443.png
1586697391911.png
 
đăng ký lại DAO360 xem Hoặc thử như sau
Mã:
Rem Neu Office 2003 - 2007 Use 36 Or 2010 To 2016 Use 120
Set Db = CreateObject("DAO.DBEngine.120")
 
Lần chỉnh sửa cuối:
Bạn cài lại bản DAO 3.6 này đi, máy tôi đã chạy được file của bạn.
Mình giải nén. Click double để chạy, thấy cài đặt thành công nhưng mở lại file vẫn không chạy được..huhu
Bài đã được tự động gộp:

Bạn cài lại bản DAO 3.6 này đi, máy tôi đã chạy được file của bạn.
file như này là đã cài OK chưa bạndao360.jpg
 
Lần chỉnh sửa cuối:
Mình giải nén. Click double để chạy, thấy cài đặt thành công nhưng mở lại file vẫn không chạy được..huhu
Bài đã được tự động gộp:


file như này là đã cài OK chưa bạn

Tôi thấy có icon ổ khoá ở file DLL, tôi nghĩ bạn không sử dụng được thư viện này rồi. Còn việc mở khoá này thì tôi không rành. Bạn thử vô properties của file DLL này xem mấy mục phân quyền, chọn Everyone xem thử.
 
Mình có 1 file Excel theo dõi và 1 CSDL Access (2000-2003) đặt trong cùng thư mục. Khi mình run thì gặp lỗi
"Run-time error '429'
Activex component can't create object."

Mình đã thử nhiều cách nhưng không thành công. Mình đang sử dung Office 2010
Nhờ cao nhân hỗ trợ fix lỗi này giúp.
Xin cảmơn
Thay vì dùng thủ tục đó, hoặc cài đặt tùm lum, bạn chuyển qua thủ tục này thử xem, lưu ý, tôi chỉ viết cho bạn 1 thủ tục thôi, bạn tùy chỉnh các thủ tục còn lại nhé!
Mã:
Sub LuuBangGia2()
    Dim arrBangGia
    Dim sh As Worksheet
    Dim e As Long, r As Long
    Dim objAdoConn As Object
    Dim strPath As String, strSQL As String, strFields As String, strValues As String
    
    Set objAdoConn = CreateObject("ADODB.Connection")
    
    strPath = ThisWorkbook.Path & "\KhoGiaoDichChungKhoan.mdb"
    objAdoConn.Open "Provider=Microsoft Jet 4.0 OLE DB Provider; Data Source=" & strPath & " ;"
    
    Set sh = Worksheets("01A.Luu Bang Gia Chung Khoan")
    e = sh.Range("A" & Rows.Count).End(xlUp).Row
    arrBangGia = sh.Range("A6:B" & e).Value
    
    strSQL = "DELETE FROM [BangGia]"
    objAdoConn.Execute strSQL
    
    strFields = "(MaCK, GiaDC)"
    
    For r = 1 To UBound(arrBangGia)
        strValues = "('" & arrBangGia(r, 1) & "', '" & arrBangGia(r, 2) & "')"
        strSQL = "INSERT INTO [BangGia] " & strFields & " VALUES " & strValues
        objAdoConn.Execute strSQL
    Next
    
    objAdoConn.Close
    Set objAdoConn = Nothing
    
    MsgBox "XONG!"
End Sub
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom