当我运行我的代码以从CMS报告中检索数据时,如果我单步执行代码,则代码可以正常工作,但如果我正常运行它,它(最终)会失败,并且MS Access会停止响应。
' Sets parameters for report
cmsReport.SetProperty reportPrompt(1, 1), reportPrompt(1, 2)
cmsReport.SetProperty reportPrompt(2, 1), reportPrompt(2, 2)
cmsReport.SetProperty reportPrompt(3, 1), reportPrompt(3, 2)
' Runs report and extracts results
EmptyClipboard
b = cmsReport.ExportData("", 44, 0, True, True, True)
Do While ClipboardEmpty
' for some reason, avaya doesn't always copy to clipboard, so keep repeating it until it gives up the data!
b = cmsReport.ExportData("", 44, 0, True, True, True)
Loop
用于检查剪贴板的子例程,并在我尝试将数据放入剪贴板之前将其清空:
Private Declare Function apiOpenClipboard Lib "user32" Alias "OpenClipboard" (ByVal hWnd As Long) As Long
Private Declare Function apiEmptyClipboard Lib "user32" Alias "EmptyClipboard" () As Long
Private Declare Function apiCloseClipboard Lib "user32" Alias "CloseClipboard" () As Long
Private Declare Function CountClipboardFormats Lib "user32" () As Long
Sub EmptyClipboard()
If apiOpenClipboard(0&) <> 0 Then
Call apiEmptyClipboard
Call apiCloseClipboard
End If
End Sub
Function ClipboardEmpty() As Boolean
ClipboardEmpty = (CountClipboardFormats() = 0)
End Function
我使用后期绑定对象,我安装了Avaya CMS 16.2 我已经尝试设置超时,没有成功(任何一行或两者都无法解决问题)
cmsConnection.lTimeOutSecs = 60
cmsConnection.bTimeOutEnable = False
答案 0 :(得分:1)
在我的组织中,我们非常沮丧地将未记录的VBA API攻击到avaya CMS管理程序应用程序。我建议改为使用直接ODBC连接到Avaya服务器。 Avaya提供了大量有关如何将ODBC连接到其服务器的文档。如果您需要帮助查找特定于您的安装的avaya文档,请回复您正在使用的版本。