Ms access DoCmd OpenForm,其中条件位于NEW上,而不是参数中传递的键
我向一个名为tbl_DISTR的表中添加了一条记录。主键是DISTR_ID 基于tbl_District的子表单是sf_District。我重新查询它,可以看到新值 我使用sf_DISTR中保存该值的文本框来打开表单(DISTRO)的不同版本以进行额外处理 像这样: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
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_发行版)可以知道足够的值,让我点击它。然后,另一个子表单(发行版)看不到该值。两个子窗体都存在于同一主窗体的不同选项卡中。