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
Ms access DoCmd OpenForm,其中条件位于NEW上,而不是参数中传递的键_Ms Access_Vba_Ms Access 2010_Ms Access Forms - Fatal编程技术网

Ms access DoCmd OpenForm,其中条件位于NEW上,而不是参数中传递的键

Ms access DoCmd OpenForm,其中条件位于NEW上,而不是参数中传递的键,ms-access,vba,ms-access-2010,ms-access-forms,Ms Access,Vba,Ms Access 2010,Ms Access Forms,我向一个名为tbl_DISTR的表中添加了一条记录。主键是DISTR_ID 基于tbl_District的子表单是sf_District。我重新查询它,可以看到新值 我使用sf_DISTR中保存该值的文本框来打开表单(DISTRO)的不同版本以进行额外处理 像这样: DoCmd.OpenForm "DISTRO", acNormal, , "COB_ID = " & Me!COB_ID & " and distr_id = " & Me.DISTR_ID, acForm

我向一个名为tbl_DISTR的表中添加了一条记录。主键是DISTR_ID

基于tbl_District的子表单是sf_District。我重新查询它,可以看到新值

我使用sf_DISTR中保存该值的文本框来打开表单(DISTRO)的不同版本以进行额外处理

像这样:

DoCmd.OpenForm "DISTRO", acNormal, , "COB_ID = " & Me!COB_ID & "  and distr_id = " & Me.DISTR_ID, acFormEdit
但是表单在DISTR_ID字段中显示“NEW”。它为什么跳到那里


如果我关闭主窗体并重新开始。表单发行版很好

您不需要最后一个参数,因此请尝试:

DoCmd.OpenForm "DISTRO", acNormal, , "COB_ID = " & Me!COB_ID & " and distr_id = " & Me.DISTR_ID & ""

这把它修好了。我最终以这种方式强制重新查询:

 DoCmd.OpenForm "DISTRO"
 DoCmd.Close acForm, "DISTRO"
在使用where条件打开窗体之前

DoCmd.OpenForm "DISTRO", acNormal, , "DISTR_ID= " & Me.DISTR_ID

但是知道正确的方法会很好

这没什么区别。不知道为什么关闭表单并重新打开会有不同。我也尝试过重新查询主窗体,但在手动关闭并打开主窗体之前,它无法修复此问题。那么您可能会丢失一个或两个字段的值。这将过滤掉除新记录之外的所有记录,因此它会在那里着陆。如果它感觉到记录不在那里,它也会在新记录上着陆,对吗?也许这就是为什么当我关闭并重新打开主窗体时它会修复它。所以我试图弄明白为什么第一个子表单(sf_发行版)可以知道足够的值,让我点击它。然后,另一个子表单(发行版)看不到该值。两个子窗体都存在于同一主窗体的不同选项卡中。