コードを実行して CMS レポートからデータを取得する場合、コードを 1 ステップ実行するとコードは機能しますが、通常どおりに実行すると (最終的には) 失敗し、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