أحمد فتحى قام بنشر أبريل 29, 2014 قام بنشر أبريل 29, 2014 السلام عليكم جميعا استخدم الكود بالاسفل ليعطي تقريرا لسجلات بين تاريخين ويعمل بشكل طيب الا انه عند اعطائه قيمة تاريخ واحد فى حقل txtStartDate يعطى السجلات اعتبارا من هذا التاريخ ، وليس التاريخ المحدد فقط فحاولت استبدال علامة =< بعلامة = واعطانى السجلات المحددة الا انه من ناحية اخرى لم يعطينى اى سجلات عندما اسجل تاريخين فى الحقلين txtStartDate ، txtEndDate فارجو المساعدة فى تعديله On Error GoTo Err_Handler 'Remove the single quote from start of this line once you have it working. 'Purpose: Filter a report to a date range. 'Documentation: http://allenbrowne.com/casu-08.html 'Note: Filter uses "less than the next day" in case the field has a time component. Dim strReport As String Dim strDateField As String Dim strWhere As String Dim lngView As Long Const strcJetDate = "\#mm\/dd\/yyyy\#" 'Do NOT change it to match your local settings. 'DO set the values in the next 3 lines. strReport = "MainReport5Habs" 'Put your report name in these quotes. strDateField = "[HabsEnd]" 'Put your field name in the square brackets in these quotes. lngView = acViewPreview 'Use acViewNormal to print instead of preview. 'Build the filter string. If IsDate(Me.txtStartDate) Then strWhere = "(" & strDateField & " >= " & Format(Me.txtStartDate, strcJetDate) & ")" End If If IsDate(Me.txtEndDate) Then If strWhere <> vbNullString Then strWhere = strWhere & " AND " End If strWhere = strWhere & "(" & strDateField & " < " & Format(Me.txtEndDate + 1, strcJetDate) & ")" End If 'Close the report if already open: otherwise it won't filter properly. If CurrentProject.AllReports(strReport).IsLoaded Then DoCmd.Close acReport, strReport End If 'Open the report. Debug.Print strWhere 'Remove the single quote from the start of this line for debugging purposes. DoCmd.OpenReport strReport, lngView, , strWhere Exit_Handler: Exit Sub Err_Handler: If Err.Number <> 2501 Then MsgBox "Error " & Err.Number & ": " & Err.Description, vbExclamation, "Cannot open report" End If Resume Exit_Handler 1
Bluemind قام بنشر مايو 1, 2014 قام بنشر مايو 1, 2014 جرب الكود التالي بعد التعديل تم اضافه سطرين من الكود على مربع TXTENDDATE If Not IsNull(Me.txtEndDate) Then 'Less than the next day. strWhere = strWhere & "([EnteredOn] < " & Format(Me.txtEndDate + 1, conJetDate) & ") AND " Else strWhere = strWhere & "([EnteredOn] = " & Format(Me.txtStartDate, conJetDate) & ") AND " End If
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.