【发布时间】:2018-09-08 19:07:02
【问题描述】:
当我使用下面显示的代码从 MS Access 前端调用 SQL Server 存储过程时,它停止运行并抛出运行时错误“3146”。
这个存储过程在 SQL Server 中运行正常,但是当我从 MS Access 运行时,它一开始可以运行,但突然停止并抛出运行时错误“3146”。
为了更清楚,这个存储过程用于在我从 MS Access 中插入空表中的记录时,它应该插入 1000 条记录,但它会插入 970 条记录然后停止。
我的存储过程有一个用于插入记录的选择查询,现在我已将这个简单的选择查询更改为联合查询,因为我在存储过程的设计中对此进行了更改,它在 SQL Server 中运行良好
Public Sub Command0_Click()
Dim qdef As DAO.QueryDef
Set qdef = CurrentDb.CreateQueryDef("")
qdef.Connect = CurrentDb.TableDefs("[ASBUILT_LIST]").Connect
qdef.SQL = "EXEC Update_Asbuilt2"
qdef.ReturnsRecords = False ''avoid 3065 error
qdef.Execute
qdef.Close
Set qdef = Nothing
End Sub
【问题讨论】:
-
当它运行但未到最后时,我假设存在权限问题。在错误 3146 上循环使用
For I = 0 To Errors.Count-1 Debug.Print Errors(I) Next I的错误集合
标签: sql-server vba ms-access