AnNguyen ____oO.Oo____    Bài viết: 478 Chủ đề: 77 Tham Gia: 25-07 -19 Điểm danh tiếng: 6 Số lần cảm ơn 549 333 cảm ơn trong 226 bài Tiền Access: 9,193.18Ac$ #1 30-08-19, 11:08 PM Em kết nối từ Ms Access đến sql sv sử dụng mệnh đề where nhưng nếu nội dung lưu trong sql là tiếng việt no sẽ không tìm thấy. Nêu em thêm N vào trước từ khóa thì lại báo lỗi ạ. Vậy làm thế nào ạ? ღღღღღTài sản của AnNguyen (View All Items) ღღღღღ Website Find Reply Những người đã cảm ơn Bienxanh ongke0711 Honorary members    Bài viết: 3,578 Chủ đề: 62 Tham Gia: 10-04 -15 Điểm danh tiếng: 165 Số lần cảm ơn 584 4063 cảm ơn trong 2402 bài Tiền Access: 92,558.56Ac$ #2 31-08-19, 12:29 AM (Được chỉnh sửa: 31-08-19, 12:31 AM bởi ongke0711.) Cụ thể câu lệnh SQL như thế nào, thêm tiền tố "N" như thế nào? Field lưu tiếng Việt có data type là NVARCHAR? Em nói chung chung vậy ai mà định bệnh được. Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake! ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ Website Find Reply Những người đã cảm ơn AnNguyen ____oO.Oo____    Bài viết: 478 Chủ đề: 77 Tham Gia: 25-07 -19 Điểm danh tiếng: 6 Số lần cảm ơn 549 333 cảm ơn trong 226 bài Tiền Access: 9,193.18Ac$ #3 31-08-19, 07:30 AM (31-08-19, 12:29 AM)ongke0711 Đã viết: Cụ thể câu lệnh SQL như thế nào, thêm tiền tố "N" như thế nào? Field lưu tiếng Việt có data type là NVARCHAR? Em nói chung chung vậy ai mà định bệnh được. Vâng. Field là Nvarchar anh ạ. Select * from tbHocSinh where ghichu like N'%"& txtGhiChu & " %' " Câu lệnh đó anh ạ. Em dùng query để truy vấn ạ ღღღღღTài sản của AnNguyen (View All Items) ღღღღღ Website Find Reply Những người đã cảm ơn Bienxanh Noname Lãng du       Bài viết: 2,631 Chủ đề: 483 Tham Gia: 05-08 -10 Điểm danh tiếng: 37 Số lần cảm ơn 4023 3218 cảm ơn trong 1570 bài Tiền Access: 133,980.33Ac$ #4 31-08-19, 09:45 AM (31-08-19, 07:30 AM)AnNguyen Đã viết: (31-08-19, 12:29 AM)ongke0711 Đã viết: Cụ thể câu lệnh SQL như thế nào, thêm tiền tố "N" như thế nào? Field lưu tiếng Việt có data type là NVARCHAR? Em nói chung chung vậy ai mà định bệnh được. Vâng. Field là Nvarchar anh ạ. Select * from tbHocSinh where ghichu like N'%"& txtGhiChu & " %' " Câu lệnh đó anh ạ. Em dùng query để truy vấn ạ Trong Access không hiểu ký tự N', % bạn nhé. Và cũng không cần ký tự N'. '%' thì thay thế bằng '*' Chữ ký của Noname ღღღღღTài sản của Noname (View All Items) ღღღღღ Website Find Reply Những người đã cảm ơn ongke0711 Honorary members    Bài viết: 3,578 Chủ đề: 62 Tham Gia: 10-04 -15 Điểm danh tiếng: 165 Số lần cảm ơn 584 4063 cảm ơn trong 2402 bài Tiền Access: 92,558.56Ac$ #5 31-08-19, 10:08 AM @Noname: Chắc AnNguyen dùng Pass Through query đó bác NoName. @AnNguyen: em dùng PT query phải không? nó báo lỗi gì? Đang có dư 1 khoảng trắng sau tham số "txtGhichu" Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake! ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ Website Find Reply Những người đã cảm ơn Noname AnNguyen ____oO.Oo____    Bài viết: 478 Chủ đề: 77 Tham Gia: 25-07 -19 Điểm danh tiếng: 6 Số lần cảm ơn 549 333 cảm ơn trong 226 bài Tiền Access: 9,193.18Ac$ #6 03-09-19, 09:26 AM (31-08-19, 10:08 AM)ongke0711 Đã viết: @Noname: Chắc AnNguyen dùng Pass Through query đó bác NoName. @AnNguyen: em dùng PT query phải không? nó báo lỗi gì? Đang có dư 1 khoảng trắng sau tham số "txtGhichu" Mã:Function Tao_Query(ten_qr, cau_lenh) As String Dim qdf As QueryDef sql = "Select * from tbHocSinh where ghichu =N'" & txtGhiChu & "'" stConnect = "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";UID=" & stUser & ";PWD=" & stPass & ";" ten_qr = ten_qr Set qdf = DBEngine(0)(0).CreateQueryDef(ten_qr, cau_lenh) qdf.Connect = stConnect qdf.Close Tao_Query = ten_qr End FunctionCode của em đây ạ. Nó báo lỗi là: Syntax error (missing operator) in query expression 'ghichu=N'từ khóa tìm kiếm'". ღღღღღTài sản của AnNguyen (View All Items) ღღღღღ Website Find Reply Những người đã cảm ơn Bienxanh ongke0711 Honorary members    Bài viết: 3,578 Chủ đề: 62 Tham Gia: 10-04 -15 Điểm danh tiếng: 165 Số lần cảm ơn 584 4063 cảm ơn trong 2402 bài Tiền Access: 92,558.56Ac$ #7 04-09-19, 04:40 PM Theo báo lỗi code này thì chắc là VBA (Jet engine) của Access nó không chấp nhận vài từ khoá của SQL Server ("N") trong câu lênh tạo QueryDef rồi. Tạo thủ công không qua VBA thì OK. Em nên xem và chọn lại cách xử lý tìm kiếm kiểu khác chứ kiểu tạo QueryDef cho mỗi từ khoá tìm kiếm mỗi lần là rất không hiệu quả (không tính đến cái lỗi trên). Ứng dụng chạy nhanh khi các query, code VBA đã được Compile thành mã máy một lần sau khi code xong, còn theo cách của em là mỗi lần tìm kiếm lại tạo query động mới, máy phải compile mỗi lần xong mới chạy --> tốn thời gian và tài nguyên máy. Có rất nhiều cách tìm kiếm: - Dùng ADODB recordset như ví dụ bài post trước anh demo cho em (dùng Filter). - Dùng ADODB Command để chạy trực tiếp câu lệnh SQL trên của em mà không cần thông qua bước tạo QueryDef. Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake! ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ Website Find Reply Những người đã cảm ơn AnNguyen , Noname AnNguyen ____oO.Oo____    Bài viết: 478 Chủ đề: 77 Tham Gia: 25-07 -19 Điểm danh tiếng: 6 Số lần cảm ơn 549 333 cảm ơn trong 226 bài Tiền Access: 9,193.18Ac$ #8 04-09-19, 05:01 PM (Được chỉnh sửa: 04-09-19, 05:02 PM bởi AnNguyen.) (04-09-19, 04:40 PM)ongke0711 Đã viết: Theo báo lỗi code này thì chắc là VBA (Jet engine) của Access nó không chấp nhận vài từ khoá của SQL Server ("N") trong câu lênh tạo QueryDef rồi. Tạo thủ công không qua VBA thì OK. Em nên xem và chọn lại cách xử lý tìm kiếm kiểu khác chứ kiểu tạo QueryDef cho mỗi từ khoá tìm kiếm mỗi lần là rất không hiệu quả (không tính đến cái lỗi trên). Ứng dụng chạy nhanh khi các query, code VBA đã được Compile thành mã máy một lần sau khi code xong, còn theo cách của em là mỗi lần tìm kiếm lại tạo query động mới, máy phải compile mỗi lần xong mới chạy --> tốn thời gian và tài nguyên máy. Có rất nhiều cách tìm kiếm: - Dùng ADODB recordset như ví dụ bài post trước anh demo cho em (dùng Filter). - Dùng ADODB Command để chạy trực tiếp câu lệnh SQL trên của em mà không cần thông qua bước tạo QueryDef. Vâng, em vẫn dùng cái mà a đã làm cho em đấy ạ, nhưng có 1 số trường hợp ít em đang dùng cách cũ, ví dụ như đổ dữ liệu vào combobox ý ạ. nhưng còn report thì nó k có Form.Recordset thì em chưa biết làm thế nào nên vẫn dùng QueryDef anh ạ. Và ADODB Command thì em chưa biết dùng để thay thế QueryDef Anh có thể hướng dẫn em vấn đề trên không ạ. Em cảm ơn anh. ღღღღღTài sản của AnNguyen (View All Items) ღღღღღ Website Find Reply Những người đã cảm ơn Bienxanh ongke0711 Honorary members    Bài viết: 3,578 Chủ đề: 62 Tham Gia: 10-04 -15 Điểm danh tiếng: 165 Số lần cảm ơn 584 4063 cảm ơn trong 2402 bài Tiền Access: 92,558.56Ac$ #9 09-09-19, 01:34 AM (Được chỉnh sửa: 09-09-19, 10:46 AM bởi ongke0711.) - Combobox vẫn dùng ADO Recordset được nhé. - Report thì vẫn có Source là Recordset nhưng chỉ xài được khi ứng dụng là ADP (Access Data Project). Nếu là file .accdb thì đúng là không dùng được đối tượng Recordset này rồi. Trường hợp này thì dùng Pass-Through query là hay hơn thay vì tạo Table tạm từ Recordset để làm nguồn cho Report. - Riêng về cách tạo Pass-Through query, em chỉ cần tạo sẵn 1 cái PT Query là được rồi. Khi thực thì chỉ cần đổi câu lệnh SQL cho nó thôi, không cần mỗi lần trích xuất dữ liệu lại tạo mới query. Query đã tạo sẳn sẽ được compile trước rồi. - Đối với đối tượng ADO Commnand thì dùng để thực thi các câu lệnh SQL cho các Action query như: Insert, Update, Delete. Nó sẽ gửi lệnh tới SQL Server và thực thi. Em xem demo Report dựa trên PT query: http://www.mediafire.com/file/zcxcs3yj3w...accdb/file Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake! ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ Website Find Reply Những người đã cảm ơn Noname , AnNguyen AnNguyen ____oO.Oo____    Bài viết: 478 Chủ đề: 77 Tham Gia: 25-07 -19 Điểm danh tiếng: 6 Số lần cảm ơn 549 333 cảm ơn trong 226 bài Tiền Access: 9,193.18Ac$ #10 10-09-19, 10:12 PM Vâng. Em cảm ơn anh ạ. ღღღღღTài sản của AnNguyen (View All Items) ღღღღღ Website Find Reply Những người đã cảm ơn Bienxanh |