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 具有SQL后端空白表单详细信息的Access应用程序_Ms Access_Ms Access 2010 - Fatal编程技术网

Ms access 具有SQL后端空白表单详细信息的Access应用程序

Ms access 具有SQL后端空白表单详细信息的Access应用程序,ms-access,ms-access-2010,Ms Access,Ms Access 2010,我有一个古老的Access应用程序,我最近使用SQL Server迁移助手将数据移动到SQL后端,除了一个问题外,几乎所有的东西都正常工作 在应用程序中,我们有一个表单,其中包含另一个表单。外部表单查找输入到系统中的特定“问题”,然后查找与此问题关联的历史记录(内部表单)。如果有一个历史记录存在,它工作得很好,因为该记录以嵌入的形式显示得很好。但是,如果数据库中还没有历史记录,则嵌入表单的整个细节部分将完全清空。属性的设置与纯Access数据库时完全相同,但现在我已将其切换为使用链接表从SQL中

我有一个古老的Access应用程序,我最近使用SQL Server迁移助手将数据移动到SQL后端,除了一个问题外,几乎所有的东西都正常工作

在应用程序中,我们有一个表单,其中包含另一个表单。外部表单查找输入到系统中的特定“问题”,然后查找与此问题关联的历史记录(内部表单)。如果有一个历史记录存在,它工作得很好,因为该记录以嵌入的形式显示得很好。但是,如果数据库中还没有历史记录,则嵌入表单的整个细节部分将完全清空。属性的设置与纯Access数据库时完全相同,但现在我已将其切换为使用链接表从SQL中提取,当我没有可从中提取的记录时,表单现在为空

编辑:我了解到有两个条件,当两者都满足时,将导致表单的详细信息窗格变为空白:(1)没有要显示的现有记录,(2)无法添加新记录


这意味着第二个条件是我的问题所在。我尝试在Access中滚动到每个链接表的底部,对于History records表,我无法添加任何新行,但对于Issues表,我无法添加任何新行。由于某些原因,我无法编辑此表。

我认为,当子窗体(您的“内部窗体”)的记录源为只读时,可能会发生您描述的行为。存在匹配行时,将显示这些行。但是,如果不存在匹配的行,则无法添加行,因此子窗体的绑定数据控件将被禁用

在“设计”视图中打开子窗体。选择表单并打开其属性页(Alt+Enter)。在属性表的“数据”选项卡上查找“记录源”属性。如果属性值是
SELECT
语句,请将其复制到新Access查询的SQL视图中,然后将查询切换到数据表视图。如果属性是表或已保存查询的名称,请直接在“数据表”视图中打开该对象


在数据表视图中打开表单的记录源后,是否可以添加行?如果没有,请确保SQL Server用户具有数据源的
INSERT
权限。但是,即使使用
INSERT
权限,如果Access无法识别唯一标识每一行的字段或字段组合,它也可能已将数据源链接为只读。如果是这种情况,您可能需要重新链接该表,并告诉Access将哪些字段用作主键。

我认为您描述的行为可能发生在子窗体(您的“内部窗体”)的记录源为只读时。存在匹配行时,将显示这些行。但是,如果不存在匹配的行,则无法添加行,因此子窗体的绑定数据控件将被禁用

在“设计”视图中打开子窗体。选择表单并打开其属性页(Alt+Enter)。在属性表的“数据”选项卡上查找“记录源”属性。如果属性值是
SELECT
语句,请将其复制到新Access查询的SQL视图中,然后将查询切换到数据表视图。如果属性是表或已保存查询的名称,请直接在“数据表”视图中打开该对象


在数据表视图中打开表单的记录源后,是否可以添加行?如果没有,请确保SQL Server用户具有数据源的
INSERT
权限。但是,即使使用
INSERT
权限,如果Access无法识别唯一标识每一行的字段或字段组合,它也可能已将数据源链接为只读。如果是这种情况,您可能需要重新链接该表,并告诉Access哪些字段要用作主键。

我想您在第二部分中了解了一些内容。我刚刚发现,出于某种原因,我从一个表中获得只读行为。我确定后再报告。谢谢这肯定是某种权限问题。我仍在制定解决问题的具体方案,但现在我肯定知道原因是什么,以及如何处理。我想你在第二部分中了解到了一些东西。我刚刚发现,出于某种原因,我从一个表中获得只读行为。我确定后再报告。谢谢这肯定是某种权限问题。我仍在制定解决问题的具体措施,但现在我肯定知道原因是什么以及如何解决。删除历史记录表的链接(或将其重命名为其他内容)。然后创建指向同一SQL Server表的新链接,并查看Access是否询问要将哪些字段用作主键。如果出现这种情况,并且你给它一个(s)字段来唯一地标识每一行,你可能会发现新的链接给了你编辑的能力。这确实是最终解决我的问题的原因。我甚至不需要发布第二个问题:)。谢谢。删除历史记录表的链接(或将其重命名为其他内容)。然后创建指向同一SQL Server表的新链接,并查看Access是否询问要将哪些字段用作主键。如果出现这种情况,并且你给它一个(s)字段来唯一地标识每一行,你可能会发现新的链接给了你编辑的能力。这确实是最终解决我的问题的原因。我甚至不需要发布第二个问题:)。非常感谢。