E chào bác! E cũng đang gặp trường hợp giống bạn đang thắc mắc, e có làm theo hướng dẫn của bác, thì việc lấy dữ liệu từ File Access vào Excel đã thực hiện được, nhưng có 1 chút vấn đề, đó là bảng dữ liệu bên Access khi e đưa sang Excel thì toàn bộ các bảng đều mất đi phần đầu danh mục trên cùng, mong bác giúp e với, thực sự e ko biết gì về VBA, e chỉ mò mẫm theo hướng dẫn của các bác trên này để tự làm. E chân thành cảm ơn!Nếu Lấy nguyên 1 TableName lên Sheet thì đơn giản lắm ... Bạn có Thể sử dụng ADO Or DAO để lấy lên Sheet ...
Mình xài cả 2 cái như nhau ...trong trường hợp này Mình Viết DAO cho Bạn vì theo mình áp dụng cho Access code nó sẻ đơn giản nhất
1/ Mình viết tặng Bạn Một cái Hàm DAO đơn giản nhất sau này bạn sẻ sử dụng nó cho nhiều trường hợp khác ... vv
2/ Code lấy dữ liệu từ 1 TableName lên từ đó tham khảo mà viết thêm
Mã:Public Function MyDAO(ByVal AccPath As String) Dim Db As Object, Ws As Object Rem Neu Office 2003 - 2007 Use 36 Or 2010 To 2016 Use 120 Set Db = CreateObject("DAO.DBEngine.120") Set Ws = Db.Workspaces(0) Set MyDAO = Ws.OpenDatabase(AccPath) End Function Public Sub GetDataBase() Dim Db As Object Dim Rs As Object Dim AccPath As String AccPath = ThisWorkbook.Path & "\dam2.mdb" Set Db = MyDAO(AccPath) Set Rs = Db.OpenRecordset("Beam Forces") Range("A10").CopyFromRecordset Rs End Sub
Đây là đoạn code e tự chế, bác xem giúp e xem e sai ở đâu ạ?
Public Function MyDAO(ByVal AccPath As String)
Dim Db As Object, Ws As Object
Rem Neu Office 2003 - 2007 Use 36 Or 2010 To 2016 Use 120
Set Db = CreateObject("DAO.DBEngine.36")
Set Ws = Db.Workspaces(0)
Set MyDAO = Ws.OpenDatabase(AccPath)
End Function
Public Sub GetDataBase()
Dim Db As Object
Dim Rs As Object
Dim Rp As Object
Dim Rq As Object
Dim AccPath As String
AccPath = Application.GetOpenFilename("TEXT FILES(*.mdb),*.mdb")
Set Db = MyDAO(AccPath)
Set Rs = Db.OpenRecordset("Frame Sections")
Sheets("Frame Sections").Select
Columns("A:V").Select
Selection.Delete
Range("A1").Select
Range("A1").CopyFromRecordset Rs
Set Rp = Db.OpenRecordset("Frame Assignments - Summary")
Sheets("Frame Assignments- Summary").Select
Columns("A:V").Select
Selection.Delete
Range("A1").Select
Range("A1").CopyFromRecordset Rp
Set Rq = Db.OpenRecordset("Column Forces")
Sheets("Column Forces").Select
Columns("A:V").Select
Selection.Delete
Range("A1").Select
Range("A1").CopyFromRecordset Rq
Sheets("ThepCot").Select
Range("A1").Select
End Sub
E có đính kèm ảnh, phần tiêu đề trên cùng mất hết!
Lưu ý là khi e dùng chức năng import external data của excel vào thì phần tiêu đề dòng trên cùng còn nguyên chứ ko bị mất!
File đính kèm
Lần chỉnh sửa cuối: