Godspear > 04-01-17, 09:41 AM
ongke0711 > 04-01-17, 11:48 AM
Sub Search()
Const conJetDate = "\#mm\/dd\/yyyy\#"
Dim strCriteria, task As String
If IsNull(Me.TxTDateFrom) Or IsNull(Me.txtDateTo) Then
MsgBox "Please enter the date range", vbInformation, "Date Range Required"
Me.TxTDateFrom.SetFocus
Else
strCriteria = Me.cboLocDate.Value & " BETWEEN " & Format(Me.TxTDateFrom, conJetDate) & " AND " & Format(Me.txtDateTo, conJetDate)
task = "SELECT * FROM tbl_ListofClinicalTrials1 WHERE (" & strCriteria & ") ORDER BY " & Me.cboLocDate.Value
DoCmd.ApplyFilter task
End If
End Sub
Godspear > 04-01-17, 12:13 PM
(04-01-17, 11:48 AM)ongke0711 Đã viết: Cái này đơn giản mà bạn.
Đưa cái Value của combobox vô string là được rồi.
- Cái combobox lọc theo Field phải lấy tên field làm index để tìm chứ không phải số ID. Comboxbox chỉ lấy cột [DateType] thôi, bỏ DateTypeID là Record Source.
- Tìm kiếm giữa 2 ngày thì dùng BETWEEN ... AND ... sẽ cho tốc độ nhanh hơn >=,<=
- Chú ý các tham số dạng ngày nên chuyển về dạng "mm/dd/yyyy" để đúng với code của VBA nếu không dễ bị sai kết quả. Dùng hàm Format().
Mã PHP:Sub Search()
Const conJetDate = "\#mm\/dd\/yyyy\#"
Dim strCriteria, task As String
If IsNull(Me.TxTDateFrom) Or IsNull(Me.txtDateTo) Then
MsgBox "Please enter the date range", vbInformation, "Date Range Required"
Me.TxTDateFrom.SetFocus
Else
strCriteria = Me.cboLocDate.Value & " BETWEEN " & Format(Me.TxTDateFrom, conJetDate) & " AND " & Format(Me.txtDateTo, conJetDate)
task = "SELECT * FROM tbl_ListofClinicalTrials1 WHERE (" & strCriteria & ") ORDER BY " & Me.cboLocDate.Value
DoCmd.ApplyFilter task
End If
End Sub
Godspear > 05-01-17, 06:03 AM
ongke0711 > 05-01-17, 11:21 AM
(04-01-17, 12:13 PM)Godspear Đã viết: [quote='ongke0711' pid='33950' dateline='1483501717']
...
Đưa cái Value của combobox vô string là được rồi.
- Cái combobox lọc theo Field phải lấy tên field làm index để tìm chứ không phải số ID. Comboxbox chỉ lấy cột [DateType] thôi, bỏ DateTypeID làm Row Source.
...
Godspear > 05-01-17, 11:50 AM
(05-01-17, 11:21 AM)ongke0711 Đã viết:(04-01-17, 12:13 PM)Godspear Đã viết: [quote='ongke0711' pid='33950' dateline='1483501717']
...
Đưa cái Value của combobox vô string là được rồi.
- Cái combobox lọc theo Field phải lấy tên field làm index để tìm chứ không phải số ID. Comboxbox chỉ lấy cột [DateType] thôi, bỏ DateTypeID làm Row Source.
...
Bạn đọc không kỹ bài tôi post.
Để đưa tên Field vô câu lệnh SQL (ví dụ: [FeasStartDate] BETWEEN #..# AND #...#) thì trị trả về từ combobox phải là tên Field. Theo file của bạn Row Source của combobox vẫn là 2 cột: DateTypeID, DateType-> trị trả về của combobox là [DateTypeID] là các số 1, 2, 3 chứ có phải tên Field đâu mà khi đưa vô câu lênh SQL nó hiểu? Nó sẽ ra như thế này: [1] BETWEEN #..# AND #...#
ongke0711 > 05-01-17, 12:14 PM
Godspear > 06-01-17, 06:39 AM
(05-01-17, 12:14 PM)ongke0711 Đã viết: Bạn làm tương tự như với cách làm lấy tên Field đưa vô câu lệnh SQL.
Tên table cần xuất sẽ là một biến. Biến này thay đổi theo combobox chọn tên Table
VD: đối với câu lệnh xuất Table ra excel
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "biến Tên Table", outputFileName , True
Bạn thay "biến Tên Table" bằng giá trị trả về của combobox (hay listbox) lấy tên Table.
biến Tên Table = Me.cboTenTable.Value
ongke0711 > 06-01-17, 09:59 AM