2009-12-04 59 views
16

Tôi có hai bảng trong cơ sở dữ liệu truy cập của mình mà tôi muốn có thể xuất sang excel.Xuất bảng MS Access thông qua VBA sang bảng tính excel trong cùng một thư mục

Tôi có thể làm điều đó bằng cách mở bảng và sau đó thực hiện Tệp-> Xuất ... và sau đó chọn định dạng và nhập tên tệp.

Tuy nhiên, theo cách này, người dùng thực sự phải nhập tên để có chỗ đặt sai tên tệp hoặc lưu nó dưới định dạng sai hoặc sai vị trí. Ngoài ra, hai bảng phải được xuất sang hai sổ làm việc riêng biệt.

Những gì tôi muốn để có thể làm là tạo ra một nút trên một hình thức tự động xuất khẩu một bảng với một bảng tính và người kia đến một bảng tính, cả trong cùng excel workbook.

Nếu đặt chúng vào cùng một sổ làm việc là không thể, thì tốt. Tôi chỉ muốn chúng tự động được xuất vào cùng một thư mục mà cơ sở dữ liệu truy cập của tôi được lưu vào.

Nếu bạn biết cách thực hiện, một đặc quyền bổ sung có thể là tùy chỉnh tên để bao gồm ngày tháng. Bằng cách đó thư mục sẽ có xuất khẩu lịch sử là tốt. Lời khuyên nào?

Trả lời

32

Bạn có thể sử dụng VBA để xuất bảng cơ sở dữ liệu Access dưới dạng Bảng tính trong sổ làm việc Excel.

Để lấy đường dẫn của cơ sở dữ liệu Access, hãy sử dụng thuộc tính CurrentProject.Path.

Để đặt tên tệp sổ làm việc Excel với ngày hiện tại, hãy sử dụng phương thức Format(Date, "yyyyMMdd").

Cuối cùng, để xuất bảng dưới dạng Bảng tính, hãy sử dụng phương pháp DoCmd.TransferSpreadsheet.

Ví dụ:

Dim outputFileName As String 
outputFileName = CurrentProject.Path & "\Export_" & Format(Date, "yyyyMMdd") & ".xls" 
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Table1", outputFileName , True 
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Table2", outputFileName , True 

Sản lượng này sẽ cả Table1 và Table2 vào Workbook tương tự.

HTH

+0

Điều đó làm việc tuyệt vời, nhưng làm cách nào để buộc nó xuất sang CurrentProject.Path? – Matt

+3

outputFileName = CurrentProject.Path & "\ Export_" & Format (Date, "YYYYDDmm") & ".xls" – Fionnuala

+1

Trong mã được cung cấp, bạn buộc nó lưu tệp vào đường dẫn hiện tại bằng cách bao gồm đường dẫn khi bạn gán giá trị cho biến outputFileName. Tức là, hãy gắn CurrentProject.Path giữa dấu = và dấu "và đặt dấu \ sau dấu ngoặc kép (CurrentProject.Path bỏ qua dấu gạch chéo)." –

7

Lawrence đã cho bạn câu trả lời hay. Nhưng nếu bạn muốn kiểm soát nhiều hơn những gì được xuất sang vị trí trong Excel, hãy xem Modules: Sample Excel Automation - ô theo ô chậm và Modules: Transferring Records to Excel with Automation Bạn có thể làm những việc như xuất recordset bắt đầu ở hàng 2 và chèn văn bản tùy chỉnh vào hàng 1. Cũng như bất kỳ yêu cầu định dạng tùy chỉnh.

-4

Đối với những người tìm thấy điều này thông qua công cụ tìm kiếm, bạn không cần VBA. Bạn chỉ có thể:

1.) select the query or table with your mouse 
2.) click export data from the ribbon 
3.) click excel from the export subgroup 
4.) follow the wizard to select the output file and location. 
+0

Đây không phải là giải pháp hợp lệ nếu bạn đang phân phối như một hệ thống báo cáo/ứng dụng người dùng cuối – MattE

Các vấn đề liên quan