Results 1 to 3 of 3
  1. #1
    shank is offline Competent Performer
    Windows XP Access 2007
    Join Date
    Sep 2010

    Upgrade from MS Access 2007 to 2019, Class not registered.

    I have the below code that has been working for a couple months in MS Access 2007, 32 Bit, Win 7.

    I just upgraded to MS Access 2019, 64 Bit, Win 10.

    This line is causing an error: Class Not Registered
    SessMgr.OpenConnection "", "Highest InvNo"

    I have the same references I used in Access 2007. I'm guessing qbFC13,dll is the issue. I've re-registered it. I've reinstalled the SDK software. I've installed MS Access 2007 on the Win 10 computer and it works as expected. But not in Access 2019.

    Has anyone had any issues upgrading from 2007 to 2019?
    Any thoughts on where I should be looking, or trying to troubleshoot this?

    Public Function InvNo()
    DoCmd.Hourglass True
    DoCmd.Echo True, "Pulling Invoice Numbers from QBES, please wait...."
    'This code pulls a range of highest Invoice numbers from QBES and populates table: TempBatchInvNo.
    'Then Query: qry_TempBatchInvNo_Max sets up next highest InvNo.
        Dim accessDB As Database
        Set accessDB = CurrentDb
        If (accessDB Is Nothing) Then
            Exit Function
        End If
        Dim SessMgr As New QBSessionManager
        SessMgr.OpenConnection "", "Highest InvNo"
        SessMgr.BeginSession "", omDontCare
        Dim msgReq As IMsgSetRequest
        Set msgReq = SessMgr.CreateMsgSetRequest("US", 13, 0)
        Dim query As IInvoiceQuery
        Set query = msgReq.AppendInvoiceQueryRq
        'Establish a begin date to pull InvNo from QBES: 4 days before current date.
        'QBES required date format "yyyy-mm-dd".
        Dim FromDate
        FromDate = CStr(FromDate)
        FromDate = Format(Date - 4, "yyyy-mm-dd")
        'Establish end date (today) for most current InvNo from QBES.
        'QBES required date format "yyyy-mm-dd".
        Dim ToDate
        ToDate = CStr(ToDate)
        ToDate = Format(Date, "yyyy-mm-dd")
        'Filter InvNo numbers by Transaction Dates "To" and "From". See above variables.
        query.ORInvoiceQuery.InvoiceFilter.ORDateRangeFilter.TxnDateRangeFilter.ORTxnDateRangeFilter.TxnDateFilter.FromTxnDate.SetValue (FromDate)
        query.ORInvoiceQuery.InvoiceFilter.ORDateRangeFilter.TxnDateRangeFilter.ORTxnDateRangeFilter.TxnDateFilter.ToTxnDate.SetValue (ToDate)
        'Set maximum number of records returned DO NOT USE THIS FILTER
        'query.ORInvoiceQuery.InvoiceFilter.MaxReturned.SetValue (10)
        'DoEvents makes sure invoices are pulled from QBES before moving forward
        Dim resp As IMsgSetResponse
        Set resp = SessMgr.DoRequests(msgReq)
        Dim respList As IResponseList
        Set respList = resp.ResponseList
        Dim curResp As IResponse
        Set curResp = respList.GetAt(0)
        'Delete all records from Table: TempBatchInvNo
        DoCmd.SetWarnings False
        DoCmd.RunSQL "DELETE * FROM TempBatchInvNo"
        DoCmd.SetWarnings True
        If (curResp.statusCode = 0) Then
            Dim respType As IResponseType
            Set respType = curResp.Type
            If (respType.GetValue = rtInvoiceQueryRs) Then
                Dim InvNoList As IInvoiceRetList
                Set InvNoList = curResp.Detail
                Dim curInvoices As IInvoiceRet
                Dim i As Integer
                Dim insSQL As String
                For i = 0 To InvNoList.Count - 1
                    insSQL = "INSERT INTO TempBatchInvNo " _
                        & "(InvNo) " _
                        & "VALUES " _
                        & "("
                    Set curInvoices = InvNoList.GetAt(i)
                        insSQL = insSQL & "'" & curInvoices.RefNumber.GetValue & "')"
                        accessDB.Execute insSQL
                Next i
            End If
        End If
    'Print SQL to Intermediate Window below
    'Example: INSERT INTO TempBatchInvNo (InvNo) VALUES ('644923')
    'Debug.Print insSQL
        Set SessMgr = Nothing
        'Close recordset
        Set accessDB = Nothing
        Set accessDB = Nothing
    End Function

  2. #2
    isladogs's Avatar
    isladogs is offline Very idle programmer
    Windows 10 Access 2010 32bit
    Join Date
    Jan 2014
    Somerset, UK
    After doing a quick online search it appears that the qbFC13.dll reference is related to Quick Books.
    Perhaps it doesn't work in 64-bit Access? Suggests you check with the dll supplier as there may be a newer version that does work in 64-bit
    Colin (Mendip Data Systems) : Website, email
    If this has helped, please click the star button and leave a comment

  3. #3
    shank is offline Competent Performer
    Windows XP Access 2007
    Join Date
    Sep 2010
    From all I can gather, without Intuit's help, that's pretty much the case. There's not going to be any 64 Bit development that will solve my issue.

    However, there is a solution with Going to cost some money but it looks promising with some initial testing.


Please reply to this thread with any new information or opinions.

Similar Threads

  1. Run time error - Class not registered
    By craig1988 in forum Access
    Replies: 1
    Last Post: 11-20-2018, 11:23 AM
  2. Replies: 6
    Last Post: 06-19-2017, 03:33 PM
  3. Replies: 2
    Last Post: 07-25-2016, 08:12 AM
  4. Access 2007 Problems to SQL 2005 / 2008 Upgrade
    By ChrisPackit in forum Access
    Replies: 0
    Last Post: 01-06-2012, 09:30 AM
  5. Access 97 upgrade to 2007 or 2010... speed?
    By accessi in forum Access
    Replies: 5
    Last Post: 11-30-2010, 07:04 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
Other Forums: Microsoft Office Forums - Senior Forums