访问:搜索多个表并返回唯一客户表单

时间:2015-12-09 22:14:48

标签: sql ms-access union

我是一个有数据库的完整菜鸟,但我设法为我经营保险代理的朋友设计一个。我差不多完成了,但我只需要能够进入搜索领域。

基本上,我有一个客户表格,其中包含所有客户的联系方式,然后显示不同类型的保险单(电机,家庭,医疗等)的子表格客户表格链接到客户表格,子表格链接到表格(电机,家庭,医疗等,每个子表格一个表格)所有表格都通过字段CustID

链接

我需要做的是搜索每个子表单以获取唯一的策略号,然后返回与该策略号相关的客户表单。或者解释;在所有表格(电机,家庭,医疗等)中搜索保单编号,找到CustID,然后打开与该CustID相关的客户表格。

任何帮助都会受到赞赏,因为我花了几天的时间在网上搜索查询和联合查询,并且没有找到任何可以显示表单的响应。我显然缺少一些东西

2 个答案:

答案 0 :(得分:0)

我有一个菜单表格(交换机),我想从这里运行搜索,有一个按字母排序的表格显示所有客户,我添加了一个按钮,允许我选择任何一个客户并显示客户记录形式。

客户记录表格显示所有客户详细信息,包括显示他已购买的任何政策的标签子表格。

我附上了这两种形式的屏幕截图。除了菜单表格上的政策编号查询外,表格上的所有内容都完美无缺:当我输入有效的保单编号时,它会返回一个新的(空白)客户记录表格,而不是具有该保单编号的客户记录。

我编写了以下查询,返回正确的结果:

查询1 : SELECT Customer_Details.CustID,Motor.Policy_Quote_No FROM Customer_Details RIGHT JOIN Motor ON Customer_Details.CustID = Motor.CustID 联盟 SELECT Customer_Details.CustID,Home.Policy_Quote_No FROM Customer_Details RIGHT JOIN Home ON Customer_Details.CustID = Home.CustID 联盟 SELECT Customer_Details.CustID,Liability.Policy_Quote_No FROM Customer_Details对Customer_Details.CustID = Liability.CustID的正确联合责任 联盟 SELECT Customer_Details.CustID,Marine.Policy_Quote_No FROM Customer_Details RIGHT JOIN Marine ON Customer_Details.CustID = Marine.CustID 联盟 SELECT Customer_Details.CustID,Medical.Policy_Quote_No FROM Customer_Details RIGHT JOIN Medical ON Customer_Details.CustID = Medical.CustID UNION SELECT Customer_Details.CustID,Pet.Policy_Quote_No FROM Customer_Details RIGHT JOIN Pet ON Customer_Details.CustID = Pet.CustID;

查询2: SELECT Customer_Details.CustID,UnionQueryPolicyNo.Policy_Quote_No FROM UnionQueryPolicyNo INNER JOIN Customer_Details ON UnionQueryPolicyNo.CustID = Customer_Details.CustID WHERE(((UnionQueryPolicyNo.Policy_Quote_No)= [Forms]![Menu]![Text8]));

所以我认为这只是按钮的代码,目前我作为一个宏:

行动:打开表格 表格名称:CustomerBase 查看:表格 其中:[PolicyLookuponUnionQuery]![CustID] = [Customer_Details]![CustID]

CustomerBase Form

Menu Form (Switchboard)

我希望我能够更好地解释这一点并感谢你的帮助。

答案 1 :(得分:0)

谢谢Wayne试图提供帮助,最后我一直在努力解决这个问题。

我想报告我做了什么。我已经在下面展示了我的所有步骤,你永远不知道这可能会帮助其他用户:

我创建了一个Union查询,它从我的不同策略表中一起调用所有策略编号:

SELECT Customer_Details.CustID,Motor.Policy_Quote_No FROM Customer_Details RIGHT JOIN Motor ON Customer_Details.CustID = Motor.CustID 联盟 SELECT Customer_Details.CustID,Home.Policy_Quote_No FROM Customer_Details RIGHT JOIN Home ON Customer_Details.CustID = Home.CustID 联盟 SELECT Customer_Details.CustID,Liability.Policy_Quote_No FROM Customer_Details对Customer_Details.CustID = Liability.CustID的正确联合责任 联盟 SELECT Customer_Details.CustID,Marine.Policy_Quote_No FROM Customer_Details RIGHT JOIN Marine ON Customer_Details.CustID = Marine.CustID 联盟 SELECT Customer_Details.CustID,Medical.Policy_Quote_No FROM Customer_Details RIGHT JOIN Medical ON Customer_Details.CustID = Medical.CustID UNION SELECT Customer_Details.CustID,Pet.Policy_Quote_No FROM Customer_Details RIGHT JOIN Pet ON Customer_Details.CustID = Pet.CustID;

我创建了一个Combo框(Combo41),其源代码是我的Union Query(UnionQueryPolicyNo) 使用0cm调整列数和列宽以隐藏“客户ID”列

然后创建了“选择政策号”按键 使用以下“点击”事件代码:

私有子Command43_Click() 错误GoTo Err_Command43_Click     Dim stDocName As String     Dim stLinkCriteria As String     stDocName =“CustomerBase”     stLinkCriteria =“[CustID] =”&我![Combo41]     DoCmd.OpenForm stDocName ,,, stLinkCriteria Exit_Command43_Click:     退出子 Err_Command43_Click:     MsgBox Err.Description     继续Exit_Command43_Click 结束子

现在,我可以在组合框中输入策略编号,然后单击“选择策略否”按钮,它将显示与该策略编号相关的客户表单。 Yey !!

这样你就可以看到我附加裁剪截图的代码的布局。

UnionQueryPolicyNo

Select Policy No. Button Event Code