【问题标题】:Avaya CMS data extraction in vba only works when single steppingvba 中的 Avaya CMS 数据提取仅在单步执行时有效
【发布时间】:2013-03-26 21:09:55
【问题描述】:

当我运行我的代码以从 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

【问题讨论】:

  • 我怀疑你在这里能得到很多帮助;如果您在Definity forum on Tek-Tips 中发布此问题,可能会有更好的机会得到回答。只是说。

标签: ms-access vba avaya


【解决方案1】:

在我的组织中,我们在将未记录的 VBA API 入侵到 avaya CMS 主管应用程序时遇到了很多挫折。我建议改为使用与 Avaya 服务器的直接 ODBC 连接。 Avaya 提供了大量关于如何通过 ODBC 连接到其服务器的文档。如果您需要帮助查找特定于您的安装的 avaya 文档,请回复您正在使用的版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多