1

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

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

编辑:我了解到有两个条件同时满足时会导致表单的详细信息窗格变为空白:(1)没有要显示的现有记录,以及(2)不可能添加新记录。

这意味着第二个条件是我的问题所在。我尝试滚动到 Access 中每个链接表的底部,对于历史记录表,我无法添加任何新行,但对于问题表,我可以。由于某种原因,有些东西让我无法编辑这张表。

4

1 回答 1

1

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

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

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

于 2012-10-09T19:26:21.477 回答