none
從Office 2013升級O365後, 原本的Access執行工具程式有錯誤訊息 RRS feed

  • 問題

  • 原公司有使用一軟體是用Access開發(VBA巨集, 讀取SQL資料庫), 多年下來使用沒問題, 近期把Office 2013升級為O365後卻無法開啟及執行。爬文後先將mdb轉存為accdb可開啟該軟體了, 但目前執行時在2段程式會有錯誤, 爬文後未果, 請各位高手提供建議及指教, 先謝謝大家!!

    (1) 下面這段執行到 "DoCmd.DoMenuItem 1, 4, 3, , A_MENU_VER20"   會發生2046錯誤

    Function fblnAccessSecurity() As Boolean
        On Error GoTo Err_fblnAccessSecurity
        subZMW_PushDebugStack gstrFormName, "fblnAccessSecurity"

        Dim blnRetVal   As Boolean
        '=========================
        blnRetVal = c_blnFALSE
       
        If (CurrentUser() = "rwilliam") Or (CurrentUser() = "developer") Then
            gblnDevModeFlag = c_blnTRUE
            Application.SetOption "Built-In Toolbars Available", c_blnTRUE
        Else
            gblnDevModeFlag = c_blnFALSE
            DoCmd.DoMenuItem 1, 4, 3, , A_MENU_VER20
            Application.SetOption "Built-In Toolbars Available", c_blnFALSE
        End If
       
        blnRetVal = c_blnTRUE
       
    Continue_Error2046_fblnAccessSecurity:
       
    Exit_fblnAccessSecurity:
        fblnAccessSecurity = blnRetVal
        subZMW_PopDebugStack
        Exit Function

    Err_fblnAccessSecurity:
        Select Case Err
            Case 2046       'can't do this now
    '            subReportError Err.Description, Err.Number
                Resume Continue_Error2046_fblnAccessSecurity
            Case Else
                subReportError Err.Description, Err.Number
                Resume Exit_fblnAccessSecurity
        End Select
       
    End Function

    -------------------------------------------------------------------------------------------------------------------------------

    (2) 下面這段執行到 "Set prp = gdbMain.CreateProperty(strName, varType, varValue)"   會發生 "錯誤13: 型態不符合" (Err值=13)

    (strName的傳入值為 "AppTitle", varType傳入值為 10, varValue值為"PCToo")

    Function AddAppProperty(ByVal strName As String, ByVal varType As Variant, ByVal varValue As Variant) As Boolean

       On Error GoTo ErrorHandler
       subZMW_PushDebugStack gstrFormName, "AddAppProperty"

       '=======================================================================
       'intX = AddAppProperty("AppTitle", dbText, "My Custom Application")
       '=======================================================================
       Dim prp           As Property
       Dim blnRetVal     As Boolean
       '===============================
       blnRetVal = c_blnFALSE

       gdbMain.Properties(strName) = varValue

    Resume3270Routine:

       Set prp = gdbMain.CreateProperty(strName, varType, varValue)
      
       gdbMain.Properties.Append prp
      
      
      
       '===============================
    Resume3367Routine:
      
       blnRetVal = c_blnTRUE
      
    ExitRoutine:
       AddAppProperty = blnRetVal
       subZMW_PopDebugStack
       Exit Function

    ErrorHandler:
       Select Case Err
          Case 3270
             Resume Resume3270Routine
          Case 3367
             Resume Resume3367Routine
          Case Else
             subReportError Err.Description, Err.Number
             Resume ExitRoutine
       End Select

    End Function

    2020年12月7日 上午 03:51

解答

  • 你好,

    因為Microsoft Office 系統論壇負責Office 的一般性使用問題,關於宏代碼的疑問,請參考心冷熱情熄的建議,在辦公室軟體與程式開發(Office System Development)論壇提問。在那裡,你可能會獲得更多相關的回复。

    感謝你的理解。

    Regards,

    Emily


    如果以上回復對您有所幫助,建議您將其“標示為解答”. 如果您對我們的論壇支持有任何的建議,可以通過此郵箱聯繫我們:tnsf@microsoft.com.

    • 已標示為解答 Sunshine1031 2020年12月8日 上午 01:42
    2020年12月8日 上午 01:22

所有回覆