• [Hàm] Lấy dữ liệu giữa 2 file Access có cùng cấu trúc table
  • 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 StringDuongdanfile 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]