Tìm thủ thuật nhanh hơn với chức năng tìm trong Blog

12/7/09

Import Dữ Liệu Từ Excel Vào Access

Để nhập mới nội dung một table (trong Access) từ một tập tin Excel, ta có thể dùng một trong những cách sau đây:


1. Chọn File \ Get External Data \ Import từ trình đơn Access. Trên hộp thoại Import, chọn mục Microsoft Excel từ danh sách Files of type, rồi chọn tập tin Excel muốn đưa dữ liệu vào Access và bấm OK. Sau đó, theo từng bước hướng dẫn của Access. Tuy nhiên, dữ liệu luôn luôn được đưa vào một table mới, chứ không đưa vào table có sẵn cấu trúc được.
2. Tạo một macro, rồi trên form vẽ một nút lệnh để chạy macro này. Tuy nhiên, các thông số như TableName, FileName cần phải được gõ sẵn, hoặc phải bổ sung thêm một số “kỹ xảo” nữa rất mất công.
3. Cách khác hay hơn: dùng đối tượng DoCmd, một hình thức sử dụng macro của Access trong VBA. Ví dụ: Tạo form như hình 1, gồm có một textbox (đặt tên txtTapTinExcel), một nút lệnh (có dấu 3 chấm, đặt tên cmdTimTapTin), một nút lệnh (để đọc dữ liệu từ tập tin Excel có tên chứa trong ô txtTapTinExcel, đặt tên cmdDocDuLieuTuExcel) và một ActiveX Control có tên dlgTimTapTin. ActiveX Control này được tạo bằng cách bấm nút More Controls (nút cuối cùng) trên ToolBox, rồi chọn mục Microsoft Common Dialog Control. Lần lượt gõ vào các thủ tục xử lý tình huống OnClick của các nút lệnh cmdDocDuLieuTuExcel và cmdTimTapTin (đoạn mã 1). Bạn lưu ý, thứ tự và tên các cột trong tập tin Excel phải giống như cấu trúc table đã khai báo trong Access.

Đoạn mã 1


Private Sub cmdTimTapTin_Click()
With dlgTimTapTin
.ShowOpen
txtTapTinExcel = .FileName
End With
End Sub

Private Sub cmdDocDuLieuTuExcel_Click()
Dim sTenTable As String
sTenTable = "tbNhanVien" ‘ Vñ duå
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, _
sTenTable, txtTapTinExcel, True
End Sub


Nguồn: echip

13 comments:

  1. Cám ơn bạn vì rất nhiều bài viết hữu ích trong access, mình rất thích đọc blog này của bạn và đã hơn 1 lần giải quyết được các vấn đề rắc rối nảy sinh khi làm chương trình dựa vào những bài viết này.
    Mình có 1 thắc mắc như thế này, trong bài viết này bạn hướng dẫn import dữ liệu từ excel vào accesss, nhưng chỉ import được dữ liệu từ sheet đầu tiên mà thôi, mình muốn import dữ liệu từ sheet bất kỳ thì phải làm thế nào? Rất mong nhận được hồi âm của bạn. Cám ơn bạn rất nhiều.
    Email của minh: ngoctram1978@yahoo.com

    ReplyDelete
  2. Blog chỉ là nơi tổng hợp các thủ thuật mình làm ra, hoặc sưu tầm được!
    Để thảo luận chủ đề Excel, bạn nên vào đây để cùng mọi người thảo luận nhé!

    ReplyDelete
  3. Bạn ơi, giúp mình với. Mình có 1 query q_Data với các field: ID, Code010, Code020, Code030. Và 1 table t_Result(ID, CodeNo, Amount). Mình muốn kết quả tính toán được từ query được gán vô Amount tương ứng theo ID và CodeNo. Mình đã tìm nhiều trên các thủ thuật nhưng không thấy cách giải quyết. Các bạn vui lòng giúp hoặc gửi mail cho mình nhé: tuan_luuvan@yahoo.com. Cám ơn rất nhiều. Tuấn

    ReplyDelete
  4. Bạn dùng Crosstab query lấy source từ query q_Data. Sau đó, append vào Table.

    Để thảo luận thêm, vui lòng vào diễn đàn: Diễn đàn thủ thuật access

    ReplyDelete
  5. Bạn Noname ơi, bạn vui lòng hướng dẫn cụ thể hơn thiết kế crosstab query. Mình đã thử nhưng không biết làm thế nào để cho kết quả theo yêu cầu.
    Nhân tiện bạn cho mình hỏi: mình có 1 report lấy thông số beginning date và ending date từ 1 dialog form. Tuy nhiên khi in report thì bị hiển thị #name? chứ không phải là ngày như khi print preview. Cám ơn rất nhiều

    ReplyDelete
  6. Vào diễn đàn và post file ví dụ mẫu!

    ReplyDelete
  7. khi minh nhap diem vao mot file access, khi nhan enter thi dau nhay chuot lai chuyen sang hang ngang. ban hay chi giup minh lam cach nao de khi nhan enter thi dau nhay chuot di chuyen theo hang doc. cac ban giup minh nhe.cam on rat nhieu. ththduong0905@yahoo.com

    ReplyDelete
  8. Tôi đã làm nhưng bị báo lỗi THERE IS NO OBJECT IN THIS CONTROL, nhờ huynh chỉ cách khắc phục?

    ReplyDelete
  9. Mình thấy việc IMPORT Từ Excel vào Access rất thú vị và đỡ tốn công mình cũng làm như bạn nhiều lần nhưng có lần được lần không .Cuối cùng mình mở TABL bôi đen sau đó mở Execl copy vào chú ý kéo dòng ngang dọc cho đủ với dòng của excel.Sau đó vào mục đặt tên ca tion chỉnh sửa luôn phần mặc định như ngày tháng trong bảng tabl cho phù hợp là xong đặt khóa chính tiêu đề sau đó kiểm tra lại các mục và tiến hành xử lý dữ liệu lọc tìm kiếm theo ý mình.Không mất thời gian nhập liệu và chính xác còn cách của bạn đặt mã cũng được nhưng lâu và mất thời gian đắc biệt với những người tự học thì khó và muốn xử lý dữ liệu của cơ quan xí nghiệp,trường học thường có sẵn ở Excel.

    ReplyDelete
  10. địa chỉ của tôi:plexuanphong@yahoo.com.vn

    ReplyDelete
  11. có cách nào lấy dữ liệu từ 1 file excel gôm nhiều sheet đưa vào bảng tương ứng trong access khong? Có ai giúp minh với

    ReplyDelete
  12. Phần mềm MSchool(Quản lý điểm và xét tốt nghiệp THCS theo TT58 - thông tư áp dụng học kỳ 2 năm học 2011-2012
    Phần mềm MSchool(Quản lý điểm và xét hoàn thành CTTH theo TT32 - thông tư áp dụng học kỳ 2 năm học 2010-2011
    http://www.mediafire.com/myfiles.php

    ReplyDelete

» Hãy để lại tên, email của bạn khi bạn post comment, để mình có thể dễ dàng trả lời comment của bạn khi cần.
» Có thể sử dụng các thẻ < b>,< i>,< a>. Và các icon thông dụng trên YM