在宏构建器的条件中访问2013主键

时间:2015-04-08 15:55:01

标签: ms-access ms-access-2013

我搜索了网站和本网站,但没有看到我特定问题的答案。我想根据当前记录(简单)生成报告,但主键为Where Condition(不那么容易)。我希望尽可能使用宏构建器并避免使用VBA。

在宏构建器中,我可以通过输入" [First Name]=[Reports]![Contracts]![First Name]"轻松完成此操作。在何处条件下。 ' First Name'只是我的主表和报告中的常规字段。但是,客户名称可以轻松更改,因此我希望我可以使用主键" Id",因为这应该是更可靠和不变的价值。但是,如果我尝试使用" [Id]=[Reports]![Contracts]![Id]",我会得到整个'输入参数'对话框(即使我输入了Id值,它只输出每条记录)。

为什么这适用于First Name字段而不是Id字段?是因为Access不喜欢使用主要条件进行Where条件?如果我使用表达式构建器,Access将识别我的报告中存在的Id字段(因此,我认为)可用于此目的。我假设我错过了等号左边的东西?我和我一起试过。和我!在括号之前和之内,但没有。我还尝试了像#34; [Tables]![Main]![Id]=[Reports]![Contracts]![Id]"和" [Main]![Id]=[Reports]![Contracts]![Id]"。

1 个答案:

答案 0 :(得分:0)

您可以尝试创建临时变量并将其传递给打开的报表操作。

例如,我们假设您要在用户点击字段'名字'对于数据表视图中的记录。您的On Click嵌入式宏将是:

SetTempVar
    Name tmpID
    Expression = [Id]
OpenReport
    Report Name Contracts
    View Report
    Filter Name
    Where Condition = [Id]=[TempVars]![tmpID]
    Window Mode Dialog
RemoveTempVar
    Name tmpID