需要MS Access Form字段才能根据给定参数自动计算和分配费用

时间:2018-11-16 17:58:56

标签: sql ms-access access-vba

下面是我正在使用的模拟数据库。我有四个不同的表: Tbl_MainDatabase,Tbl_InsuranceCoverage,Tbl_MatterDetail Tbl_PaymentProcessing

Database

我想要的-

我希望我的表单确定剩余的保留期限(即适用政策的保留期限-相同索赔编号的发票总和

根据模拟数据库,为方便起见,所需答案应为[$ 2500-(300 + 700 + 355)]突出显示

我尝试过的事情

我通过以下查询使用了图形表示的帮助:

SELECT [Claim Number], Sum([Net Invoice Amount]) 
FROM [PaymentProcessing] 
GROUP BY [Claim Number]

此方法以图表的形式显示我到目前为止每个索赔编号已花费了多少。但是我想显示剩余金额。

感谢您的帮助:)

我使用Access已有一个月大。但是我正在努力学习

提前谢谢!

2 个答案:

答案 0 :(得分:2)

SELECT 
IC.[Retention Limit]-SUM([Net Invoice Amt]) AS Remaining, MD.[Claim Number], IC.[Retention Limit], IC.InsuranceID
FROM tbl_InsuranceCoverage IC
INNER JOIN tbl_MatterDetail MD ON ic.InsuranceID = MD.Policy
INNER JOIN tbl_PaymentProcessing PP ON MD.MatterDetailID=pp.MatterDetailID AND MD.[Claim Number]=pp.[Claim Number]
GROUP BY MD.[Claim Number], IC.[Retention Limit], IC.InsuranceID

查看是否可行。 Havent已对其进行了测试,但看起来很简单。您可以删除多余的列,但这会使您理解连接有点

答案 1 :(得分:1)

所有新用户使用的@Doug Coats的上述代码非常有效。 请确保:所有“外键”和“主键”都在“关系”属性中链接。 (在查询中执行此操作的一种方法是-右键单击查询,然后选择“设计视图”->再次在灰色空间上单击鼠标右键,然后选择“立即显示所有表”。将表的主键拖放到外部在另一个表上键入键->这将为查询目的在两者之间创建关系。

这还将防止查询中的数据重复,然后使用类似Doug Coats在上述 SQL视图

中的注释中所述的代码。
SELECT [Insurance Coverage].[Retention Unit]-Sum([Net Invoice Amount]) AS Remaining, [Matter Detail].[Claim Number], [Insurance Coverage].[Retention Unit], [Matter Detail].Policy
FROM (([Main Database] INNER JOIN [Matter Detail] ON [Main Database].[Database ID] = [Matter Detail].[Short Name]) INNER JOIN [Payment Processing] ON ([Matter Detail].[Matter Detail ID] = [Payment Processing].[Matter Detail ID]) AND ([Main Database].[Database ID] = [Payment Processing].[Short Name])) INNER JOIN [Insurance Coverage] ON [Matter Detail].Policy = [Insurance Coverage].[Insurance ID]
GROUP BY [Matter Detail].[Claim Number], [Insurance Coverage].[Retention Unit], [Matter Detail].Policy;

然后您可以以表单形式显示此查询-我仍在评估最好在组合框中显示此查询的最佳方法(不确定其他控件是否具有行源)

谢谢