MS Access过滤器表单可打开特定记录的报告

斯蒂芬森

我正在尝试创建一个具有多个组合框和文本框的ReportSearch窗体,该窗体将允许用户缩小报表上显示的结果。并非所有字段都必须在搜索中使用。

单击时,以下代码将要求输入所使用的特定ID的参数值。如果我仅单击“确定”而不在MsgBox中输入任何内容,则该报告将打开而没有记录。

Private Sub cmdFilter_Click()
Dim strWhere As String
Dim lngLen As Long

Const conJetDate = "\#mm\/dd\/yy\#"

If Not IsNull(Me.cboSearchJob) Then
   strWhere = strWhere & "(Job.id = " & Me.cboSearchJob & ") AND "
End If

If Not IsNull(Me.cboSearchEmployee) Then
   strWhere = strWhere & "(Employee.ID = " & Me.cboSearchEmployee & ") AND "
End If

If Not IsNull(Me.cboSearchService) Then
   strWhere = strWhere & "(Service.ID = " & Me.cboSearchService & ") AND "
End If

If Not IsNull(Me.tboStartDate) Then
    strWhere = strWhere & "(DateWorked >= " & Format(Me.tboStartDate, conJetDate) & ") AND "
End If
If Not IsNull(Me.tboEndDate) Then
   strWhere = strWhere & "(DateWorked < " & Format(Me.tboEndDate + 1, conJetDate) & ") AND "
End If

lngLen = Len(strWhere) - 5
If lngLen <= 0 Then
   MsgBox "No Results", vbInformation, "No Search Available."
Else
    strWhere = Left$(strWhere, lngLen)

    DoCmd.OpenReport "JobReport", acViewPreview
    Reports!JobReport.Filter = strWhere
    Reports!JobReport.FilterOn = True

   End If


End Sub

对于我正在使用的报告

  SELECT [Employees].[FirstName] & " " & [Employees].[LastName] AS EmployeeName, Jobs.JobName, Equipment.Model, Service.Service, Labor.Labor, EmployeeWorkLog.LaborHours, EmployeeWorkLog.EquipmentHours, EmployeeWorkLog.Notes, EmployeeWorkLog.DateWorked, Service.ID
FROM Service RIGHT JOIN (Labor RIGHT JOIN (Jobs RIGHT JOIN (Equipment RIGHT JOIN (Employees RIGHT JOIN EmployeeWorkLog ON Employees.ID = EmployeeWorkLog.EmployeeID) ON Equipment.ID = EmployeeWorkLog.EquipmentID) ON Jobs.ID = EmployeeWorkLog.JobID) ON Labor.ID = EmployeeWorkLog.LaborID) ON Service.ID = EmployeeWorkLog.ServiceID
ORDER BY [Employees].[FirstName] & " " & [Employees].[LastName];

在这一点上,我完全不知所措。

显然,这里我缺少一些东西。让我知道我需要以哪种方式来修改此代码,以使其打开基于报表ReportSearch过滤的报表JobReport。

谢谢。

其他

报表不像表单那样动态,您无法在打开报表后对其进行过滤。在打印预览中打开报表时,它会读取其数据,进行布局和格式设置,然后完全是静态的。

要打开包含过滤数据的报告,请使用WhereCondition参数DoCmd.OpenReport

DoCmd.OpenReport "JobReport", acViewPreview, WhereCondition:=strWhere

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MS Access表格过滤器下拉菜单

来自分类Dev

MS Access 使用 ComboBox 选择过滤器

来自分类Dev

MS Access 2016 - 基于当前记录的打开报告

来自分类Dev

MS Access 2007使用VBA将单独的表单打开到特定记录

来自分类Dev

打开后使用代码过滤MS Access表单

来自分类Dev

打开后使用代码过滤MS Access表单

来自分类Dev

禁用MS Access中的过滤/未过滤和切换过滤器按钮

来自分类Dev

MS Access,刷新嵌入在表单中的报告

来自分类Dev

MS Access,刷新嵌入在表单中的报告

来自分类Dev

MS Access报告排序

来自分类Dev

MS Access报告问题?

来自分类Dev

热键以打开特定的应用程序窗口(MS团队)

来自分类Dev

MS Access-快速过滤子窗体,然后将过滤器传递给报表

来自分类Dev

形成特定报告所需的 MS Access 帮助

来自分类Dev

MS Access VBA - 使用日期过滤表单

来自分类Dev

VBA 全屏打开 MS Access 表单

来自分类Dev

MS Access 过滤器并根据按钮使多个复选框为真/假

来自分类Dev

如何根据过滤器查询返回具有特定 ms-DS-ConsistencyGuid 的用户

来自分类Dev

MS Access:如何过滤非报告字段上的报告?

来自分类Dev

打开MS Access表单以获取新记录,但可以编辑以前的记录

来自分类Dev

MS Access报告格式-分组

来自分类Dev

在MS Access中打印报告

来自分类Dev

MS Access-表单尝试在打开时创建新记录,并记录有关连续表单的跳转

来自分类Dev

MS Access 中的总计记录

来自分类Dev

MS Access Form:将 Allow Edit 设置为 No,然后使用组合框应用过滤器

来自分类Dev

在MS Access 2010中对表单上的记录进行排序

来自分类Dev

使用 MS Outlook 打开 MS Access 和 Fire Macro

来自分类Dev

MS Access VBA IF()

来自分类Dev

与MS Access建立连接

Related 相关文章

热门标签

归档