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

13/3/10

Tùy biến chọn file Excel để Import vào Acces

Chú ý, để sử dụng được các đối tượng có sẵn của Office, bạn phải khai báo sữ dụng thư viện Office bằng cách vào cửa sổ VBA, Menu Tool--> references, chọn Microsoft Office 11.0 library. (chọn 10.0 đối với AccessXP)


Và bây giờ bắt đầu:

Tạo 1 form tên là frmTest
Vẽ 1 Textbox tên là txtPath.
Vẽ 1 nút nhấn là cmdSelectfile
Vẽ 1 textBox đặt là txtRange để bạn nhập tên sheet muốn import vào
Vẽ 1 Textbox đặt tên là txtTable để bạn nhập tên Table muốn lưu
Vẽ 1 nút nhấn có tên cmdImport
Tạo 1 module copy đoạn code sau vào:

Function getFile(Tit As String, formatName As String, formatType As String)
Dim dlgOpen As FileDialog
Set dlgOpen = Application.FileDialog(msoFileDialogOpen)
With dlgOpen
.Title = Tit
.Filters.Clear
.Filters.Add formatName, formatType
.AllowMultiSelect = False
result = .Show
If (result <> 0) Then
getFile = Trim(dlgOpen.SelectedItems.Item(1))
End If
End With

End Function

Và lưu thành tên Module 1
Trong event Onclick của nút cmdSelectfile, ta nhập như sau:

Private Sub cmdSelectfile_Click()
Me![txtPath] = getFile("c:\", "Select the Excel File", "*.xls")
End Sub

Trong event Click của nút cmdImport, ta nhập như sau:
Private Sub cmdImport_Click()

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, txtTenTable, txtPath, True, txtRange
MsgBox "import thanh cong"
End Sub

Giờ sử dụng: đầu tiên ta click vào nút cmdSelectfile để chọn file Excel muốn import
Nhập tên Sheet muốn import vào txtRange (ví dụ: Sheet1:A1:H300)
Nhập tên table muốn lưu. (Ví dụ: Table1)
Và nhấn Nút Import
Rồi hưởng thành quả

DownloadDemo

____________________________________________________________________________________
Thảo luận thêm: http://thuthuataccess.co.cc/forum

3 nhận xét:

  1. Nặc danh01:14 16/3/10

    Trong chương trình của Noname: txtTenSheet ---> tên Table trong file Access.
    Chỉ lựa chọn được File Excel, không lựa chọn được Sheet.
    Chương trình của Noname chọn Sheet đầu tiên của File Excel và nhập vào table có tên là txtTenSheet.

    Trả lờiXóa
  2. Đã chỉnh lại chút ích! Cảm ơn Haquocquan đã phát hiện lỗi giúp!

    Trả lờiXóa
  3. Nặc danh16:59 6/3/12

    Chào anh,

    em bị báo lỗi thế này ở dòng này : Dim dlgOpen As FileDialog

    Nội dung thông báo là User-defined type not defined

    Xử lý sao giờ anh?

    Trả lờiXóa

» 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