Excel VBA:组合框之前,之后或更改事件自动更新另一个?

时间:2015-04-16 14:13:07

标签: excel excel-vba events combobox beforeupdate vba

在我的用户形态上,我有几个组合框:承包商,产品,类别,单位。所有这些都填充了来自MS SQL数据库(2012)的数据,然后userform执行存储过程并插入新记录。我想构建一个动态表单,其中组合框根据之前组合框的选择自动更新。

当从列表中选择承包商时,我希望产品列表缩小并仅显示与承包商链接的产品(使用SELECT语句)。然后我希望根据所选产品自动填写类别和单位。 当然,例如,当输入新产品时,类别中的完整列表和单元组合框将显示,因此这将需要if语句。

我的问题是使用哪个事件?更新或更改事件之前,之后?或者也许还有其他选择吗?

我做了一些关于这些事件的阅读,似乎改变事件不是一个好的选择: “避免创建两个或多个具有相互影响的Change事件的控件 - 例如,两个相互更新的文本框” 但由于我之前/之后没有使用过,我感觉不太好。如果到目前为止我所做的任何代码可能都有用,请告诉我,我会编辑帖子。

感谢您提出任何建议。

1 个答案:

答案 0 :(得分:0)

听起来改变的方向只是一种方式。根据您的描述,您不会遇到两个组合框互相改变的问题,因为承包商会更改产品,产品会更改类别和单位。只要产品的_Change事件不会更改承包商(可能触发其_Change事件,导致一系列_Change事件调用),您就可以了。同样的产品 - 类别和产品 - 单位关系。