Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Filter với backend là sql server
#1
Chào mọi người, nếu dùng access kết nối access thì mình sử dụng:
 

Mã:
me.filter = điệu kiện

me.filteron = true


Còn đối với access kết nối với sqlserver thì dùng lệnh gì để thay thế.
Chữ ký của mrsiro Xin chào, mình là mrsiro, Tham gia http://thuthuataccess.com/forum từ ngày 05-12 -14.
Reply
Những người đã cảm ơn
#2
Khi bạn xác định dùng Access làm Font End, SQL Server làm backend thì bạn phải xác định dùng cách gì để giao tiếp với SQL Server. Sau khi xác định dùng công cụ nào để kết nối thì cứ bám theo các phương thức, thuộc tính của công cụ đó mà thao tác dữ liệu.

Nếu dùng ODBC thì sẽ quen thuộc hơn khi mới chuyển đổi Access lên SQL Server. Khi Dó bạn dùng Linked Table với SQL server thông qua công nghệ ODBC, sau đó code, query cũng làm như Linked table thông thường của Access mà bạn đã quen thuộc.

Nếu bạn chọn kết nối bằng ADO thì buộc phải ngâm cứu các method, property của nó để xử lý dữ liệu. Một cách thức tốt hay dùng nhất là: Dùng ADO Recordset để lấy dữ liệu và dùng Stored Procedure thông qua ADO Command để Inser, Udpdate, Delete dữ liệu.

Đối với câu hỏi trên của bạn thì bạn có thể tạo Stored Proc(SP) để tìm kiếm sau đó từ Form dùng ADO Command để chạy SP này và trả về Recordset cho Form. Mọi hoạt động sau khi thao tác với dữ liệu trên SQL Server thì bạn phải load lại Recordset cho Form.
Bạn phải tự nghiên cứu thêm nhiều về SQL Server: dùng Dynamic SQL, Stored Proc...

Trong loạt bài của anh LeHongDuc có hướng dẫn chi tiết, demo khá rõ hầu hết các trường hợp một Form thao tác dữ liệu có thể có. Bạn đọc và ngâm cứu demo là có thể giải quyết các yêu cầu trên của bạn rồi.

Link post: http://thuthuataccess.com/forum/thread-5297.html
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) ღღღღღ
Reply
Những người đã cảm ơn
#3
Mình đã nghĩ tới cách tạo SP có filter sẵn trên SQL server, nhưng đúng như bạn nói mỗi lần cần filter lại phải load lại recordset với tất cả thao tác tạo kết nối tới ngắt kết nối.

Vì thế ý mình ở đây muốn hỏi là có cách nào load recordset về rồi, lúc này mình cần thì mình chỉ filter trên cục recordset đã load về, chứ ko phải mỗi lần muốn filter lại phải load từ sql về tiếp.
Chữ ký của mrsiro Xin chào, mình là mrsiro, Tham gia http://thuthuataccess.com/forum từ ngày 05-12 -14.
Reply
Những người đã cảm ơn
#4
ADO Recordset vẫn có phương thức Find và Filter nhưng xét về mặt hiệu quả (về tốc độ và bộ nhớ) thì không bằng việc chạy câu lệnh SQL để lọc lấy dữ liệu về từ SQL Server.

ADO.Find và Filter không hỗ trợ Index nên việc tìm kiếm sẽ không nhanh. Find chỉ tìm được trên 1 field và nó phải duyệt qua từng dòng (record) trong cái recordset mà bạn đã tạo cho đến cuối để tìm kiếm. Filter thì tốt hơn, có thể lọc trên nhiều Fields, tốc độ tìm kiếm nhanh hơn Find nhưng nó cũng có điểm yếu là sẽ tạo một cursor khác (như recordset) trên bộ nhớ để lưu bộ records vừa lọc được.
Khi bạn muốn tận dụng ADO Recordset có sẵn trên bộ nhớ để dùng Filter (hay Find) để lọc, tìm kiếm thông tin gì đó thì phải load về sẳn một Recordset đủ lớn chứa thông tin để lọc, khi đó cũng đã tốn tài nguyên để load về nhiều record dư thừa hơn nhu cầu.
Bạn cần cân nhắc chi phí tài nguyên bỏ ra giữa 2 hình thức: tạo nhiều Recordset nhỏ tải về các dữ liệu cần lọc (dùng SQL) hoặc là tải về một recordset lớn rồi dùng nó để lọc ra các Recordset nhỏ (dùng ADO Filter).

Bạn xem biểu đồ sau để thấy tại sao tôi không khuyến khích dùng lại ADO Filter.

[Hình: 45115656641_55cbf0a9bc_o.gif]
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) ღღღღღ
Reply
Những người đã cảm ơn maidinhdan
#5
Chào bạn, nếu được bạn vui lòng giúp mình theo cái ADO filter khi load full recordset về form rồi được ko. Với cách tạo filter sẵn trên sql để load về thì mình đã làm được rồi.
Chữ ký của mrsiro Xin chào, mình là mrsiro, Tham gia http://thuthuataccess.com/forum từ ngày 05-12 -14.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hỏi] Tiêu đề listbox tiếng việt khi đã kết nối SQL server mrsiro 12 1,541 14-08-18, 01:12 PM
Bài mới nhất: Cuong Servenet
  [Hỏi] Forms Access - SQL Server Demo Cuong Servenet 8 498 03-08-18, 12:03 PM
Bài mới nhất: Cuong Servenet
  Hỏi về: Đếm số người sử dụng backend ledangvan 4 871 01-10-17, 12:27 AM
Bài mới nhất: maidinhdan
Sad Form Access bị lỗi OLE server or Activex Control. hollyhouse 4 1,330 19-08-13, 05:33 PM
Bài mới nhất: bomnhauag
  [Lỗi] OLE server or ActiveX control với listbox và tab deephight 4 2,242 21-05-12, 05:57 PM
Bài mới nhất: deephight

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line