|
|
1
1
为了补充这一点,我将提供两种方法,一种是推荐的,另一种不是。 方法1:如果已将表单绑定到整个数据表(这是不推荐的方法),则可以使用组合框向导导航到请求的记录,但我不建议在Access的最新版本中使用它: a、 它不允许您在创建代码之前正确命名组合框。 b、 代码就是错了。 以下是我刚刚在测试数据库中生成的代码:
这在很多方面都是错误的,这很了不起。代码应该是这样的:
如果RecordsetClone已经存在,则无需克隆窗体的记录集。 当您可以直接使用预先存在的对象时,没有理由使用对象变量。 在离开记录之前需要检查脏记录,因为如果不强制保存,保存过程中的错误可能会导致数据丢失。 但更好的方法是: 方法2:使用组合框更改窗体的底层记录源。 组合框的AfterUpdate事件如下所示:
现在,这只在第一次起作用,就像在第二次重置Recordsource时一样,最终会出现两个WHERE子句,这是不好的。有两种方法: a、 假设窗体在没有WHERE子句的情况下打开,将打开的recordsource值存储在窗体的OnLoad事件中的模块级变量中:
在模块级,相应地定义strRecordsource:
然后,在组合框的AfterUpdate事件中,您有以下内容:
现在,如果你的表单以一个已经定义的WHERE子句打开,它会变得更复杂,但我不会深入讨论这个问题,并把它作为一个练习留给读者,告诉他们最好的方法可能是什么。 |
|
|
2
0
我假定您已经为每个组合框设置了行源。只要你没有将组合框限制在该列表中;它应该显示您在该列中存储的内容。 但是,如果组合框更改了每行的列表,则可以在记录的OnCurrent事件或字段的GotFocus事件中执行类似操作:
|
|
|
3
0
在重读你的问题之后,我想我明白了你想要实现的目标。你在正确的轨道上
一种可能性是,每当用户在组合框中选择一项时,切换到新记录。你可以在组合框的
我将使用一个简单的例子:假设你有一个
在
正如David W.Fenton在评论中指出的,您可以缩短以下行:
为此:
或者只是:
因为在本例中,组合框的默认值将是当前
|