Access中的SetFocus属性和SubForms出现问题

时间:2014-06-26 14:04:47

标签: vba access-vba ms-access-2007 ms-office setfocus

我有一个MainForm,上面有4个其他子表单。根据主窗体上的用户选择,这些子窗体是可见的和不可见的。可见/不可见的工作就像一个魅力,但我在设置焦点这些子表单时遇到了麻烦。我在做什么:

关于组合框的更改事件使子窗体可见,然后我想将焦点设置在该窗体上,但我不断收到运行时2110错误。我注意到这是因为我的主窗体上的所有字段都是必填字段,除非填充了这些字段,否则访问无法传输焦点(当主窗体中填充了所有字段时,setfocus工作)。现在在转到子窗体之前填满所有字段是违反直觉的,因为它不是输入数据的流动方式。

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

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

1 个答案:

答案 0 :(得分:1)

如果主表单绑定到记录源,则无法进行IMHO。每当Access将焦点从表单移开时,它的默认行为是保存更改(如果有)。因此,它总是需要一个有效的记录(即没有变化或有效的变化)。

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

唉,如果主表单和子表单之间没有任何关系(即你不需要PK),可能会使主表单不受约束并通过a保存它的内容。按钮单击以允许用户在切换到子表单之前输入一半数据。

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