首先,感谢您抽出时间审阅我的帖子并提供建议。我有一个包含以下模式的数据库:
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
答案 0 :(得分:1)
如果我正确理解你的困境,你需要这样的事情:
"SELECT ProgramTitle FROM tblPrgFund WHERE FundTitle = " & Me.FundCode
或(如果您想使用FundCode
,而不是FundTitle
)
"SELECT ProgramTitle FROM tblPrgFund WHERE FundCode = " & Me.FundCode
注意:这假设您的数据中的FundCode
和FundTitle
唯一值。但你不应该抓住ProgramId
,除非你打算以某种方式使用它。
话虽这么说,我强烈建议您使用更新后而不是 GotFocus 作为此类更新的事件。由于这是一个下拉框,我会假设您不希望更新只是从组合框的初始选择开始,而是在选择完成后开始。