ساخت فرم:
برای فیلتر تاریخ یک کمبو باکس در header فرم میگذاریم و
با یک کوئری همه تاریخ های بازرسی رو گروه بندی میکنیم و بعنوان رکورد سورس اون میگذاریم:
SELECT FORMAT(InspectionDate,"0000/00/00") FROM Inspects GROUP BY InspectionDate;
date.png
در بخش detail فقط یک سابفرم خالی میگذاریم (results).
پس از انتخاب تاریخ، اول جدول نتایج (results) رو پاک میکنیم (در صورت وجود)،
بعد tempvar تاریخ بازرسی رو مقدار میدیم،
بعد یک make table query اجرا میکنیم که نتایج crosstab query رو در جدول results بریزه،
و در آخر source object سابفرم رو به جدول results ست میکنیم.
Option Compare Database
Option Explicit
Private Sub InspectionDate_AfterUpdate()
Me.Results.SourceObject = ""
If DCount("ID", "MSysObjects", "Type=1 AND Name='Results'") > 0 Then
DoCmd.DeleteObject acTable, "Results"
End If
TempVars("InspectionDate") = Replace(Me.InspectionDate.Value, "/", "")
DoCmd.RunSQL "SELECT * INTO Results FROM InspectionsCrossTabQRY"
Me.Results.SourceObject = "Table.Results"
End Sub
Private Sub InspectionDate_NotInList(NewData As String, Response As Integer)
Me.InspectionDate.Undo
Me.InspectionDate.Dropdown
Response = acDataErrContinue
End Sub