Thắc mắc về kết nối excel và access (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

conghoangxd037

Thành viên chính thức
Tham gia
16/1/13
Bài viết
54
Được thích
2
Em thấy trên diễn đàn có nhiều bài về kết nối excel vào access bằng kĩ thuật ADO nhưng chưa có bài về kĩ thuật DAO cả. Em chỉ biết về DAO, và em mới thực hiện đưọc lấy dữ liệu từ access thông qua excel( bằng code vba trong excel) và ngược lại muốn đưa dữ liệu từ excel vào access thì không có cách nào anh chị chỉ em với.
 
Em thấy trên diễn đàn có nhiều bài về kết nối excel vào access bằng kĩ thuật ADO nhưng chưa có bài về kĩ thuật DAO cả. Em chỉ biết về DAO, và em mới thực hiện đưọc lấy dữ liệu từ access thông qua excel( bằng code vba trong excel) và ngược lại muốn đưa dữ liệu từ excel vào access thì không có cách nào anh chị chỉ em với.
Làm cho bạn 1 ví dụ về DAO:

Mã:
Sub ToAccess_DAO()
    Dim Dbs  As Object, rs As Object, db As Object, r as Long
    Set Dbs = CreateObject("DAO.DBEngine.36")
    Set db = Dbs.OpenDatabase(ThisWorkbook.Path & "\DataBase.mdb")
    Set rs = db.OpenRecordset("tblData")
    r = 2
    Do Until r = Range("A65000").End(xlUp).Row
        With rs
            .AddNew
            .Fields("Ma") = Range("A" & r).Value
            .Fields("TenNV") = Range("B" & r).Value
            .Fields("SoLuong") = Range("C" & r).Value
            .Update
        End With
        r = r + 1
    Loop
    Set Dbs = Nothing
    rs.Close: Set rs = Nothing
    db.Close: Set db = Nothing
    
End Sub
 

File đính kèm

Có qua nhiều tài liệu qua Google, bạn phải tìm đã chứ.

Mình cho bạn 1 ví dụ và từ đó bạn phát triển với yêu cầu của bạn không còn khó lắm. Bạn tham khảo nha. Giả sử có file Access có tên Vi Du.mdb có bảng DBCS. Giờ mình dùng DAO để mở nó ra và liệt kê tên cột của nó nha (Còn bạn muốn làm gì thì cứ làm)

1/Một điều quan trọng là trong trình soạn thảo VBA bạn phải vào Tools--->Reference---> Chọn vào dòng Microsoft DAO 3.6 Object Library

2/ Đây là code ví dụ
[GPECODE=vb] Sub Vidu_DAO()
Dim Db As DAO.Database
Dim Rec As DAO.Recordset, i, tb
Dim MyFile As String
MyFile = ThisWorkbook.Path & "\Vi du.mdb"
Set Db = OpenDatabase(MyFile)
Set Rec = Db.OpenRecordset("DBCS")
For i = 0 To Rec.Fields.Count - 1
tb = tb & Chr(10) & Rec.Fields(i).Name
Next
MsgBox tb
Rec.Close
Db.Close
Set Rec = Nothing
Set Db = Nothing
End Sub
[/GPECODE]

Bạn tải ví dụ mình gửi về Test nha
 

File đính kèm

Có qua nhiều tài liệu qua Google, bạn phải tìm đã chứ.

Mình cho bạn 1 ví dụ và từ đó bạn phát triển với yêu cầu của bạn không còn khó lắm. Bạn tham khảo nha. Giả sử có file Access có tên Vi Du.mdb có bảng DBCS. Giờ mình dùng DAO để mở nó ra và liệt kê tên cột của nó nha (Còn bạn muốn làm gì thì cứ làm)

1/Một điều quan trọng là trong trình soạn thảo VBA bạn phải vào Tools--->Reference---> Chọn vào dòng Microsoft DAO 3.6 Object Library

2/ Đây là code ví dụ
[GPECODE=vb] Sub Vidu_DAO()
Dim Db As DAO.Database
Dim Rec As DAO.Recordset, i, tb
Dim MyFile As String
MyFile = ThisWorkbook.Path & "\Vi du.mdb"
Set Db = OpenDatabase(MyFile)
Set Rec = Db.OpenRecordset("DBCS")
For i = 0 To Rec.Fields.Count - 1
tb = tb & Chr(10) & Rec.Fields(i).Name
Next
MsgBox tb
Rec.Close
Db.Close
Set Rec = Nothing
Set Db = Nothing
End Sub
[/GPECODE]

Bạn tải ví dụ mình gửi về Test nha

Khai báo như em làm ví dụ trên bài số 2 khỏi cần tham chiếu bằng tay đến thư viện của nó anh à.
 
Web KT

Bài viết mới nhất

Back
Top Bottom