这是我的第一个问题,请别为难我。
我的公司正在使用UNIX和OpenVMS的反射,我正在构建一个与软件交互的数据库,因为我不可能访问反射应用程序背后的数据库(需要太多的授权等)。
我现在正在与MS Access 2013工作,并在VBA编码。我的主要问题是以干净的方式关闭Reflection实例。
下面的代码对我来说很好:
Sub Test()
Dim strUserId As String
Dim MyObject As Reflection2.Session
Set MyObject = GetObject(Path)
strUserId = InputBox("Enter user ID.")
ContractNum = InputBox("Enter a contract number :")
With MyObject
.Visible = True
.Connect
.Transmit strUserId
.TransmitTerminalKey rcVtEnterKey
.Transmit ContractNum
.TransmitTerminalKey rcVtEnterKey
sContractNum = .GetText(1, 18, 1, 28)
'Do other shit
End With
**Exit Reflection**
Set MyObject = Nothing
End Sub
我试过以下方法:
MyObject.Close ==> Returns : "Run-time error '438': Object doesn't support this property of method"
MyObject.Exit ==> Returns : "Run-time error '438': Object doesn't support this property of method"
MyObject.Quit ==> Returns : "Run-time error '10097': This function not available when running Reflection as a document object."
有:MyObject.ConfirmExit = True
,但正如它所说,它只确认而不关闭。
无论如何,我希望有人能在通过Shell命令进行硬关闭之前提供帮助(我猜在Google上不难找到)。
谢谢! !
找到了使用以下代码的方法,这是一个相当苛刻的关闭,但目前工作良好:
Function TaskKill(sTaskName)
TaskKill = CreateObject("WScript.Shell").Run("taskkill /f /im " & sTaskName, 0, True)
End Function
If TaskKill("r2win.exe") = 0 Then MsgBox "Terminated" Else MsgBox "Failed"
希望有帮助