access从表单输入创建报表

时间:2016-01-22 15:37:27

标签: vba ms-access

我需要根据Unbound表单上的用户输入创建报表。

我有两个表格,数据来自:

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代码?不知道我应该怎么做。任何帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分: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