【问题标题】:How to determine if connection was successful using QBFC to connect to Quickbooks如何确定使用 QBFC 连接到 Quickbooks 是否连接成功
【发布时间】:2018-02-13 20:43:37
【问题描述】:

这是我使用 QBFC 将我的 MS Access 应用程序连接到 QB Pro 2017 的代码:

Dim smgr As QBSessionManage

Set smgr = New QBSessionManager
smgr.OpenConnection "", "Job Management"
smgr.BeginSession "", omDontCare

除非 QB 未打开,否则此方法效果很好。我需要一种方法来测试连接是否成功。我似乎找不到有关如何执行此操作的代码示例。

谢谢, TD

【问题讨论】:

  • 任何人????????
  • 如果 QB 没有打开(或者没有打开公司文件)会抛出错误。
  • 我知道。问题是您如何捕获该错误?我正在使用 MS Access vba 连接到 QB,但到目前为止我还无法捕获引发的错误。有人做过吗?

标签: ms-access quickbooks qbfc


【解决方案1】:

QBFC 的问题在于它没有让您选择检查它是否已打开,或者公司文件是否与您尝试打开的文件相同。

如果您可以强制关闭当前的 QB 公司文件,那么下面的代码应该可以完成这项工作。

On Error Resume Next
Dim smgr As QBSessionManager
Dim oServ As Object
Dim cProc As Variant
Dim oProc As Object
Set oServ = GetObject("winmgmts:")
Set cProc = oServ.ExecQuery("Select * from Win32_Process")

Set smgr = New QBSessionManager
smgr.OpenConnection "", "Job Management"
smgr.BeginSession "", omDontCare

If Err.Number <> 0 Then
    'Kill the current running Quickbooks process
    For Each oProc In cProc
        If oProc.Name = "QBW32.EXE" Then
           oProc.Terminate
        End If
    Next
    'Close the connection and try again
    smgr.CloseConnection
    smgr.OpenConnection "", "Job Management"
    smgr.BeginSession "", omDontCare
End If

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多