Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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 MS Access 2007将表单转换为子表单;“未找到表格”;问题_Ms Access_Vba_Ms Access 2007_Subform - Fatal编程技术网

Ms access MS Access 2007将表单转换为子表单;“未找到表格”;问题

Ms access MS Access 2007将表单转换为子表单;“未找到表格”;问题,ms-access,vba,ms-access-2007,subform,Ms Access,Vba,Ms Access 2007,Subform,因此,我最近一直在尝试合并更多的子表单,以使UI更友好。因此,我有一个预先开发的表单,它运行一些VB,因此为了举例,让我们只说它运行SQL语句,返回记录集,并用数据填充文本框(因为这是一种交互式仪表板概念: dim db as database dim rs as recordset dim sql as string set db = current db sql = "SELECT * FROM tblMain;" set rs = db.OpenRecordSet(sql)

因此,我最近一直在尝试合并更多的子表单,以使UI更友好。因此,我有一个预先开发的表单,它运行一些VB,因此为了举例,让我们只说它运行SQL语句,返回记录集,并用数据填充文本框(因为这是一种交互式仪表板概念:

dim db as database
dim rs as recordset
dim sql as string
set db = current db

sql = "SELECT * FROM tblMain;"

   set rs = db.OpenRecordSet(sql)

         rs.movefirst
             [forms]![DashboardSubName].txtValue1 = rs!Value1
         rs.close

 set rs = nothing
 set db = nothing
使用返回错误“DashboardSubName”的错误处理。因此,最初此窗体是它自己的窗体,并且单独打开它可以正常工作,但一旦在父窗体中使用它,就会出现此错误

我确信这只是我没有意识到的事情,但它给了我什么

谢谢各位
justin

当表单作为子表单加载时,它会被引用,就像它只是主表单上的另一个控件一样-它不再是全局表单集合的一部分

因此,正确的参考应为: Me!仪表板SubName.Form.txtValue1


其中DashboardSubName是子窗体控件的名称。

当窗体作为子窗体加载时,它将被引用,就像它只是主窗体上的另一个控件一样-它不再是全局窗体集合的一部分

  Me!MySubformControl.Form
因此,正确的参考应为: Me!仪表板SubName.Form.txtValue1


其中DashboardSubName是子窗体控件的名称。

假设您向我们显示的代码是子窗体的一部分,而不是父窗体的一部分,请替换

[forms]![DashboardSubName].txtValue1 = rs!Value1
  Me!MySubformControl.Form


假设您向我们展示的代码是子窗体的一部分,而不是父窗体的一部分,请替换

[forms]![DashboardSubName].txtValue1 = rs!Value1


此处使用语法的原因是,子窗体控件与嵌入其中的子窗体不同。子窗体控件有自己的属性(与子窗体本身相比受到限制),要访问嵌入其中的子窗体的属性/方法,必须指定要嵌入子窗体的窗体

  Me!MySubformControl
…是子窗体控件

  Me!MySubformControl.Form
…是嵌入在子窗体控件中的窗体

  Me!MySubformControl.Form

最后,我真的很想知道为什么要遍历记录集来更新子窗体中的数据。虽然这与您的实际问题无关,但这不是正常的做法。

这里使用语法的原因是子窗体控件与嵌入其中的子窗体不同。子窗体控件有自己的属性(与子窗体本身相比受到限制),要获得嵌入子窗体的属性/方法,必须指定要嵌入子窗体的窗体

  Me!MySubformControl
…是子窗体控件

  Me!MySubformControl.Form
…是嵌入在子窗体控件中的窗体

  Me!MySubformControl.Form

最后,我真的很想知道为什么您要遍历记录集来更新子表单中的数据。这不是正常的做法,尽管这与您的实际问题无关。

谢谢David。为了回答您的问题,我为一种用户类型提供了大量的表单,这些表单充当了仪表板,并具有大量的向下搜索功能。向下搜索需要具有以下功能ty选择单个结果,并基于一系列选择构建sql语句。我刚刚开始转换为子表单,以使整个UI更友好。如果这不是处理它的最佳方式,我不会感到惊讶……这就是我解决方法。我总是乐于学习更简单的方法。谢谢听不懂你在说什么。听起来你在查看数据,而不是更新。当然,还有“仪表板”这个词对我来说是完全不透明的--我不知道你用这个词指的是什么。谢谢David。为了回答你的问题,我为一个用户类型提供了大量的表单,这些表单充当了仪表板,并具有大量的向下钻取功能。向下钻取功能需要具有选择单个结果的功能,并基于一系列se构建sql语句选择。我刚开始转换为子表单,以使整个UI更友好。如果这不是处理它的最佳方式,我不会感到惊讶……只是我找到了如何完成它的方式。我总是乐于学习更简单的方法。谢谢。我不明白你在说什么。听起来你是在查看数据,而不是更新当然,“仪表板”这个词对我来说是完全不透明的——我不知道你指的是什么。