访问连接表SQL

时间:2018-05-16 00:16:54

标签: ms-access access-vba ms-access-2013

首先,感谢您抽出时间审阅我的帖子并提供建议。我有一个包含以下模式的数据库:

tblPR:
PRID
Title
Amount
Status

tblProgram:
ProgramID
ProgramCode
ProgramTitle

tblFund:
FundCodeID
FundCode
FundTitle

前两张表之间存在多对多的关系。因此,我设置了一个联结表。

tblPrgFund:
ProgramCode
ProgramTitle
FundCode
FundTitle

(这些是它们各自表的查找字段,所以我相信Access也会提取它们的密钥,这将是ids)

现在主窗体设置为tblPR,子窗体设置为tblPrgFund。 FundTitle和ProgramTitle分别在子表单中有两个组合框。要求是根据用户选择的FundTitle过滤ProgramTitle。

为此,我在VBA中尝试了以下SQL命令,用于程序标题组合框的getfocus事件。但它只显示ProgramID而不显示ProgramTitle。我甚至认为ids是正确的tbh。

"SELECT ProgramID, ProgramTitle FROM tblPrgFund WHERE FundCode = " & Me.FundCode

1 个答案:

答案 0 :(得分:1)

如果我正确理解你的困境,你需要这样的事情:

"SELECT ProgramTitle FROM tblPrgFund WHERE FundTitle = " & Me.FundCode

或(如果您想使用FundCode,而不是FundTitle

"SELECT ProgramTitle FROM tblPrgFund WHERE FundCode = " & Me.FundCode

注意:这假设您的数据中的FundCodeFundTitle 唯一值。但你不应该抓住ProgramId,除非你打算以某种方式使用它。

话虽这么说,我强烈建议您使用更新后而不是 GotFocus 作为此类更新的事件。由于这是一个下拉框,我会假设您不希望更新只是从组合框的初始选择开始,而是在选择完成后开始。