2014-11-08 77 views
0

我已经在ms access 2010中编写了一个sql查询,该查询计算每月查询,并输入月份参数。它返回2列 - 月份名称和该月份的每月总查询。MS Access 2010将计数结果链接到单个记录

SELECT Format([DateOfEnquiry],"mmmm") AS [Month], Count(T_Enquiry.[DateOfEnquiry]) AS TotalMonthlyEnquiries 
FROM T_Enquiry 
GROUP BY Format([DateOfEnquiry],"mmmm") 
HAVING (((Format([DateOfEnquiry],"mmmm"))=[Enter full name of month])); 

运行此查询后,是不是就有可能在TotalMonthlyEnquiries列点击的价值,并获得运行另一个查询它返回对应于该值的个体记录(领域,如FamilyNameFirstNameEmailPhoneDateOfEnquiry from T_Enquiry)?如果可能的话,ms access 2010将如何实现?

回答

0

在2007年做过这件事,但如果不相同,应该非常相似。用上面的方法创建一个查询(本例中为Query1)。创建另一个查询,它将您要从T_Enquiry(FamilyName,FirstName,Email,Phone,DateOfEnquiry)获取的详细数据作为Query2抓取。

基于Query1创建数据表表单(本例中称为frmQuery1) - 我只是使用表单向导来节省时间。打开表单进行编辑,然后右键单击TotalMonthlyEnquiries文本框并转到Properities。在格式选项卡,设置DisplayAsHyperlink为Always(这将指示用户,他们可以点击链接上的OnClick甚至在文本框中,输入以下代码:。

Private Sub TotalMonthlyEnquiries_Click() 

    DoCmd.OpenForm "frmQuery2", acFormDS 

    Forms!frmQuery2.Filter = "Format([DateOfEnquiry], ""mmmm"") = '" & Me![Month] & "'" 
    Forms!frmQuery2.FilterOn = True 

End Sub 

保存frmQuery1创建另一个WIZARD- (详细数据),并将其保存为frmQuery2

现在打开frmQuery1 - 你将被要求提供一个月,当你这样做和数据表出现时,量化应该超链接。超链接和frmQuery2应该打开与有关月份的数据。

只是一个简单的开放并且将值(在本例中为月份名称)从第一个表单传递到第二个表单作为过滤器参数。有更复杂的方法来做到这一点,但这是最简单的方法之一。祝你好运。

+0

在Access 2010中完美地工作。这是一个非常简单的过程。我现在在整个数据库中都有其他可能的用法。 – Novo003 2014-11-11 23:01:19

+0

很高兴能满足您的需求。如果是这样,请标记为答案,以便如果另一个人来了,他们知道它的工作,并可以实施! – VBlades 2014-11-12 20:31:50

+0

在使用此技术进行测试过程中,遇到以下情况:1.在FamilyName字段中单击超链接名称时,Access 2010会提示用户输入参数值。 2.如果单击“确定”或输入参数,则代码正确执行。 3.如果单击“取消”,MS Visual Basic将返回错误消息“运行时错误2501. OpenForm操作已取消”如果用户单击时是否存在“Else”语句或其他代码以取消该过程'取消'?那会是什么? – Novo003 2014-11-18 06:19:08

相关问题