如果匹配则访问,查找另一个表中的数据

时间:2015-10-02 09:07:43

标签: ms-access lookup

我有一个联合查询,包含发票编号,供应商等发票数据。创建此查询是为了提供信用票据信息。

当我想为不同货币的发票提供汇率时,我的问题出现了。如果有RON货币,我需要检查发票的货币和日期,然后从另一个表中提供价值。

我将货币及其价值存储在另一个数据库中。我想使用Dlookup函数,但它只适用于当前数据库。不知道我能做什么。这里需要VBA还是可以避免?

编辑: 语法有问题:

查询:

SELECT [Faktury].InvoiceNumber, [Faktury].InvoiceDate, [Faktury].InvoiceCountry, [Faktury].Currency, DLookUp("Value","Tabela1","Currency1 =" & [Currency]) AS Wyr1
FROM [Faktury];

Dlookup语法:

DLookUp("Value";"Tabela1";"Currency1 =" & [Currency])

查询包含发票中使用Currency的列,Tabela1Currency1Value。我收到错误或没有显示任何值......

1 个答案:

答案 0 :(得分:3)

要访问其他数据库中的表格,您可以为其创建link

转到外部数据> 访问(尽管您可以使用任何其他类型的数据源)>选择数据库文件,然后通过创建链接表选择链接到数据源。

Link database

然后单击确定并选择要链接的表(即在数据库中使用)。现在,您可以在查询中使用表(在我的示例中为 Currency ),也可以像普通表一样使用VBA。例如,在VBA中使用DLookup

MsgBox DLookup("EuroValue", "Currency", "ID='" & InputBox("Currency?") & "'")

或在(SQL)查询中:

SELECT EuroValue FROM [Currency] WHERE ID='USD';

SELECT DLookUp("EuroValue","Currency","ID='USD'");