0

我确信这个问题之前已经被问过并得到了回答,但是我的 Google-fu 让我失望了。

我有一个表单,用户可以在其中通过组合框选择记录,效果很好。但是,当用户删除记录、刷新记录或打开表单时,它会自动跳回我表中的第一条记录。理想情况下,我想让它显示“请选择记录或创建新记录”的内容,禁用所有其他字段。现在,一个潜在的解决方案实际上是将记录号 1命名为“请选择...”,然后编写代码来禁用这些字段中的每一个,但这似乎不是一个理想的解决方案,因为手动灰化看起来很不稳定。此外,无法保证未来具有有限访问经验的管理员不会意外删除第一条记录。所以,我的问题是:

1)有更好的解决方案吗?解决这个问题的好/标准方法是什么?
2)如果没有,我可以迭代禁用表单上的每个字段吗?还是我必须按名称引用每个?

提前感谢您的帮助!

编辑:像往常一样,写下这个问题帮助我自己形成了解决方案。我意识到如果显示第一条记录,我可以将 Me.AllowDeletions 和 Me.AllowInsertions 设置为 false。但是,这些字段仍然没有变灰,您可以更改我的选项卡控件上的选项卡(甚至有事件处理程序吗?)并且仍然存在创建愚蠢的虚拟记录的问题。任何想法将不胜感激。

4

1 回答 1

1

您可以使用循环禁用所有控件。最好设置要禁用的控件的标记属性。

For Each ctl In Me.Controls
   If ctl.tag = "problem" Then
       ctl.Enabled=false
   End If
Next

当打开表单或删除记录时,您可以如上所述更改启用或锁定的属性,并使合适的标签可见。我猜你有一个刷新按钮,它可以调用相同的过程。

于 2012-09-10T14:25:38.643 回答