我有一个古老的Access应用程序,我最近使用SQL Server迁移助手将数据移动到SQL后端,除了一个问题外,几乎所有内容都正常工作。
在应用程序中,我们有一个表单,其中包含另一个表单。外部表单查找输入系统的特定“问题”,然后查找与此问题相关联的历史记录(内部表单)。如果存在历史记录,则它可以完美地工作,因为记录显示在嵌入表单中就好了。但是,如果数据库中还没有历史记录,则嵌入表单的整个详细信息部分将完全删除。这些属性都设置为与纯Access数据库完全相同,但现在我已经将它转换为使用链接表从SQL中提取,当我没有要从中提取记录时,表单现在是空白的。
编辑:我了解到有两个条件,当遇到这两个条件会导致表单的详细信息窗格变为空白时:(1)没有要显示的现有记录,以及(2)无法添加新的记录。
这意味着第二个条件是我的问题所在。我尝试滚动到Access中每个链接表的底部,对于历史记录表,我无法添加任何新行,但对于“问题”表,我是。由于某种原因,某些东西使我无法编辑这一张表。
答案 0 :(得分:1)
我认为当子表单的记录源(您的“内部表单”)是只读时,您所描述的行为可能会发生。当存在匹配行时,将显示它们。但是,如果不存在匹配的行,则无法添加行,因此禁用子表单的绑定数据控件。
在“设计视图”中打开子窗体。选择表单并打开其属性表( Alt + Enter )。在属性表的“数据”选项卡上找到“记录源”属性。如果属性值是SELECT
语句,请将其复制并过去到新Access查询的SQL视图中,然后将查询切换到数据表视图。如果属性是表或已保存查询的名称,请直接在数据表视图中打开该对象。
在数据表视图中打开表单的记录源后,您是否可以添加一行?如果没有,请确保SQL Server用户对数据源具有INSERT
权限。但是,即使具有INSERT
权限,如果无法识别唯一标识每一行的字段或字段组合,Access可能已将数据源链接为只读。如果是这种情况,您可能需要重新链接表并告诉Access哪个字段用作主键。