Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hàm] Import Table từ file Access này sang một file Access khác
#1
Để Import một table từ file Access này qua một file Access khác ta có nhiều cách thực hiện
1/ Dùng File/Get External Data/Import rồi chọn file ===> chọn table ===> OK
2/ Dùng Macro với Action là TransferDatabase
3/ Dùng câu lệnh Docmd.TransferDatabase acImport
Đó là những cách cơ bản nhất
Hôm nay giới thiệu với các bạn cách dùng hàm VBA để Import một table từ một Database Nguồn(DBNguon) sang một Database Đích(DBDich)
Cách thực hiện như sau
1/ Tạo một table trong DBDich có cấu trúc giống hệt như table trong DBNguon
2/ Trong cửa sổ VBA, vào Tools/Reference chọn
- Microsoft DAO 3.6 Object Libary
- Microsoft Ofice xx Library (xx tùy vào phiên bản Office trên máy của bạn)
3/ Trong Modul của DBDich, viết hai hàm như sau
3.1/ Hàm GetFile dùng để duyệt đến DBNguon
3.2/ Hàm ImportTable dùng để Import table từ DBNguon sang DBDich
4/ Tạo một form có tên là frmImportTable. Trên form bố trí 3 textbox gồm 1 textbox txtTenFile để chứa đường dẫn của DBNguon, 2 texbox txtTableNguon và txtTableDich để ghi tên Table cần Import và 2 Command Button cmdTimFile để mở Dialog chọn file DBNguon, cmdImport để hực hiện việc Import Table đã chọn
Các hàm viết trong Modul

Mã PHP:
Option Compare Database
Option Explicit

Function ImportTable(strNguon As StringstrTabNguon As StringstrTabDich As String)
    
Dim DBNguon As Database
    Dim DBDich 
As Database
    Dim rsNguon 
As Recordset
    Dim rsDich 
As Recordset
    Set DBNguon 
DBEngine.Workspaces(0).OpenDatabase(strNguon)
    
Set DBDich CurrentDb
    Set rsNguon 
DBNguon.OpenRecordset(strTabNguon)
    
Set rsDich DBDich.OpenRecordset(strTabDich)
    
Dim i As Integer
    
If rsNguon.RecordCount 0 Then
        rsNguon
.MoveFirst
        
Do Until rsNguon.EOF
            rsDich
.AddNew
            
For 0 To rsNguon.Fields.Count 1
               rsDich
.Fields(i) = rsNguon.Fields(i)
            
Next
            rsDich
.Update
            rsNguon
.MoveNext
        Loop
    End 
If
    
rsNguon.ClosersDich.CloseSet DBNguon NothingSet DBDich Nothing
End 
Function
Function 
GetFile(Tit As StringformatName As StringformatType As String)
    
Dim dlgOpen As FileDialog
    Dim result
    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 If
    
End With
End 
Function 

Các sự kiện Click của 2 Command Button trên form

Mã PHP:
Option Compare Database
Option Explicit

Private Sub cmdTim_Click()
    
Me.txtTenFile GetFile("C:\", "Select File", "*.mdb,*.mde")
End Sub

Private Sub cmdImport_Click()
    Call ImportTable(Me.txtTenFile, Me.txtTableNguon, txtTableDich)
End Sub 

Chúc các bạn vui
Thân mến
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn ttm20062008 , Noname , Minh Tiên
#2
Nếu file DBNguon.mdb có password = "abc123" thì mình phải làm sao mới copy được hả bác? Sẵn Bác cho hỏi là mình muốn copy một số mẫu tin từ file tblnguon của DBNguon (có password) sang file tblDich của DBDich (có password) thì phải làm như thế nào? nhờ bác chỉ giùm! Thank bác!
Chữ ký của ndthanh29 Xin chào, mình là ndthanh29, Tham gia http://thuthuataccess.com/forum từ ngày 08-10 -12.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Nhập đường dẫn 1 file ảnh vào chương trình để lưu! Noname 29 11,194 08-09-16, 08:24 PM
Bài mới nhất: maidinhdan
  [Thủ Thuật] Demo Liệt kê số lượng User đang mở table nào maidinhdan 9 1,315 09-06-16, 09:01 AM
Bài mới nhất: nguyenhungcuong
  Lấy về số seri CPU, ổ cứng MainBoard trong Access Noname 33 12,296 08-06-16, 11:23 PM
Bài mới nhất: maidinhdan
  [Thủ Thuật] Ẩn record trong table theo ngày tháng tvn_hut 6 490 24-04-16, 01:00 AM
Bài mới nhất: tvn_hut
  Thuộc tính Startup MS Access toàn tập với VBA Noname 2 2,737 18-04-16, 04:50 PM
Bài mới nhất: ongke0711

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