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

29/8/10

Tùy chọn file Data để liên kết đến

Hỏi: Hiện tại mình đã viết xong một chương trình kế toán phục vụ cho công việc của mình. Có một điều mình muốn áp dụng cho nhiều doanh nghiệp, mỗi doanh nghiệp một file .mdb thấy không hay lắm. Bây giờ mình muốn : trong thư mục D:\KeToan có file ChuongTrinh.mdb (Là chương trình chính), mỗi một doanh nghiệp dữ liệu chứa riêng một file mdb khác ví dụ như Data01, Data02, Data03... (Chỉ có Table thôi). Mình muốn các bạn giúp mình thiết kế một form (trước khi giao diện của chương trình hiện lên) form này hiện lên danh sách các Data có trong thư mục cùng với ChuongTrinh.mdb để cho mình chọn Data… khi đó chương trình sẽ tự liên kết đến Data mà mình đã chọn.
Đáp:
Để làm được như bạn, đầu tiên bạn phải làm được những việc sau:
1/ Liệt kê tên những table nào cần liên kết.
2/Lấy về đường dẫn file Data cũa bạn
3/ Gọi 1 đoạn code cho phép bạn xóa table đang link, và link lại tới file mới!

Bước 1: bạn tự viết ra giấy nhé
Bước 2:
Để chọn được file, bạn phải khai báo bộ thư viện của 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 với AccessXP).
[Image: OfficeLib.JPG]

Tạo tạo 1 module và copy 2 đoạn code sau vào:

Code 1 dùng gọi hộp chọn file:
Function getFile(Tit As StringformatName As StringformatType As String)Dim dlgOpen As FileDialog
Set dlgOpen 
Application.FileDialog(msoFileDialogOpen)With dlgOpen
    
.Title Tit
    
.Filters.Clear
    
.Filters.Add formatNameformatType
    
.AllowMultiSelect False
    result 
= .Show
    
If (result <> 0Then
getFile 
Trim(dlgOpen.SelectedItems.Item(1))End IfEnd With

End 
Function 

Code 2: Dùng Relink table lại

Sub LinkTable(As Stringpath As String)' kiêÒm tra table, nêìu coì rôÌi thiÌ xoìa ði
On Error GoTo Err

DoCmd.DeleteObject acTable, T
Err:
'
link lai tablelink moi
DoCmd
.TransferDatabase acLink"Microsoft Access"pathacTableTT
End Sub 

Xong phần chuẩn bị code, giờ bạn tạo 1 Form, trên form vẽ 1 textbox tên là txtPath, 1 nút nhấn tên là cmdOpen, 1 nút nhấn tên là cmdreLink

Sự kiệnc click của cmdOpen nhập như sau:

Private Sub cmdOpen_Click()txtPath.Value getFile("Select Data File""data file""*.mdb")End Sub 

Sự kiện click của cmdOpen, nhập vào như sau:

Private Sub cmdreLink_Click()LinkTable "tblKhachhang"txtPath
LinkTable 
"tblTiendien"txtPath
LinkTable 
"tblTienNuoc"txtPath
  'Sửa tên các table tương ứng thành của bạn
msgbox 
" Đã nhập thành công dữ liệu  file " txtpath
End Sub 
[Image: chonfiledata.png]

Demo Download:

Để thảo luận thêm về chủ đề này, mời bạn vào : http://thuthuataccess.com/forum/thread-154-post-222.html

Không có nhận xét nào:

Đăng nhận xét

» 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