【发布时间】:2018-01-05 21:13:35
【问题描述】:
我有一个 Access 2016 数据库,它最初是一个经典的 access MDB。在此过程中,它被转换为 .accdb,并链接到后端 SQL Server。使用的所有表都已转换为链接表。
有代码执行类似这样的代码:
sql = "insert into [TableA]..."
CurrentDB.Execute sql
DoCmd.OpenReport(...)
我发现在 OpenReport 命令从同一个表中选择数据之前,间歇性地插入后端 SQL 似乎没有完成。
通过使用来解决这个问题是否合理。假设我的问题是数据没有及时提交到 SQL 表以便报告执行看到它,下面的代码会确保这一点吗?
sql = "insert into [TableA]..."
CurrentProject.Connection.BeginTrans
CurrentProject.Connection.Execute sql
CurrentProject.Connection.CommitTrans
DoCmd.OpenReport(...)
【问题讨论】:
-
为了确定问题所在,就在打开报告之前,使用 dlookup 或其他工具检查表中的数据,以查看数据是否存在。
-
不,该代码不能确保 INSERT 成功。确实需要确定 INSERT 失败的原因。数据会导致失败怎么办?在完成 INSERT 操作之前,Access 不应打开报表。
标签: sql-server ms-access