Vba Access中的SetFocus属性和子窗体出现问题

Vba Access中的SetFocus属性和子窗体出现问题,vba,ms-access,ms-office,ms-access-2007,setfocus,Vba,Ms Access,Ms Office,Ms Access 2007,Setfocus,我有一个主窗体,上面还有4个子窗体。根据用户在主窗体上的选择,这些子窗体是可见和不可见的。“可见/不可见”功能很有魅力,但我在设置这些子窗体的焦点时遇到了问题。我在做什么: 当组合框的更改事件使子窗体可见时,我想将焦点设置在该窗体上,但一直收到运行时2110错误。我注意到这是因为我的主窗体上的所有字段都是必填字段,access无法转移焦点,除非这些字段已填充(当主窗体中的所有字段都已填充时,setfocus工作)。现在,在转到子窗体之前填充所有字段是违反直觉的,因为这不是要输入的数据的流动方式

我有一个主窗体,上面还有4个子窗体。根据用户在主窗体上的选择,这些子窗体是可见和不可见的。“可见/不可见”功能很有魅力,但我在设置这些子窗体的焦点时遇到了问题。我在做什么:

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

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


我们将一如既往地感谢您的帮助!谢谢

如果主窗体绑定到记录源,则这是不可能的。每当Access将焦点从窗体移开时,它的默认行为是保存更改(如果有)。因此,它将始终需要有效记录(即无更改或有效更改)

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

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


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

是的,在搜索了很多之后,我得出了相同的结论。如果我想在有约束的窗体和子窗体之间切换,我必须创建未绑定的文本框。哦,好吧,让我们看看我能做什么!谢谢