• tự động cập nhật kết quả từ bảng excel vào table
  • RE: tự động cập nhật kết quả từ bảng excel vào table

    ongke0711 > 05-10-20, 02:24 PM

    À cái này do lỗi tôi không kiểm tra chính tả và sửa lại tên biến.
    Lưu ý: chỉ dùng một dòng: sConnString=... thôi nhé. Dòng còn lại bạn thêm dấu nháy đơn vào đầu chuỗi để vô hiệu hoá nó.

    câul lệnh đúng:

    sConnString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & sDBFullPath & ";" & _
        "Extended Properties=""Excel 8.0;HDR=Yes"""



    Hoặc:

    sConnString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
        "Data Source=" & sDBFullPath & ";" & _
        "Extended Properties=""Excel 8.0;HDR=Yes"""
  • RE: tự động cập nhật kết quả từ bảng excel vào table

    phương > 06-10-20, 12:02 PM

    (05-10-20, 02:24 PM)ongke0711 Đã viết: À cái này do lỗi tôi không kiểm tra chính tả và sửa lại tên biến.
    Lưu ý: chỉ dùng một dòng: sConnString=... thôi nhé. Dòng còn lại bạn thêm dấu nháy đơn vào đầu chuỗi để vô hiệu hoá nó.

    câul lệnh đúng:

    sConnString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & sDBFullPath & ";" & _
        "Extended Properties=""Excel 8.0;HDR=Yes"""



    Hoặc:

    sConnString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
        "Data Source=" & sDBFullPath & ";" & _
        "Extended Properties=""Excel 8.0;HDR=Yes"""

    @Ongke0711,
    Cám ơn ongke0711 rất nhiều, CT đã chạy được rồi, tuy nhiên cho mình hỏi thêm 01 ít:
    - cái Table thì mình có thể đổi tên( như bạn nói) nhưng mình có thể thay đổi số cột được không? thay đổi tên côt được không? vì thực ra từ cái bảng excel đó mình phải cập nhật vào nhiều Table khác nhau, có cấu trúc khác nhau tùy theo cái "ID" để làm CSDL
    - khi thay đổi thì mình cần phải sửa code ở đâu trong VBA, hay cần phải làm cái gì.

    Rất mong bạn tư vấn cho mình 
    cám ơn Bạn
  • RE: tự động cập nhật kết quả từ bảng excel vào table

    ongke0711 > 06-10-20, 01:52 PM

    (06-10-20, 12:02 PM)phương Đã viết: - cái Table thì mình có thể đổi tên( như bạn nói) nhưng mình có thể thay đổi số cột được không? thay đổi tên côt được không? vì thực ra từ cái bảng excel đó mình phải cập nhật vào nhiều Table khác nhau, có cấu trúc khác nhau tùy theo cái "ID" để làm CSDL
    - khi thay đổi thì mình cần phải sửa code ở đâu trong VBA, hay cần phải làm cái gì.

    - Thay đổi được hết nhưng bạn cần phải có kiến thức VBA.
    - Bạn xem hình.

    [Hình: f9Y5YHW.png]
  • RE: tự động cập nhật kết quả từ bảng excel vào table

    phương > 07-10-20, 10:50 AM

    (06-10-20, 01:52 PM)ongke0711 Đã viết:
    (06-10-20, 12:02 PM)phương Đã viết: - cái Table thì mình có thể đổi tên( như bạn nói) nhưng mình có thể thay đổi số cột được không? thay đổi tên côt được không? vì thực ra từ cái bảng excel đó mình phải cập nhật vào nhiều Table khác nhau, có cấu trúc khác nhau tùy theo cái "ID" để làm CSDL
    - khi thay đổi thì mình cần phải sửa code ở đâu trong VBA, hay cần phải làm cái gì.

    - Thay đổi được hết nhưng bạn cần phải có kiến thức VBA.
    - Bạn xem hình.

    [Hình: f9Y5YHW.png]

    Ongke0711,
    về VBA thì xưa đi học được học qua, tuy nhiên không phải chuyên ngành nên hiện tại kiến thức chắc cũng hạn chế, mình có thể đọc lại sách để hiểu sơ sơ.
    Một lần nữa mình làm phiền bạn, mình gởi file dữ liệu( table mới, file excel như cũ) mục đích tương đối giống như bài trước:
    - tìm cái ID nào trùng với "SZ_ Stranded_ Module_ ID" trong table thì cập nhật như sau
    Notice3 = KET_QUA & "," & "OPTL="& CHIEU_DAI &"," &REMARKS
    Mình nghĩ bạn chỉ cần sửa vài dòng code là OK, nếu được bạn chú thích vào dòng thêm, sửa để mình dễ hiểu
    file dữ liệu: http://www.mediafire.com/file/8eg0fhnc73...e.rar/file

    cám ơn Ongke0711 trước nha
  • RE: tự động cập nhật kết quả từ bảng excel vào table

    ongke0711 > 07-10-20, 03:13 PM

    Chú ý tên Field (cột): "SZ_ Stranded_ Module_ ID" có khoảng trắng nên phải đưa nó vào dấu ngoặc vuông [SZ_ Stranded_ Module_ ID] thì Access mới hiểu.

    Bạn xem file đính kèm. 
    Link: https://drive.google.com/file/d/1YsPLmggUKWgCcaAumy0TvarwwoPuUxMf/view?usp=sharing
  • RE: tự động cập nhật kết quả từ bảng excel vào table

    phương > 07-10-20, 03:51 PM

    (07-10-20, 03:13 PM)ongke0711 Đã viết: Chú ý tên Field (cột): "SZ_ Stranded_ Module_ ID" có khoảng trắng nên phải đưa nó vào dấu ngoặc vuông [SZ_ Stranded_ Module_ ID] thì Access mới hiểu.

    Bạn xem file đính kèm. 
    Link: https://drive.google.com/file/d/1YsPLmggUKWgCcaAumy0TvarwwoPuUxMf/view?usp=sharing
    OK rồi ongke0711,
    làm 01 phát được liền
    không biết phải cám ơn bạn như thế nào, bạn giúp cho mình đơn giản công việc hơn rất nhiều
    mình tính cài lại cái WIN lên 2010, cái CT access 2003 đang dùng chắc cũng phải viết lại phải không bạn? có cách nào đơn giản?
    một lẫn nữa cám ơn ongke0711
  • RE: tự động cập nhật kết quả từ bảng excel vào table

    ongke0711 > 07-10-20, 03:59 PM

    (07-10-20, 03:51 PM)phương Đã viết: mình tính cài lại cái WIN lên 2010, cái CT access 2003 đang dùng chắc cũng phải viết lại phải không bạn? có cách nào đơn giản?

    - Bạn nên cài Access 2013 trở lên. Access 2010 còn nhiều lỗi lắm.
    - Cái file Access trên không cần viết lại.
  • RE: tự động cập nhật kết quả từ bảng excel vào table

    phương > 07-10-20, 04:09 PM

    (07-10-20, 03:59 PM)ongke0711 Đã viết:
    (07-10-20, 03:51 PM)phương Đã viết: mình tính cài lại cái WIN lên 2010, cái CT access 2003 đang dùng chắc cũng phải viết lại phải không bạn? có cách nào đơn giản?

    - Bạn nên cài Access 2013 trở lên. Access 2010 còn nhiều lỗi lắm.
    - Cái file Access trên không cần viết lại.
     vậy hả bạn
    để khi nào cài lai win, có gì trục trạc nhờ ongke0711 tư vấn dùm
    chao bạn
  • RE: tự động cập nhật kết quả từ bảng excel vào table

    phương > 08-10-20, 02:45 PM

    (07-10-20, 03:51 PM)phương Đã viết: [quote="ongke0711" pid='47833' dateline='1602054801']
    Chú ý tên Field (cột): "SZ_ Stranded_ Module_ ID" có khoảng trắng nên phải đưa nó vào dấu ngoặc vuông [SZ_ Stranded_ Module_ ID] thì Access mới hiểu.

    Bạn xem file đính kèm. 
    Link: https://drive.google.com/file/d/1YsPLmggUKWgCcaAumy0TvarwwoPuUxMf/view?usp=sharing
     ongke0711 ơi,
    khi mình đưa cái table thưc tế mà mình đang sử dụng để làm CSDL vào file Access để cập nhật hằng ngày ( mấy ngàn records, từ nhiều năm) thì khi chạy nó báo lỗi, thực tế mình chỉ cần nó loop khoảng 20-30 records đầu tiên hoặc trong khoảng thời gian 1-2 tuần là ok rồi.
    Bạn có thể giúp mình không?
    thanks you bạn trước
  • RE: tự động cập nhật kết quả từ bảng excel vào table

    ongke0711 > 08-10-20, 03:22 PM

    (08-10-20, 02:45 PM)phương Đã viết: khi mình đưa cái table thưc tế mà mình đang sử dụng để làm CSDL vào file Access để cập nhật hằng ngày ( mấy ngàn records, từ nhiều năm) thì khi chạy nó báo lỗi, thực tế mình chỉ cần nó loop khoảng 20-30 records đầu tiên hoặc trong khoảng thời gian 1-2 tuần là ok rồi.

    Làm gì mà cập nhật hàng loạt cho nhiều năm dữ vậy. 
    Nó báo lỗi gì? tràn bộ nhớ à?
    Cái ứng dụng này viết theo dữ liệu bạn đưa ra và thực chất dữ liệu (Table) nó cũng không phản ánh đúng thực tế nên tôi cũng không có lọc dữ liệu để giảm bớt số dòng trong vòng lặp.
    Nếu qui trình cập nhật hàng tuần, tháng thì chỉ cần lọc dữ liệu phát sinh trong Tuần, tháng để xử lý, khi đó sẽ giảm tải cho code hoạt động.