【发布时间】:2011-04-28 17:22:29
【问题描述】:
我有一个包含两个组合框的表单的访问数据库。一个组合框根据第一个组合框的选择过滤其选项。这很好用,但是 - 我有一个命令按钮,可以更改表单的记录源。我只知道如何根据一张表填充组合框。因此,当表单更改记录源时,组合框仍会填充来自第一个记录源的选项。如何创建一个查询来填充组合框选项,而不是一般在一个表上,而是基于当时表单的记录源?
【问题讨论】:
标签: ms-access
我有一个包含两个组合框的表单的访问数据库。一个组合框根据第一个组合框的选择过滤其选项。这很好用,但是 - 我有一个命令按钮,可以更改表单的记录源。我只知道如何根据一张表填充组合框。因此,当表单更改记录源时,组合框仍会填充来自第一个记录源的选项。如何创建一个查询来填充组合框选项,而不是一般在一个表上,而是基于当时表单的记录源?
【问题讨论】:
标签: ms-access
在更改 RecordSource 的同一命令按钮处理程序中,为每个组合框分配一个新的 RowSource。更好的是,在按钮处理程序调用的单独子中执行此操作。您的代码必须知道或能够弄清楚新的 RowSource 应该是什么以对应于新的 RecordSource。
编辑回复 cmets
RowSource 不必是 QueryDef 对象,它可以只是一条 SQL 语句:
Dim sSQL As String
sSQL = "select whatever from wherever"
comboBox.RowSource = sSQL
我在编辑的同时看不到 cmets,但我不明白你在第二个中要问什么......第二个,分开,看看 cmets,我想你'问它你可以将 RowSource 设置为表单的 RecordSource 属性。这让我觉得这是个坏主意——RecordSource 中的列可能比 RowSource 中要处理的列多得多,并且查询构造的基本原则是只请求所需的列。
【讨论】: