Đưa bảng excel vào Access

Liên hệ QC

minhhungnc

Thành viên mới
Tham gia
26/6/08
Bài viết
6
Được thích
1
tôi có một bảng tính excel gồm các cột: TT, họ tên , năm sinh, địa chỉ. Tôi muốn lấy dữ liệu bảng tính này đưa vào một Table " Dulieu " của Access có tên các cột tương ứng như của Excel. Nhưng tôi không muốn thực hiện bằng cách vào File - import... Tôi muốn tạo một nút lệnh " Nhap" trên Form, khi nhấp nút "Nhap" dữ liệu sẽ được kết nối vào.
Xin quý cao thủ giúp đỡ ! Cảm ơn!
 
tôi có một bảng tính excel gồm các cột: TT, họ tên , năm sinh, địa chỉ. Tôi muốn lấy dữ liệu bảng tính này đưa vào một Table " Dulieu " của Access có tên các cột tương ứng như của Excel. Nhưng tôi không muốn thực hiện bằng cách vào File - import... Tôi muốn tạo một nút lệnh " Nhap" trên Form, khi nhấp nút "Nhap" dữ liệu sẽ được kết nối vào.
Xin quý cao thủ giúp đỡ ! Cảm ơn!

Bạn Search bài của anh Lê Văn Duyệt hoặc theo link này nhé. Trên diễn đàn chúng ta nói rất nhiều về vấn đề này. Sử dụng ADO.

http://www.giaiphapexcel.com/forum/showthread.php?t=63
http://www.giaiphapexcel.com/forum/showthread.php?t=1155
 
Link của Cadafi là lấy dữ liệu từ Access vào Excel.
Đây mới là cách lấy từ Excel vào Access:
1. Tạo 1 Macro như hình minh họa và đặt tên giả sử “Import”:
- Action là TransferSpreadsheet
- Transfer Type là Import hoặc Link theo ý muốn
- SpreadSheet Type là Excel 8-10
- Table Name là tên table do mình muốn đặt trong Access
- File name là đường dẫn đầy đủ tới file Excel
- Has Field names là Yes
- Range:
. là tên vùng dữ liệu nếu có đặt tên, thí dụ DanhMuc
. là vùng dữ liệu thí dụ A1:G100 nếu file chỉ có 1 sheet, hoặc ghi rõ sheet2!A1:G100,
. hoặc để trống nếu file chỉ có 1 sheet và lấy hết cả sheet.

Muốn lấy nhiều bảng thì làm nhiều dòng action.

Import-Macro.gif


2. tạo 1 button, Code của nó là:
PHP:
Private Sub Command1_Click
Docmd.RunMacro "Import"
End Sub
 
tôi có một bảng tính excel gồm các cột: TT, họ tên , năm sinh, địa chỉ. Tôi muốn lấy dữ liệu bảng tính này đưa vào một Table " Dulieu " của Access có tên các cột tương ứng như của Excel. Nhưng tôi không muốn thực hiện bằng cách vào File - import... Tôi muốn tạo một nút lệnh " Nhap" trên Form, khi nhấp nút "Nhap" dữ liệu sẽ được kết nối vào.
Xin quý cao thủ giúp đỡ ! Cảm ơn!

Xin góp vui một chút
1/ Trong Access, bạn tạo một Table có cấu trúc giống như các trường trong Excel và đặt tên cho nó, ví dụ : NhanVien
2/ Tạo một form có một Command Buton tên là CoppyEx với mã lệnh là :
PHP:
Private Sub CopyEx_Click()
    Call CoppyDL
End Sub

Và mã lệnh trong form là
PHP:
Sub CoppyDL()
    TenFile = "C:\DanhSach.xls"
    TenTable = "NhanVien"
    Call DeleteTab("NhanVien")
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, TenTable, TenFile, True
    MsgBox "Da Import xong du lieu", , "Thong Bao"
End Sub
 
Sub DeleteTab(TabName)
    Dim tblTab As Recordset
    Set tblTab = CurrentDb.OpenRecordset(TabName, dbOpenTable)
    If tblTab.RecordCount > 0 Then
        tblTab.MoveFirst
        Do Until tblTab.EOF
            tblTab.Delete
            tblTab.MoveNext
        Loop
    End If
End Sub

