-
RE: Xin giúp về code appen từ 2 file access
maidinhdan > 05-10-16, 02:18 PM
(05-10-16, 11:11 AM)Minh Tiên Đã viết: Chào Dân !
Tiên đang Import dữ liệu bằng cách dùng SQL ( theo bài viết của pausteigel thì phải) như sau:
1. Tạo link table từ CSQL đích vào CSDL hiện tại - Nguồn.
2. Dùng code CurrentDb.Execute "INSERT INTO tableDich(Field1, Field2,...) SELECT Field1, Field2, ... FROM tableNguon;"
3. Xóa link table.
Tiên đã test thử với table hơn 200.000 record tốc độ chỉ 10 giây (Theo code của Dân mất 26 giây ).
'- ưu điểm của SQL là:
+ Nhanh;
+ Cấu trúc table nguồn và đích ko cần giống nhau ( Chỉ cần các Field có cùng kiểu dữ liệu ).
- Nhượt:
+ Code hơi dài (Code Link, Xóa Link, SQL)
Dân cùng các Pro test lại thử có đúng ko nhé !
Thân./.
Mình nhất trí 2 tay với đoạn Tiên nói đúng là tốc độ truy xuất của nó chậm, như bài đầu tiên Dân có phân tích là 1 triệu record sẽ mất đến 3 phút.
Mình xin bổ sung thêm 2 cái nhược của code Tiên nói:
1. Khi file nguồn có từ 2 người truy cập cùng 1 thời điểm.
2. Có nhiều file nguồn => Suy ra, máy chủ sẽ chậm. ( Tác giả bài viết này là muốn gom dữ liệu từ các máy con. )
3. Code Tiên chỉ thích hợp cho đối tượng là máy con truy xuất đến máy chủ (Linktable trong trường hợp này không thích hợp: Bởi LinkTable là kiểu kết nối không gián đoạn.)
* Kết:
+ Dân và Tiên làm ứng dụng thì việc đưa code SQL vào VBA là chuyện nhỏ, nhưng người mới bắt đầu thì chuyện đó hơi khó.
+ Để mình viết cho tiên code dùng CurrentDb.Execute ....của tiên nhưng không cần Link table ( cái này mình tính viết cho bạn ấy sợ bạn ấy thấy nhiều dài dòng nên không viết) -
RE: Xin giúp về code appen từ 2 file access
Minh Tiên > 05-10-16, 03:13 PM
Thanks Dân !
Tiên đang tìm: "code Import dùng CurrentDb.Execute .... từ file này sang file khác nhưng không cần Link table".
Dân giúp code nhé !
Cảm ơn nhiều ! -
RE: Xin giúp về code appen từ 2 file access
maidinhdan > 05-10-16, 06:48 PM
(05-10-16, 03:13 PM)Minh Tiên Đã viết: Thanks Dân !
Tiên đang tìm: "code Import dùng CurrentDb.Execute .... từ file này sang file khác nhưng không cần Link table".
Dân giúp code nhé !
Cảm ơn nhiều !
Toàn bộ Hàm
Mã PHP:Public Function Ketnoi1(TenTable As String, Duongdanfile As String)
'Xuat file dich len file nguon
DoCmd.TransferDatabase acImport, "Microsoft Access", Duongdanfile, acTable, TenTable, "tblTam"
' Khoi tao Quey Loc
DoCmd.SetWarnings False
sql = "INSERT INTO " & TenTable & " SELECT * FROM tblTam WHERE tblTam.STT Not In (Select STT from " & TenTable & ");"
DoCmd.RunSQL sql
DoCmd.DeleteObject acTable, "tblTam"
DoCmd.SetWarnings True
End Function
Cách gọi:)Mã PHP:Ketnoi1(" Ten table", "Đường dẫn file Nguồn")
So sánh dựa trên Số thứ tự nhé
Đính kèm Demo, Tiên test dùm về tốc độ của nó.
=> Đã Test: Với Data này
+ 200.000Record : mất 2,5giây
+ 800.000Record : mất 5 giây.
Thực ra còn 2 cách nửa vượt trội hơn nhiều
1. Gồm 3 file Access: Nguồn - Đích - Trung gian ( Trung gian sẽ chứa link table của Nguồn - Đích)
2. Gồn 2 file Access: Nguồn - Đích ( xử lý theo kiểu lấy vị trí)
Không biết Tiên có từng làm qua 2 loại này chưa? -
RE: Xin giúp về code appen từ 2 file access
huuduy.duy > 06-10-16, 06:35 AM
(05-10-16, 06:48 PM)maidinhdan Đã viết: Thực ra còn 2 cách nửa vượt trội hơn nhiều
1. Gồm 3 file Access: Nguồn - Đích - Trung gian ( Trung gian sẽ chứa link table của Nguồn - Đích)
2. Gồn 2 file Access: Nguồn - Đích ( xử lý theo kiểu lấy vị trí)
Sẵn anh làm Demo cho 2 trường hợp trên luôn đi anh.
Trân trọng -
RE: Xin giúp về code appen từ 2 file access
maidinhdan > 06-10-16, 10:48 AM
(06-10-16, 06:35 AM)huuduy.duy Đã viết:
(05-10-16, 06:48 PM)maidinhdan Đã viết: Thực ra còn 2 cách nửa vượt trội hơn nhiều
1. Gồm 3 file Access: Nguồn - Đích - Trung gian ( Trung gian sẽ chứa link table của Nguồn - Đích)
2. Gồn 2 file Access: Nguồn - Đích ( xử lý theo kiểu lấy vị trí)
Sẵn anh làm Demo cho 2 trường hợp trên luôn đi anh.
Trân trọng
Đã làm hết rồi, Có 6 loại Kết nối từ 1-6 nhưng chưa phải lúc để Post lên, vì nhu cầu mọi người cần ít quá. -
RE: Xin giúp về code appen từ 2 file access
Minh Tiên > 06-10-16, 05:06 PM
Chào Dân !
Tiên đã test với 500.000 Record mất tới 45 giây lận Dân ơi !
Dân cho Demo 2 phương pháp còn lại lun nhé !
Thanks ! -
RE: Xin giúp về code appen từ 2 file access
maidinhdan > 06-10-16, 08:40 PM
(06-10-16, 05:06 PM)Minh Tiên Đã viết: Chào Dân !
Tiên đã test với 500.000 Record mất tới 45 giây lận Dân ơi !
Dân cho Demo 2 phương pháp còn lại lun nhé !
Thanks !
Tiên Post nguyên đoạn code 26s của Tiên và ghi chú đầy đủ để mình trao đổi 1 chút.
Và Test lại dùm Code của mình với 200.000 ngàn Record xem.
Còn 2 Demo còn lại mình sẽ giới thiệu ở bài khác, để mọi người cùng Test và phát triển nó. -
RE: Xin giúp về code appen từ 2 file access
Minh Tiên > 07-10-16, 11:39 AM
Chào Dân !
Tiên gửi demo test 3 phương án đã nêu.
Dân cùng ACE xem cho ý kiến nhé !
Demo
Thân./. -
RE: Xin giúp về code appen từ 2 file access
ongke0711 > 07-10-16, 02:44 PM
Oh..FileNguon.accdb Access 2007 mình mở không được rồi. "..cannot recognized.." -
RE: Xin giúp về code appen từ 2 file access
Minh Tiên > 07-10-16, 02:53 PM
PC Tiên vẫn mở bt mà [b]ongke0711 ![/b]