对SQL存储过程的VBA调用导致其他页面挂起
我有一段执行SQL Server备份的简单代码对SQL存储过程的VBA调用导致其他页面挂起,vba,sql-server-2005,Vba,Sql Server 2005,我有一段执行SQL Server备份的简单代码 With sCmd .ActiveConnection = sCN .CommandText = "dbo.csp_ad_hoc_single_full_backup" .CommandType = adCmdStoredProc .Parameters.Refresh .Parameters("@database_name").Value = strDB .Parameters("@backup
With sCmd
.ActiveConnection = sCN
.CommandText = "dbo.csp_ad_hoc_single_full_backup"
.CommandType = adCmdStoredProc
.Parameters.Refresh
.Parameters("@database_name").Value = strDB
.Parameters("@backup_dir").Value = preBackup_directory
.Parameters("@backup_dir_space").Value = objDiskSpace
.Execute , , adAsyncExecute
End With
returnvalue = sCmd.parameters(0)
此代码在用户点击页面时执行,返回值然后根据过程的每个可能结果显示不同的文本
问题是,在该过程运行时,我无法访问任何其他页面。我尝试过使用“adAsyncExecute”,但似乎不起作用。在整个备份完成之前,不会加载显示结果并运行此代码的页面。我不知道这是否是其他页面挂起的原因
有什么想法吗?根据enderland的评论,VBA将不会继续,直到.Execute过程完成
我的解决方案是简单地编写参数sql表,而不是立即尝试执行该过程。网页将显示表写入成功。然后,作业将拾取这些参数并像最初加载页面时一样执行代码。在作业结束时,用户将使用msdb.dbo.sp_send_dbmail a通过电子邮件通知作业完成。VBA将在.Execute过程完成后继续。@enderland是否有解决方法的建议?