Xin giúp đỡ về việc import excel file to access table

Liên hệ QC

nothingnes

Thành viên mới
Tham gia
8/12/08
Bài viết
8
Được thích
2
EM mới biết chút xíu về access. trong phòng đề nghị em làm cái tool để import toàn bộ excel file vào table của 1 file access. Cụ thể như thế này

- Tất cả các file exel nằm trên folder : Q:\Reports_DE\131 Categories Excel File\
- Trong tất cả các file excel đều có sheet tên DIC

Mong các anh giúp em về việc viết code trong access.

Trường hợp 1 : import tất cả các file excel vào access
Trường hợp 2 : import tất cả các file excel vào trong 1 table của access.

Xin chân thành cảm ơn
 

File đính kèm

  • 7001 Milk Specialty-Duy.zip
    31.6 KB · Đọc: 110
Sorry, em quên nhờ các anh 1 điều là em làm một cái nút trên form, và viết 1 đoạn code để import, chứ không phải làm bằng tay như thế. Các anh có thể giúp em với nhé
 
Thì cũng thế, bài cuối trong topic đó là tạo 1 macro, bây giờ có macro rồi thì gán macro cho nút bấm trên form.
 
Xin lỗi em dốt quá.
Cụ thể em gửi 2 file cho mấy anh xem nhé.

Trong file access có 1 table tên dictionary & trong form có form1

Em có build 1 đạn code mà em tìm được trên mạng:

Private Sub importE_Click()


Dim strPathFile As String, strFile As String, strPath As String
Dim strTable As String
Dim blnHasFieldNames As Boolean

' Change this next line to True if the first row in EXCEL worksheet
' has field names
blnHasFieldNames = True

' Replace C:\Documents\ with the real path to the folder that
' contains the EXCEL files
strPath = "Q:\Reports_DE\131 Categories Excel File\"

' Replace tablename with the real name of the table into which
' the data are to be imported
strTable = "DICTIONARY"

strFile = Dir(strPath & "*.xls")
Do While Len(strFile) > 0
strPathFile = strPath & strFile
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, strTable, strPathFile, blnHasFieldNames

' Uncomment out the next code step if you want to delete the
' EXCEL file after it's been imported
' Kill strPathFile

strFile = Dir()
Loop




End Sub

Nhưng khi em test import, thì nó báo lỗi tại đoạn :

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, strTable, strPathFile, blnHasFieldNames

Mặt khác, em chỉ muốn import sheet DIC trong file excel thôi chứ các sheet khác em không cần import.

Mong các anh hạ lòng chiếu cố thêm 1 lần nữa nha . Cám ơn nhiều
 

File đính kèm

  • 7001 Milk Specialty-Duy.zip
    31.6 KB · Đọc: 45
  • import_excel.zip
    16.3 KB · Đọc: 73
Table Ac có 40 fields, Sheet Ex chỉ có 38, làm sao Improm?
 
Xin lỗi em dốt quá.
Cụ thể em gửi 2 file cho mấy anh xem nhé.

Trong file access có 1 table tên dictionary & trong form có form1

Mặt khác, em chỉ muốn import sheet DIC trong file excel thôi chứ các sheet khác em không cần import.

Mong các anh hạ lòng chiếu cố thêm 1 lần nữa nha . Cám ơn nhiều
Để thực hiện bài toán này trước tiên bạn tạo 1 form mới có tên là Form1. Trong form mới đó bạn thiết kế như sau:

-Vẽ 1 textbox và đặt tên là txtTapTinExcel để lấy đường dẫn đến file cần import.
-Vẽ 1 CommonDialog vả đặt tên là dlgTimTapTin, để tìm file của bạn.
-Vẽ 1 commandbutton và đặt tên là cmdTimTapTin với Caption là &Browse...
-Vẽ 1 commandbutton nữa và đặt tên là cmdDocDuLieuTuExcel với Caption là &Convert.
*) Vào gờ Macro tạo 2 macro như sau:
-Tên macro Close: Action: Close, Object type chọn form1.
-Tên macro Open: Action: OpenTable, Table name chọn DICTIONARY, View chọn Datasheet, Data mode chọn Read Only (Tùy bạn muốn sửa hay không, nếu không thì chỉ chọn Read Only)
Và copy đoạn code sau vào Code form.
Mã:
Option Compare Database
Private Sub cmdTimTapTin_Click()
With dlgTimTapTin
.ShowOpen
txtTapTinExcel = .FileName
End With
End Sub
Private Sub cmdDocDuLieuTuExcel_Click()
On Error Resume Next
Dim sTenTable As String
sTenTable = "DICTIONARY" 'Tên Table đích
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, _
sTenTable, txtTapTinExcel, True, "dic!"
'"dic!" tên sheet cấn nhập
MsgBox "Finished !!!"
DoCmd.RunMacro ("close")
DoCmd.RunMacro ("open")
 