Trong đó "C:/Danhsach.xls" là đường dẫn tên file Excel cần lấy dữ liệu. Bạn có thể thay đổi cho thích hợp
Và khi nhấn nút Command thì Access làm 2 việc
1/ Xóa trống dữ liệu của Table NhanVien
2/ Cập nhật dữ liêu mới từ file Excel Danhsach.xls vào File Acceess của bạn
Thân
 
Thật tuyệt vời! Cám ơn các quý vị đã giúp đỡ!
 
Rất đơn giản, trong Access ở Objects Tables bạn bấm phải chuột chọn Link Tables... sau đó chọn file excel cần nạp vào... file này sẽ chở thành một bản của Access. Sau đó bạn làm mọi việc như Access
 
Các anh chị có cách nào mà chỉ thao tác trên Excel, dùng Macro trên Excel, để đưa dữ liệu vào file Access không? chỉ dùm em với.
 
Sao bạn không dùng chức năng link table. Như vậy bạn không cần ấn nút gì cả, mọi thay đổi của sheet trong Ex cũng tự động cập nhật trong bảng của Acc
 
Sao bạn không dùng chức năng link table. Như vậy bạn không cần ấn nút gì cả, mọi thay đổi của sheet trong Ex cũng tự động cập nhật trong bảng của Acc
Dĩ nhiên cách này không linh động được.

Lê Văn Duyệt
 
Dĩ nhiên cách này không linh động được.

Lê Văn Duyệt
Anh Duyệt ơi, biết anh là thầy trong lĩnh vực này nhưng tôi vẫn không hiểu anh nói là không linh động được là làm sao? Tôi cũng đã làm để in Hợp đồng lao động cho CN. Khi hiệu chỉnh trong Access hay trong Excel thì bảng link tương ứng cũng cập nhật, đâu có phải refresh lại số liệu.
 
Anh Duyệt ơi, biết anh là thầy trong lĩnh vực này nhưng tôi vẫn không hiểu anh nói là không linh động được là làm sao? Tôi cũng đã làm để in Hợp đồng lao động cho CN. Khi hiệu chỉnh trong Access hay trong Excel thì bảng link tương ứng cũng cập nhật, đâu có phải refresh lại số liệu.

Bạn lấy ví dụ thử delete sheet bên excel và qua access xem thử! Lúc này việc Link dĩ nhiên là không linh động? Đây chỉ là một ví dụ!
 
Import excel sang table của access xuất hiện "Paste Error"

Em đang thiết kế một chương trình thu tiền học sinh. Ý định là viết thu tiền bảo hiểm học sinh, có 2 cách thu là 6 tháng hoặc 12 tháng.

Em chỉ mới bắt đầu vào thôi, nhưng khi Import vào thì hiện nhiều bảng báo và tự xuất hiện table có tên là Past Error. Em cũng không biết bị lỗi phát sinh từ đâu. Vậy quý anh chị em nào phát hiện ra lỗi thì sửa giúp em và chỉ cho em biết với. Chân thành cảm ơn
 

File đính kèm

  • Thu nghiem chuong trinh thu tien.rar
    24.2 KB · Đọc: 26
Em đang thiết kế một chương trình thu tiền học sinh. Ý định là viết thu tiền bảo hiểm học sinh, có 2 cách thu là 6 tháng hoặc 12 tháng.

Em chỉ mới bắt đầu vào thôi, nhưng khi Import vào thì hiện nhiều bảng báo và tự xuất hiện table có tên là Past Error. Em cũng không biết bị lỗi phát sinh từ đâu. Vậy quý anh chị em nào phát hiện ra lỗi thì sửa giúp em và chỉ cho em biết với. Chân thành cảm ơn
Vấn đề là bạn copy và paste như thế nào mới gây lỗi.

[video=youtube;VZv8KEvgTQo]http://www.youtube.com/watch?v=VZv8KEvgTQo&feature=youtu.be[/video]
 
Cảm ơn bạn đã trả lời, nhưng ở đây mình Import bằng mã VBA, trong nút lệnh Import trên form, Hông phải copy và paste. Nhưng giờ mình đã hiểu lý do rồi, nguyên nhân là không trùng khớp kiểu dữ liệu ở ô mã học sinh.

Một lần nữa cảm ơn bạn đã giúp đỡ.
 
Web KT
Back
Top Bottom