Pham Dinh Ca
Thành viên mới

- Tham gia
- 22/10/17
- Bài viết
- 46
- Được thích
- 1
- Giới tính
- Nam
- Nghề nghiệp
- Thất Nghiệp
thì copy rồi dán nó ra excel, hoặc xài links table thì nó sẽ cập nhật khi file access có cập nhật dữ liệu mới.Chào mọi người!
Mong mọi người giúp đỡ như tiêu đề ạ!
Mình có rất nhiều file accdb, và mình mong là có thể gộp dữ liệu trong các file accdb đó vào 1 file excel.
Mình xin đính kèm file accdb như dưới ạ!
Xin cảm ơn mọi người ạ!!!
Cảm ơn bạn đã chỉ dẫn!thì copy rồi dán nó ra excel, hoặc xài links table thì nó sẽ cập nhật khi file access có cập nhật dữ liệu mới.
Vậy dùng code ADO lấy dữ liệu từ Access vào Excel.Cảm ơn bạn đã chỉ dẫn!
Nhưng nếu copy xong dán vào excel thì lâu quá, vì mình có đến cả 1000 files như vậy.
Mình mong đợi cách làm nhanh chóng hơn ạ!
Dùng thử code này xem có được không? Nhớ bật thư viện như hình nhé.Chào mọi người!
Mong mọi người giúp đỡ như tiêu đề ạ!
Mình có rất nhiều file accdb, và mình mong là có thể gộp dữ liệu trong các file accdb đó vào 1 file excel.
Mình xin đính kèm file accdb như dưới ạ!
Xin cảm ơn mọi người ạ!!!
Sub getDataFromAccess()
Dim DBFullName As String
Dim Connect As String, Source As String
Dim Connection As ADODB.Connection
Dim Recordset As ADODB.Recordset
Dim i As Integer
Dim Col As Integer
Cells.Clear
On Error Resume Next
Set Connection = New ADODB.Connection
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True
.Filters.Clear
.Filters.Add "Acces file", "*.accdb"
If .Show = True Then
For i = 1 To .SelectedItems.Count
DBFullName = .SelectedItems(i)
Connect = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & DBFullName & ";"
Connection.Open ConnectionString:=Connect
Set Recordset = New ADODB.Recordset
Source = "SELECT * FROM Data"
With Recordset
.Open Source:=Source, ActiveConnection:=Connection
If i = 1 Then
For Col = 0 To Recordset.Fields.Count - 1
Range("A1").Offset(0, Col).Value = Recordset.Fields(Col).Name
Next
End If
Range("A" & Sheet1.UsedRange.Rows.Count).Offset(1, 0).CopyFromRecordset Recordset
End With
Set Recordset = Nothing
Connection.Close
Next i
End If
End With
Set Connection = Nothing
ActiveSheet.Columns.AutoFit
End Sub
Mình không hỏi chơi bạn nhé!Dóc tổ.
Cả ngàn files Access đem đổ vào một file Excel thì mở sao lên?
Đa tạ bạn nhé!Dùng thử code này xem có được không? Nhớ bật thư viện như hình nhé.
View attachment 256051
Mã:Sub getDataFromAccess() Dim DBFullName As String Dim Connect As String, Source As String Dim Connection As ADODB.Connection Dim Recordset As ADODB.Recordset Dim i As Integer Dim Col As Integer Cells.Clear On Error Resume Next Set Connection = New ADODB.Connection With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = True .Filters.Clear .Filters.Add "Acces file", "*.accdb" If .Show = True Then For i = 1 To .SelectedItems.Count DBFullName = .SelectedItems(i) Connect = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & DBFullName & ";" Connection.Open ConnectionString:=Connect Set Recordset = New ADODB.Recordset Source = "SELECT * FROM Data" With Recordset .Open Source:=Source, ActiveConnection:=Connection If i = 1 Then For Col = 0 To Recordset.Fields.Count - 1 Range("A1").Offset(0, Col).Value = Recordset.Fields(Col).Name Next End If Range("A" & Sheet1.UsedRange.Rows.Count).Offset(1, 0).CopyFromRecordset Recordset End With Set Recordset = Nothing Connection.Close Next i End If End With Set Connection = Nothing ActiveSheet.Columns.AutoFit End Sub
Công ty này làm việc dỏm. Data cần chuyển thường xuyên như vậy thì người ta dùng CSV.Mình không hỏi chơi bạn nhé!
Mình đi làm công ty, Data đc đẻ ra mỗi ngày 1 file của mỗi máy đo giống nhau.
Trong vòng 1 năm cả nghìn file là bình thường nhé.
Và vấn đề của mình là tổng hợp data của cả năm như thế
...
Dỏm thật.Công ty này làm việc dỏm.
Lưu ra SQL rồi tự links vào 1 table trên access, từ đó xử lý file access đó thôi.Dỏm thật.
Nếu dùng Access thì tại sao mỗi ngày, mỗi máy tạo ra 1 file mà không ghi vào chung 1 file? Kết quả mỗi máy cả năm chỉ có 1 file, 5 máy 5 file
Hơn nữa, tại sao không có 1 file chung cho tất cả các máy?
Thiếu giống gì công ty phất lên, nứt vách đổ đố mà sổ sách kế toán như hạch. Nếu đủ khôn ngoan đi đêm với sở thuế thì còn gì nữa để lo.Có nhiều người, nhiều công ty có vẻ làm việc không ra gì vậy mà thu nhập của họ cao lắm, thưởng tết thì càng ngất ngây
Trong khi đó đa số anh em khá giỏi code trên GPE thì lương bèo bọt, có người còn phải ngồi hóng làm miễn phí. Vất vả cả tháng giỏi lắm cũng chưa tới 50 triệu. Bởi vậy giờ mình chẳng dám bình luận ai giỏi ai dở. Quan trọng là thu nhập cuối tháng
là phân tích và xử lý dữ liệu nhé bạn. ^^!Mình quan tâm cái công việc cuối cùng thôi.
Sau khi gộp vào 01 file Excel rồi làm gì nữa á?
Cảm ơn bạn, vấn đề là mình k rành về Access. chính xác hơn chưa từng dùng nó ^^!Lưu ra SQL rồi tự links vào 1 table trên access, từ đó xử lý file access đó thôi.
Nghe bác nói rất sâu sắc. Cảm ơn bác !!!Có nhiều người, nhiều công ty có vẻ làm việc không ra gì vậy mà thu nhập của họ cao lắm, thưởng tết thì càng ngất ngây
Trong khi đó đa số anh em khá giỏi code trên GPE thì lương bèo bọt, có người còn phải ngồi hóng làm miễn phí. Vất vả cả tháng giỏi lắm cũng chưa tới 50 triệu. Bởi vậy giờ mình chẳng dám bình luận ai giỏi ai dở. Quan trọng là thu nhập cuối tháng
Bác rất thông minh bác thử nghĩ tại sao lại như thế đi nhé ^^!Dỏm thật.
Nếu dùng Access thì tại sao mỗi ngày, mỗi máy tạo ra 1 file mà không ghi vào chung 1 file? Kết quả mỗi máy cả năm chỉ có 1 file, 5 máy 5 file
Hơn nữa, tại sao không có 1 file chung cho tất cả các máy?
Tôi không tự nhận là thông minh, tôi chỉ nghĩ được đến mức chỉ nói ra 1 chữ trong bài 9Bác rất thông minh bác thử nghĩ tại sao lại như thế đi nhé ^^!