根据组合框选择打开正确的报告

Open correct reports based off of combobox selections

我正在使用 Access 数据库,以便 store/organize 每个项目的所有部分。我有 2 个组合框设置并正常工作:第一个是客户名称,一旦选择,第二个将填充来自该客户的序列号(项目 ID 号)列表。每个项目都有几个与之关联的组件,其中需要打印报告。

问题是大多数组件的详细信息都列在另一个单独的 table 中,因此组件编号必须与其所在的 table 交叉引用,然后必须撤回报告。

这是组合框从中提取信息的 table。首先是客户名称,然后是与该客户关联的序列号。从那里,我想要来自 USER3 table 的报告以及相关的 CATALOG 编号。

例如,这是我的组合框选择:

CustomerName - 选择 CIPLA 会给我 EF-1092,96 或 99 的序列号

接下来我选择序列号 EF-1096 - 它有目录号 EDF50-00170(在来自 USER3 的 MV table 中)、EDF12-01114(在 FIL table 中)和 EDF12 -00532(未分配 table)。

所以,对于 EDF50-00170,这是 MV Table,其中包含我想要的所有信息(MV 报告自动包含):

这是相应的报告:

现在是棘手的部分,EDF50-00170、EDF12-01114 和 EDF12-00532 报告需要自动从系统中提取,而不是我必须手动查找所有内容。这将分别是手动阀(如上所示)、过滤器和杂项报告,其中包含该类别的所有目录编号。

我已经将所有 table 连接到它们各自的报告,例如来自以前的组合框设置的这个,我假设这个新的必须是相似的:

 If partnumberselect.RowSource = "MV" Then
     DoCmd.OpenReport "RPTManualValve", acViewPreview, , "CATALOG = '" & Me.partnumberselect.value & "'"

总而言之,我需要一组与特定序列号关联的报告。先感谢您!对不起,这是一个冗长的问题。

Dim ThisDB As DAO.Database
Dim d As DAO.Recordset
Dim q As String

Set ThisDB = CurrentDb
q = "SELECT CATALOG, User3 FROM [mainSourceTableName] WHERE SerialNumber='" & Me.[SerialNumberSelected] & "'"
Set d = ThisDB.OpenRecordset(q, dbOpenDynaset)
d.MoveFirst
Do While Not d.EOF
    Select Case d!User3
        Case "MV"
            Rem Print MV Report for d!CATALOG
        Case "FV"
            Rem Print FV Report for d!CATALOG
        Rem same for other tables/reports
        End Select
    d.MoveNext
  Loop  
d.Close

带有消息框的预览示例:

DoCmd.OpenReport "RPTManualValve", acViewPreview, , "CATALOG = '" & d!CATALOG & "'"
MsgBox "Test"
DoCmD.Close acReport,"RPTManualValve"