Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 使access子窗体仅使用按钮单击填充_Ms Access_Ms Access Forms - Fatal编程技术网

Ms access 使access子窗体仅使用按钮单击填充

Ms access 使access子窗体仅使用按钮单击填充,ms-access,ms-access-forms,Ms Access,Ms Access Forms,我很生气,因为我以前做过这件事,但记不得了。我有一个Access数据库,其中有链接到SQL server数据库的表,还有一个表单,其中有一个子表单,由查询填充。查询的工作方式与子表单相同,实际上,在调用主表单时,子表单中填充了正确的数据。但是我想停止加载时填充子表单,并且只通过单击按钮来填充 我已经为按钮的“点击”事件提供了一个嵌入式宏来重新查询子表单,它看起来确实刷新了子表单,但是如何停止在主表单加载时填充子表单,并且仅在按钮点击时填充子表单您有几个选项 一种命令方式是删除子窗体控件的“源对象

我很生气,因为我以前做过这件事,但记不得了。我有一个Access数据库,其中有链接到SQL server数据库的表,还有一个表单,其中有一个子表单,由查询填充。查询的工作方式与子表单相同,实际上,在调用主表单时,子表单中填充了正确的数据。但是我想停止加载时填充子表单,并且只通过单击按钮来填充


我已经为按钮的“点击”事件提供了一个嵌入式宏来重新查询子表单,它看起来确实刷新了子表单,但是如何停止在主表单加载时填充子表单,并且仅在按钮点击时填充子表单您有几个选项

一种命令方式是删除子窗体控件的“源对象”设置。由于控件(子窗体控件)没有指向子窗体的“指针”,因此不会加载或显示子窗体

因此设置此选项的代码(按钮后面是):

因此,只需将源对象设置设置为要显示/加载的子窗体

在表单编辑过程中,当您清空(删除)子表单控件的源对象设置时,请务必小心,编辑过程中的混乱通常也会破坏链接主字段和子字段设置。它们通常会粘住,但也会消失

下一个可能吗

您可以修改子窗体并删除其数据源,而不是设置源对象

现在,在该按钮后面的代码中,您可以:

me.MySubFormControl.Form.Source = "SELECT * from child table"
同样,当您执行上述操作时,链接主/子设置通常会消失。在某些情况下,您可以这样做:

me.MySubFormControl.Form.Source = "SELECT * from childTable where parent_id = " & me!id
现在,当然要用用于与父窗体相关的列名替换parent_id

我认为源对象是一个更好的选择,因为在加载主窗体时,即使子窗体也不会被渲染或加载


唯一的问题是,经常访问将尝试设置/更改链接主/子设置,因此您可以考虑在代码中设置链接母版和链接子字段设置(也就是在源对象代码行之前).< /p>选项:1)在设计中不设置子窗体记录源(绑定控件将在加载时显示“错误”)或者2)不要在设计中设置子窗体容器控件SourceObject属性-也可以用代码设置。实际上,第三个选项是不要在设计中绑定控件,而是在代码中设置ControlSource。@June7谢谢您的反馈。请原谅,我已经17年没有做过访问表单了。我不确定我是否明白。如果删除记录源,子窗体为空绑定控件不显示“错误”?好的,然后代码将设置RecordSource属性并刷新子窗体。但设置SourceObject属性可能更可取。

me.MySubFormControl.Form.Source = "SELECT * from childTable where parent_id = " & me!id