Chào mừng đến với Diễn đàn Dân Kế Toán - Kế toán tổng hợp thực tế.
Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 11
  1. #1
    Ngày tham gia
    Aug 2015
    Bài viết
    0

    Lỗi lọc dữ liệu

    Ai đã từng gặp tình huống này thì giúp mình với. Mình sử dụng database SQL Server rồi link qua MS Access 2000. Nếu sử dụng font VNI- thì find và filter bình thường, nhưng nếu sử dụng font Unicode thì find bình thường, nhưng lọc không thấy gì.

    Ví dụ, mình lưu giá trị "Chả Lụa Chay" trong field TenHH (kiểu nvarchar). Nếu "Chả Lụa Chay" là font VNI thì OK còn "Chả Lụa Chay" là font Unicode thì sử dụng chức năng filter for sẽ không có kết quả gì hết

    Nếu copy nguyên chuỗi ấy dán vào table Access thì filter lại OK
    Hết biết luôn. :runcamcap:

  2. #2
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: Lỗi lọc dữ liệu

    Nếu không link mà import table từ SQL Server 2000 qua thì mọi việc đều bình thường. Hoặc link table qua rồi chép các record trong table đó sang một table của Access có cùng cấu trúc thì các thao tác trên table của Access này cũng ok. Chuyện này chỉ xảy ra đối với các bảng mã Unicode (tổ hợp, dựng sẵn, CP 1258 đều bị). Tôi đã thử SQL Server 2005 và MS Access 2003, vấn đề cũng y chang. Ngay cả đặt một điều kiện lọc đơn giản trong query như TenHH Like "*Chả*" cũng trả về kết quả rỗng.

    Có vấn đề gì trong việc SQL Server "hợp tác" với MS Access mà các table SQL Server dùng các font Unicode?
    Ai đã từng gặp chuyện này thì chia sẻ với tôi với!

    Đa tạ!

  3. #3
    Ngày tham gia
    Aug 2015
    Bài viết
    2
    Ðề: Lỗi lọc dữ liệu

    Với SQL Server, bạn cần lưu ý là nên dùng chuẩn ANSI 92 cho syntax.

    Tiếp theo, với kiểu nvarchar, khi tham chiếu chuỗi, bạn nên có ký tự N trước chuỗi. VD: N'Chả giò chay'. Lúc này SQL Server hiểu nó là chuổi kiểu nvarchar.

    Tiếp nữa là nếu bạn gõ dấu trong VBA của Access thì Unicode không gõ được đâu. Như vậy, có thể bạn dùng VNI để thể hiện dấu. Nếu đúng thế thì cái chuỗi so của bạn nhập trong VBA là VNI rồi, khi filter thì sẽ không thấy được, vì bên SQL Server lưu theo Unicode.

    Hoặc ở SQL Server bạn tạo database mà dùng colaboration là UTF-8 thì cũng sẽ gặp trường hợp tương tự.

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Lỗi lọc dữ liệu

    Cám ơn bạn đã trả lời! Tôi không rành về SQL Server. Tôi có làm 1 ứng dụng nhỏ phục vụ cho công việc. Lúc đầu làm thì file back-end và front-end đều là MS Access 2000 cả. Nếu tại 1 thời điểm chỉ có 1 người dùng thì tốc độ bình thường, nhưng nếu có 2 người trở lên dùng đồng thời thì chương trình bắt đầu... lết. Tôi đã thử thay thế back-end bằng SQL Server thì tốc độ khi nhiều người dùng đồng thời rất là ô kê.

    Tôi thích unicode vì xài font VNI thấy nó xấu quá, không gọn gàng tí nào, nhưng lại gặp phải vấn đề trên.

    Lúc tạo database SQL Server, tôi chọn Collation mặc định của SQL Server (SQL_Latin1_General_CP1_CI_AS)

    Khi lọc dữ liệu, tôi không viết trực tiếp chuỗi điều kiện lọc trong VBA mà sử dụng textbox chứa chuỗi unicode cần lọc, dạng như:
    FormA.Filter = "TenHH LIKE '*" & FormA.text1 & "*'"
    FormA.FilterOn = True
    Còn dùng chữ N để SQL Server hiểu là chuỗi unicode thì tôi không biết "nhét" nó vô đâu trong câu lệnh lọc bên trên nữa.

    Nhưng vấn đề là ngay cả đặt điều kiện lọc trong query hay sử dụng chức năng lọc chuẩn của MS Access thì đều không xong (cỏ vẻ như nó lọc được một số chữ có dấu, nhưng đa số chữ có dấu khác thì không được). Tôi cẩn thận không gõ tên hàng cần lọc mà tôi copy tên hàng trong table cũng không lọc được.

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    140
    Ðề: Lỗi lọc dữ liệu

    Bạn có thể thử: FormA.Filter = "TenHH LIKE N'*" & FormA.text1 & "*'"

  6. #6
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Lỗi lọc dữ liệu

    Nó báo lỗi: "Run-time error '2448'. You can't assign a value to this object".

  7. #7
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Lỗi lọc dữ liệu

    Có nhiều nguyên nhân khi xảy ra lỗi này.
    Nguyên nhân thứ nhất:
    Có khả năng cái text1 của bạn có assign đến một field của table RecordSource
    Nguyên nhân thứ hai:
    Cái field đó không tồn tại trong table
    Vì không rõ bạn thiết kế như thế nào nên cũng khó nói chi tiết được

  8. #8
    Ngày tham gia
    Feb 2016
    Bài viết
    0
    Ðề: Lỗi lọc dữ liệu

    Theo tôi thì không phải cú pháp có vấn đề mà việc phối hợp giữa SQL Server và MS Access có vấn đề. Không tin bạn thử tạo 1 database SQL Server (lưu các chuỗi unicode trong table) rồi link qua MS Access; Thử tạo 1 query để lọc các chuỗi unicode đó thử, hoặc thử sử dụng menu lọc chuẩn của MS Access thử thì sẽ biết.

    Nó lọc được 1 số chữ có dấu, nhưng đa số các chữ có dấu đều không lọc được.

  9. #9
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Lỗi lọc dữ liệu

    @lttruc862:
    Tôi đã áp dụng Access Project để "kiếm cơm" nhiều rồi. Tất nhiên trên SQL Server, tôi đều lưu dưới dạng nvarchar cho các dữ liệu kiểu chuỗi.
    Việc lọc, tìm kiếm dữ liệu chẳng có gì là "rắc rối". Không riêng gì tiếng Việt có dấu, ngay cả tìm bằng tiếng Hoa cũng chẳng vấn đề gì (tôi viết nhiều cho các công ty Đài loan ở Bình dương).

    Vì không rõ bạn thiết kế chương trình của bạn ra sao nên tôi không thể hiểu đúng cái rắc rối mà bạn gặp phải, tôi chỉ đề xuất một số ý kiến để bạn xem thử. Nếu vẫn không được thì tôi cũng "pó tay", nhờ các anh em khác hỗ trợ vậy.

  10. #10
    Ngày tham gia
    Aug 2015
    Bài viết
    4
    Ðề: Lỗi lọc dữ liệu

    Lỗi lọc chuỗi unicode khi link từ sql server 2000 sang ms access 2000. Anh Phatnq2002 và mọi người xem thử nhé:

    File unicode.exe record lại các thao tác, không phải virus đâu.

    unicode.exe

    Đa tạ!

 

 
Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •