关于vba:Access中的SetFocus属性和SubForms出现问题

Trouble with SetFocus property and SubForms in Access

我有一个MainForm,上面还有其他4个子窗体。这些子窗体基于用户在主窗体上的选择是可见的还是不可见的。可见/不可见的工作原理很吸引人,但是我无法将重点放在这些子窗体上。我在做什么:

在组合框的更改事件上使子窗体可见,然后我想将注意力集中在该窗体上,但是我一直遇到运行时2110错误。我注意到这是因为主窗体上的所有字段都是必填字段,除非填写了这些字段(当将所有字段都填写在主窗体中时,setfocus才起作用),访问权限无法转移焦点。现在,在进入子表单之前填写所有字段是违反直觉的,因为输入的数据不是如何流动的。

所以我的问题是-----在必须填写主表单中的所有必填字段之前,如何让我的焦点转移到子表单!?

所有帮助一如既往地受到高度赞赏!谢谢!


恕我直言,如果主表单绑定到记录源则不可能。只要Access将焦点从表单移开,它的默认行为就是保存更改(如果有)。因此,它将始终需要有效的记录(即无更改或有效更改)。

如果子窗体记录具有与主窗体的记录源具有外键关系的记录源,则您还需要已创建主窗体的PK-通常是保存时生成的序列。如果没有记录,则没有作为FK传递的PK。

A,如果主窗体和子窗体之间没有关系(即您不需要PK),则可能是使主窗体取消绑定并通过单击按钮保存其内容,以便允许用户在切换到子表单之前输入一半的数据。

当然,您必须处理用户在子表单中插入数据,然后不完成主表单中的字段的情况。