我正在使用Access数据库来存储/组织每个项目的所有部分。我有2个组合框设置并正常工作:第一个是客户名称,一旦选择,第二个填充该客户的序列号列表(项目ID号)。每个项目都有几个与之关联的组件,需要打印出报告。
问题在于,组件的大部分细节都列在另一个单独的表中,因此组件编号必须与其所在的表交叉引用,然后必须提取该报告。
这是组合框从中提取信息的表格。首先是客户名称,然后是与该客户关联的序列号。从那里,我想要USER3表中的报告以及相关的CATALOG号码。
例如,以下是我的组合框选择:
客户名称 - 选择CIPLA会给我一个EF-1092,96或99
的序列号我接下来选择序列号EF-1096 - 其编号为EDF50-00170(在USER3的MV表中),EDF12-01114(在FIL表中)和EDF12-00532(未分配表)
因此,对于EDF50-00170, 这里是MV表 ,包含我想要的所有信息(MV报告自动包含):
以下是相应的报告:
现在是EDF50-00170,EDF12-01114和EDF12-00532报告需要自动从系统中拉出而不是我必须手动查找所有内容的棘手部分。这将分别是手动阀(如上所示),过滤器和杂项报告,其中包含其中所有类别的目录号。
我已经将所有表连接到各自的报告中,例如以前的组合框设置,我假设这个新表必须类似:
If partnumberselect.RowSource = "MV" Then
DoCmd.OpenReport "RPTManualValve", acViewPreview, , "CATALOG = '" & Me.partnumberselect.value & "'"
总而言之,我需要一组与特定序列号相关联的报告。先感谢您!对不起,这是一个冗长的问题。
答案 0 :(得分:1)
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"