使用Microsoft Access中另一个表的值计算字段

时间:2015-05-05 13:04:32

标签: mysql ms-access ms-access-2013 calculated-field

我在表中有一个计算字段,需要从另一个表中获取值,但在表达式生成器窗口中,它不允许我从其他表中选择值。 然后,我尝试从表中创建一个表单,并在源代码控制中放入我需要的函数,但它在表单中触发#Name?错误。

这是我放在源代码控制中的代码(Iff函数):

=IIf([Stato]="Vendita";[Costo ivato 1 pezzo]+(([Costo ivato 1 pezzo]/100)*[Provv_Vendita]![Costo]);[Costo ivato 1 pezzo]+(([Costo ivato 1 pezzo]/100)*[Provv_Prevendita]![Costo]))

[Stato][Costo ivato 1 pezzo]是同一个表格中的两个字段(称为Prodotti),其结构如下:

Stato      Costo Ivato 1 pezzo

Vendita         10
Prevendita      20

另一个表(称为Provvigioni)就像

Tipo        Costo

Vendita       1,5
Prevendita    5

Provv_VenditaProvv_Prevendita是两个选择我需要的值并且结构如下的查询

SELECT Provvigioni.Costo
FROM Provvigioni
WHERE Provvigioni.Tipo="Vendita";

有没有办法从另一个表中获取字段并在第一个表的函数中使用?

2 个答案:

答案 0 :(得分:5)

我不是百分之百确定你在这之后会有什么,但我认为最好先向你展示如何在查询中链接你的2个表格。

转到创建>查询设计:

enter image description here

添加两个表(双击它们):

enter image description here

然后关闭Show Table窗口;您现在应该在查询设计器中拥有表:

enter image description here

点击并从Stato拖动到Tipo;这应该在这些字段之间创建一个连接:

enter image description here

双击每个表格中的所有字段,以便它们显示在查询中:

enter image description here

在查询的下一个可用字段中,右键单击“字段”框并选择“缩放”:

enter image description here

IIF声明放在那里;在它前面加上一个字段名和冒号,例如:

enter image description here

...请注意,我已将您的IFF语句整理了一下,现在它显示为:

MyCalculatedField: IIf([Stato]="Vendita",[Costo ivato 1 pezzo]+(([Costo ivato 1 pezzo]/100)*[Costo]),[Costo ivato 1 pezzo]+(([Costo ivato 1 pezzo]/100)*[Costo]))

在“缩放”窗口中单击“确定”。点击“运行”查看查询结果:

enter image description here

以下是查询的结果(检查您的计算字段是否符合预期):

enter image description here

如果您希望此查询的结果填充表单中的数据,则应保存查询...

enter image description here

......并将其命名为:

enter image description here

然后您可以转到创建>表格设计:

enter image description here

在右侧的“属性表”中,转到“数据”标签,然后使用“记录来源”旁边的下拉菜单选择刚刚保存的查询:

enter image description here

如果你去设计>添加现有字段,您应该能够引入查询中的字段以便在表单中使用(双击或拖动它们以显示在您的表单上):

enter image description here

希望这有帮助!

答案 1 :(得分:0)

创建查询。

带上两张桌子并在Stato和Tipo之间创建一个连接。

现在您可以选择[Costo]和[Costo Ivato 1 pezzo]