End Sub
BẠN LƯU Ý LÀ DICTIONARY VÀ SHEET DIC PHẢI CÓ CẤU TRÚC GIỐNG NHAU, GIỐNG NHƯ FILE MÌNH GỬI NHE
Bạn tham khảo file đính kèm nhe.
Hy vọng sẽ giúp được bạn.
Thân
 

File đính kèm

  • import from excel file.zip
    79.1 KB · Đọc: 349
Lần chỉnh sửa cuối:
Code và form của notingnes ổn rồi, chỉ cần sửa câu lệnh lại thêm vô "DIC!" là xong.
Mã:
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, strTable, strPathFile, blnHasFieldNames, "DIC!"
Tuy nhiên phải sửa lại cấu trúc của bảng dữ liệu Access và bảng Excel:
- tên trường phải giống
- loại dữ liệu phải giống
 
Lần chỉnh sửa cuối:
chị ptm0412 ơi!
Trong trường hợp bảng dữ liệu trong table của access khác với trường trong bảng excel bởi dấu cách thì thế nào được ạ?
em đang dùng câu lệnh: DoCmd.TransferSpreadsheet , acImport, acSpreadsheetTypeExcel8, "ImportSAP", File2Import, 0
nhưng toàn bị báo lỗi, nguyên nhân do trong file exel tên của một vài trường có dấu cách, còn trong table của access thì không.
Giờ em không muốn sửa trong cả excel và access thì em phải thay đổi thế nào với số -1 or số 0? hay thay đổi gì trong câu lệnh?
vì không thể mở file excel hay access để bỏ khoảng trống hay thêm khoảng trống được do số lượng trường rất nhiều. mong chị hướng dẫn em cách change nhé!
thanks chị
 
Tiện topic này cho tôi hỏi cũng vấn đề đưa dữ liệu từ Excel sang Acc.
Tôi chạy code trên Excel tạo ra 1 bảng gồm 200 cột (cùng cấu trúc - Text) và 800.000 dòng. Bảng này lưu dưới dạng Array, chưa gán xuống sh.
Vậy làm thế nào để đưa vào Tbl01 gồm 200 fields. Tôi đang làm trên excel.
Xin cám ơn.
 
Lần chỉnh sửa cuối:
File import hay quá. Nhưng mình muốn hỏi các bạn viết cho mình một vd về trên form access mình muốn lấy dữ liệu từ 1 dòng của sheet dự liệu excel vào các textbox trên form nhập liệu của access rồi mình có thể chỉnh sửa thêm mới nhập dữ liệu đó vào thì làm thế nào? Các pro giúp mình với!
 
Chào bạn!
Mình down về và chạy thử ở máy mình. Nhưng nó lại bị lỗi. Lỗi vàng ở dòng .ShowOpen. Lỗi này là gì vậy. Sửa thế nào hả bạn.
 
Mình hỏi thêm 1 chút nữa. Khi mới bắt đầu mở file thì bị báo lỗi. Lỗi này có phải do Acc của mình thiếu gì đó không. Các bạn xem file mình copy lỗi nhé.
 

File đính kèm

  • book1.doc
    40.5 KB · Đọc: 12
e cũng đã làm mà sao nó báo lỗi loi.png
xin các bạn chỉ giúp
 
Cho tôi hỏi làm sao để import dữ liệu từ 1 file có nhiều sheet - Import tất cả các sheet (do dữ liệu nhiều nên khi chuyển sang excel 2003 bị chia thành nhiều sheet).
 
Web KT

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

Back
Top Bottom