2016-01-22 53 views
0

我需要从未绑定表单上的用户输入创建报表。访问通过表单输入创建报表

我有两个表,其中的数据将来自于:

Table Name: RMAMaster 
Fields: 
RMANbr (5 digit number) 
DateIssued (date in MM/DD/YYYY format) 
CompanyName (text) 
CustNbr (6 digit number) 

Table Name: RMAItems 
Fields (that are relevant for the search): 
RMANbr (relationship established to RMAMaster.RMANbr) 
PartNbr (text) 
Warranty (Yes/No) 
Disposition (lookup from another table) 

形式(名称:RMA报告搜索)上有以下控件,这个想法是,用户可以在任意数量的填写领域。空白字段意味着“搜索所有字段”并填写字段将“搜索这些字段中的数据”。

CustNbr (being in the RMAMaster table) 
PartNbr (being in the RMAItems table) 
Date Opened <start> to <end> (being in the RMAMaster table) 
Disposition (being in the RMAItems table) 
Warranty (drop down with choice "Yes", "No" and "Any") (being in the RMAItems table) 

(可能性增加更多领域的用户认为合适的)

例如,我在零件号“G-5645”进入和离开“保修”为“任何”,它会搜索所有具有部件编号“G-5645”的RMA都将显示在报告中。报告将支付几分像这样:

RMAMaster.RMANbr RMAMaster.DateIssued RMAMaster.CustNbr, RMAMaster.CompanyName 
| 
|-- RMAItems.PartNbr RMAItems.Warranty RMAItems.Disposition 
|-- RMAItems.PartNbr RMAItems.Warranty RMAItems.Disposition 
|-- (possibly repeated depending on how many items the customer sent back 

我可以建立报告,但我不换我的头周围从形式RMA报告查询得到的数据,并建立过它的报告。我使用查询吗?调用报告的VBA代码?不知道我该如何去做这件事。任何帮助,将不胜感激。

谢谢!

回答

0

如果我了解你,你想'建立'一个基于搜索表单的报告。如果这是正确的,则不需要在运行时生成报告,而是基于查询组合最终要从RMAItems,RMAMaster表显示的字段来构建报告。此报告的记录来源应该是此查询。

接下来,从搜索表单中,用户将选择所有适用的字段并打开报告(可能是按钮单击)?此按钮单击将根据所选字段生成WHERE语句。 Rpt_Results将是您想要生成的报告,stLinkCriteria是您想要传递的标准。通过添加到stLinkCriteria来迭代建立链接标准。

Dim stLinkCriteria As String 
dim stDocName as String 


stDocName = "RPT_Results" 

stLinkCriteria = "[" & [PARTNumber] & "]=" & forms!FRM_Search.PartNumber 

... 

DoCmd.OpenForm stDocName, , , stLinkCriteria 
+0

因此,查询本报告....我只是让它选择报告的字段,我需要显示没有任何WHERE语句?那么使用'DoCmd.OpenForm'或'DoCmd.OpenReport'? – Jguy

+0

没错。报告本身不会有任何内置过滤器/声明。 where语句将根据搜索表单动态构建。 – RyanL