Ms access &引用;交易记录中不支持操作“;在Access中复制/粘贴记录时
将Excel中的单元格复制/粘贴到Access子窗体时,如果未创建父记录,将导致错误-如预期的那样 问题在于,发生此错误后,访问被锁定在一种状态,即输入的所有后续数据都会导致事务中不支持的操作。打开表时,可以看到新添加的数据尚未在表中,因此看起来Access实际上参与了某种事务 我试过打“保存”…'刷新“。。甚至添加一个AfterInsert事件来强制commitTrans(),但没有运气——Access声称没有正在进行的事务 如果手动输入记录,则不会出现错误。这个问题似乎只有在粘贴记录时才会出现。我猜Access正在创建一个事务来处理多个记录操作,并且没有正确地从错误中恢复 我可以删除“Required”标志,它会起作用,但是你会有孤立记录。我在想,也许可以使用一个After Insert Data宏来添加一个具有默认批名称的新批,并将新的BatchID自动填充到Items表中。然而,我不确定如何做到这一点 我确实尝试使用更改前数据宏删除错误的“Required”标志和陷阱,但尽管它减少了错误,但仍然产生了错误事务中不支持的相同操作 我在Microsoft知识库中查找了错误,但没有找到任何特定于我的情况的内容。我在stackoverflow中搜索错误消息,但未找到任何内容 我创建了一个新的数据库,并能够复制该问题 复制步骤 建立数据库Ms access &引用;交易记录中不支持操作“;在Access中复制/粘贴记录时,ms-access,ms-access-2010,Ms Access,Ms Access 2010,将Excel中的单元格复制/粘贴到Access子窗体时,如果未创建父记录,将导致错误-如预期的那样 问题在于,发生此错误后,访问被锁定在一种状态,即输入的所有后续数据都会导致事务中不支持的操作。打开表时,可以看到新添加的数据尚未在表中,因此看起来Access实际上参与了某种事务 我试过打“保存”…'刷新“。。甚至添加一个AfterInsert事件来强制commitTrans(),但没有运气——Access声称没有正在进行的事务 如果手动输入记录,则不会出现错误。这个问题似乎只有在粘贴记录时才会出
- BatchID(自动编号)(主键)
- 批处理名称(文本)
- 记录ID(自动编号)(主键)
- BatchID(长整数)
- 将Required属性设置为True
- 数据-文本
- 包括批次中的所有记录,以及项目中的匹配记录
- 强制引用完整性
- 级联更新/删除
- 将Recordsource设置为批处理
- 在“批次ID”和“批次名称”文本框中添加
- 添加子窗体/子报表控件
- 将源对象设置为“Table.Items”
- 将链接主字段设置为“BatchID”
- 将链接子字段设置为“BatchID”
- 设置“空主机上的过滤器”=是
- 批量创建新记录。
- Set BatchName=“测试”
- 在项目中创建新记录。
- 参考批次记录李>
- Set Data=“测试”
- 从A1-A10开始,每个单元格输入一个字母:A、B、C、D、E、F、G、H、I、J
- 突出显示单元格A1-A10
- 副本(控制+C)
- 添加新的批处理记录。在BatchID文本框中应显示“(新)”
- 不要输入批次名称
- 在子窗体中,单击新记录的记录选择器(*),以选择整行。键入Control+V以粘贴
- 单击“必须在“Data.BatchID”字段中输入值”的“确定”。错误
- 此错误可能会重复。请继续单击“确定”
- 如果它询问“是否要抑制进一步的错误消息…”,请回答“是”
- 单击“确定”以获取“Microsoft Access无法粘贴的记录已插入到名为“粘贴错误”的新表中。”通知
- 在批次名称文本框中填写“TestName”
- 试着优雅地恢复。击中逃逸。改变记录李>
Required
属性设置为Yes
将[BatchID]文本框的制表位属性更改为“否”。这将在表单打开时为[BatchName]文本框提供默认焦点
让表单的On Current
事件为[BatchName]文本框提供新记录的焦点(IsNull(Me.BatchID)=True
)
当[BatchName]文本框失去焦点时,使表单变脏
选项比较数据库
选项显式