<output id="os3gq"><ruby id="os3gq"></ruby></output>

    1. <mark id="os3gq"></mark>
    2. 【Access源碼】鮮為人知的隱藏功能實現自動生成mde/accde-紅塵如煙
      Access軟件網QQ交流學習群(群號碼198465573),歡迎您的加入!
      首頁 >技術文章> Access數據庫-模塊/函數/VBA


      【Access源碼】鮮為人知的隱藏功能實現自動生成mde/accde

      發表時間:2019/3/31 17:33:16 評論(2) 瀏覽(5891)  評論 | 加入收藏 | 復制
         
      摘 要:如何用代碼自動生成mde/accde文件
      正 文:

      當我們用Access開發一個軟件完成之后,為了保護我們的勞動成果,一般有2種方式:設置VBA工程密碼,編譯生成mde/accde格式的僅執行文件。


      而由于mdb格式已使用多年,現在網上輕易便能找到破解mdb格式的工具。而accdb格式雖然暫時沒有破解工具在網上流傳,但VBA本身其實已經很多年沒有什么更新了,每次的新版本僅僅只是維護。因此VBA工程密碼是不怎么保險的方式。那么剩下的唯一出路,就只有生成mde/accde格式的僅執行文件了。


      一般我們都是通過菜單或功能區來生成。



      但隨著我們使用Access開發的越來越深入,就會想,每次都要點幾下也挺煩的,能不能用代碼自動來完成這個生成mde/accde的功能呢?


      通過在VBA界面按F2打開對象瀏覽器,我們只找到一個 Runcommand acCmdMakeMDEFile 命令。然而很可惜,此命令是沒有參數的,我們不能指定文件路徑名,它本質還是和我們手動操作一樣,達不到我們“自動”的需要。



      拔劍四顧心茫然,敢問路在何方?路當然是有的,否則本公子半天牛逼不都白吹了!我當然不會干那種只收刀片不收紅包的事情啦!


      不賣關子,答案揭曉:


      其實Access還有一個完全隱藏的功能可以來實現自動生成mde/accde,只不過這個功能,我們從對象瀏覽器,幫助文檔,都是找不到它的蹤跡的。


      這難道就是傳說中口口相傳,不落文字的武林門派最高秘傳心法?! 還等什么!快搶一本走罷!

      '============================================================================
      '函數名稱: MakeMDE
      '功能描述:  根據MDB/ACCDB文件,編譯生成MDE/ACCDE文件。
      '輸入參數: MDBPathname 源MDB文件路徑名。
      '           MDEPathname 要生成的MDE/ACCDE文件路徑名。
      '返回參數: 成功返回True,失敗返回False。
      '相關調用:
      '使用注意: 這里用的是Access的隱藏功能,603這個常量值,在對象瀏覽器和幫助文檔中是找不到的。
      '           因此有可能未來的新版本Access不支持此功能,不過目前到2019都還能用。
      '           另外此函數不能放在要用來生成的MDB/ACCDB文件中,必須要在另一個文件中使用。即你
      '           不能把此函數放在A.mdb中,然后再調用它A.mdb生成A.mde。必須把函數放在B.mdb中,
      '           調用它來生成A.mde。
      '兼 容 性: Access 2003~2019
      '參考資料:
      '作  者: 紅塵如煙
      '修訂記錄: 2012-07-21 創建。
      '           2019-03-31 添加錯誤處理,進行完善。
      '============================================================================
      Function MakeMDE(MDBPathname As String, MDEPathname As String) As Boolean
          On Error GoTo ExitHere
      
          '此常量Access本身沒有,必須有這句常量聲明,或者直接使用603這個值。
          Const acSysCmdMakeMDE = 603 
      
          MakeMDE = False
      
          Dim appAccess As New Access.Application
          appAccess.SysCmd acSysCmdMakeMDE, MDBPathname, MDEPathname
          appAccess.Quit acQuitSaveNone
      
          MakeMDE = True
      
      ExitHere:
          Set appAccess = Nothing
          Exit Function
      
      ErrorHandler:
          MsgBox Err.Description, vbCritical, "Error #" & Err.Number
          Resume ExitHere
      End Function



      Access軟件網交流QQ群(群號:198465573)
       
       相關文章
      如何解決禁止用SHIFT鍵打開MDB/MDE文件  【未知  2003/12/14】
      生成MDE文件  【竹笛  2008/6/16】
      ACCDB與MDB文件格式之間的區別、ACCDE與MDE的區別  【麥田  2012/8/13】
      Access2007\Access2010\2013及以上版本設置...  【麥田  2013/6/3】
      mdb怎樣生成mde  【楊雪  2015/6/9】
      自定義函數:用代碼判斷access文件是不是mde文件  【Natsume Takashi   2018/10/15】
      mde/accde文件中有的事件不執行/沒有執行  【伊西軍  2019/2/24】
       
       訪客評論
      2019/4/2初學者
      能舉例說明以下具體調用的方法嗎?謝謝?。?!

      2019/4/1永遠的季節
      快捷功能,可以加到平臺里去

      總記錄:2篇  頁次:1/1 9 1 :
       
       發表評論
      評論內容 (必填)

      常見問答
      技術分類
      相關資源
      文章搜索
      關于作者

      紅塵如煙

      文章分類

      文章存檔

      友情鏈接
       
         
      湖北11选5