paulsteigel > 11-06-13, 11:41 PM
changkhoonline77 > 12-06-13, 11:02 PM
(11-06-13, 11:41 PM)paulsteigel Đã viết: Tôi có sửa form tìm kiếm của bạn một chút theo cách sau:Mình có xem file bạn sửa rồi. Đúng là file mình code dài lắm. Mình cũng đang tìm cách rút gọn để tối ưu hơn
1. Đặt thuộc tính TAG =1 cho các điều khiển dự kiến là đầu vào cho tham số tìm kiếm.
2. Các điều khiển có TAG 1_T để giúp lập điều kiện cho câu truy vấn.
Tôi viết lại code một số đoạn để bạn hiểu nguyên lý, tránh viết dài quá. Vì đa phần các đối tượng có cùng quy luật áp dụng, như vậy thì code có thể viết ngắn đi nhiều (phần tôi viết cũng chưa hẳn là tối ưu nhưng chỉ xin chia sẻ một cách).
Tài liệu thì tải về ở đây
Ngoài ra, có một góp ý thế này, liệu có nhất thiết phải thiết kế một form tìm kiếm phức tạp thế hay không? Hay là bạn hãy dùng cơ chế lọc giống như tôi làm thử ấy!
Còn nếu bạn sử dụng các tìm kiếm như dạng bạn Chử phúc Lợi nêu thì có thể dùng dạng: Select ... from ... where STT IN (danh sách giá trị);
Xin chia sẻ!
paulsteigel > 13-06-13, 09:23 AM
(12-06-13, 11:02 PM)changkhoonline77 Đã viết:Đây là một cách cho bạn nhé(11-06-13, 11:41 PM)paulsteigel Đã viết: Tôi có sửa form tìm kiếm của bạn một chút theo cách sau:Mình có xem file bạn sửa rồi. Đúng là file mình code dài lắm. Mình cũng đang tìm cách rút gọn để tối ưu hơn
1. Đặt thuộc tính TAG =1 cho các điều khiển dự kiến là đầu vào cho tham số tìm kiếm.
2. Các điều khiển có TAG 1_T để giúp lập điều kiện cho câu truy vấn.
Tôi viết lại code một số đoạn để bạn hiểu nguyên lý, tránh viết dài quá. Vì đa phần các đối tượng có cùng quy luật áp dụng, như vậy thì code có thể viết ngắn đi nhiều (phần tôi viết cũng chưa hẳn là tối ưu nhưng chỉ xin chia sẻ một cách).
Tài liệu thì tải về ở đây
Ngoài ra, có một góp ý thế này, liệu có nhất thiết phải thiết kế một form tìm kiếm phức tạp thế hay không? Hay là bạn hãy dùng cơ chế lọc giống như tôi làm thử ấy!
Còn nếu bạn sử dụng các tìm kiếm như dạng bạn Chử phúc Lợi nêu thì có thể dùng dạng: Select ... from ... where STT IN (danh sách giá trị);
Xin chia sẻ!
Cảm ơn bạn đã hướng dẫn. Để mình thử theo cách của bạn xem sao
Bạn cũng thấy các mục mà mình cần tìm rồi đó, vì rất nhiều điều kiện nên mình buộc phải đưa ra hết để khi nào cần tìm thì tìm. Do file mình chỉ để lại form tìm kiếm và cũng bỏ 1 số cái khác trên form tìm kiếm này nên đó cũng là lý do khác mình cần tìm kiếm nhiều điều kiện như thế
Bạn có thể giúp mình vấn đề này được hong. Mình cần xuất những gì tìm kiếm được hiện ra trên listbox ra Excel. Theo code của Xuân Thanh hay Culoi hay NoNam gì đó mà mình làm mãi không được
File http://www.mediafire.com/?p1m9qu7zeatu11l
Bạn giúp mình nha. Cảm ơn bạn trước
Function Export2Excel(Optional qryName As String, Optional qryString As String, Optional ExlFileName As String) As Boolean
On Error GoTo errHandler
If qryName = "" Then
If qryString = "" Then
MsgBox "Chua co cau lenh Truy van SQL..", vbInformation
GoTo errHandler
End If
' Tao Query tam thoi
CurrentDb.CreateQueryDef "tmp_Qry", qryString
qryName = "tmp_Qry"
End If
If ExlFileName = "" Then ExlFileName = CurrentProject.Path & "\" & qryName & ".xls"
' Xoa file Excel neu da ton tai
If Dir(ExlFileName) <> "" Then Kill ExlFileName
' Xuat ra Excel
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, qryName, ExlFileName, True
Export2Excel = True
errHandler:
If Export2Excel Then
MsgBox "Da xuat thanh cong ra Excel..Ten tap tin la: [" & vbclrf & ExlFileName, vbInformation
Else
MsgBox "Viec xuat file ra Excel khong thanh cong...", vbInformation
End If
Err.Clear
On Error Resume Next
' xoa Query tam
If qryName = "tmp_Qry" Then DoCmd.DeleteObject acQuery, qryName
End Function
Sub Test()
'Call Export2Excel("Query1")
Call Export2Excel(, "SELECT a.tentg, Count(b.tensach) AS Dausach FROM tacgia AS a INNER JOIN sach AS b ON a.matg=b.matg GROUP BY a.tentg;")
End Sub