VBA代碼調(diào)用Access數(shù)據(jù)庫(kù)系統(tǒng)壓縮和修復(fù)數(shù)據(jù)庫(kù)功能
- 2004-07-30 05:14:00
- 版主們-Office交流網(wǎng) 原創(chuàng)
- 9584
如何用VBA代碼調(diào)用Access系統(tǒng)壓縮和修復(fù)數(shù)據(jù)庫(kù)這一功能.
希望通過(guò)標(biāo)簽的單擊事件調(diào)用系統(tǒng)菜單中的壓縮和修復(fù)數(shù)據(jù)庫(kù)這一功能.
上傳個(gè)文件:qPdhFMoU.rar
1. ququ 最簡(jiǎn)單的辦法 新增一個(gè)菜單欄,把這個(gè)命令拖到菜單內(nèi)即可
2. kunlun 在Access窗體上創(chuàng)建 建一個(gè)標(biāo)簽,在標(biāo)簽的單擊事件中添加如下事件
Private Sub Text1_Click() docmd.RunCommand acCmdCompactDatabase docmd.RunCommand acCmdRepairDatabase end sub
3. Tmtony站長(zhǎng)做的壓縮和修復(fù)數(shù)據(jù)庫(kù)函數(shù)
Function Compact() With CommandBars.Add(, msoBarFloating, , True) Const CompactId As Long = 2071 .Controls.Add msoControlButton, CommandBars("Tools").Controls(7).CommandBar.Controls(2).Id DoEvents .Visible = True .Controls(1).SetFocus SendKeys "{ENTER}" '模擬擊鍵壓縮 End With End Function
4. 李嘯林 修改后的函數(shù)
可以適合97與XP,我沒(méi)有安裝過(guò)ACCESS 2000,希望你們能給我補(bǔ)上。
Dim ref As Reference Dim i As Byte Set ref = References!Access '我不用Application.Vertion是由于,這個(gè)屬性在Access 97中不存在。 Select Case ref.Major Case 8: i = 6 'Access 97 Case 9: i = 7 'Access XP Case Else MsgBox "未知版本,無(wú)法使用此功能" Exit Sub End Select With CommandBars.Add(, msoBarFloating, , True) .Controls.Add msoControlButton, CommandBars("Tools").Controls(i).CommandBar.Controls(2).Id DoEvents .Visible = True .Controls(1).SetFocus SendKeys "{ENTER}" '模擬擊鍵壓縮 End With
5. zhengjialon 把這個(gè)函數(shù)拷貝下窗體的模塊里,然后在標(biāo)簽的單擊事件里寫(xiě):Compact
Function Compact() With CommandBars.Add(, msoBarFloating, , True) Const CompactId As Long = 2071 .Controls.Add msoControlButton, CommandBars("Tools").Controls(7).CommandBar.Controls(2).Id DoEvents .Visible = True .Controls(1).SetFocus SendKeys "{ENTER}" '模擬擊鍵壓縮 End With End Function
6. guoya ngw123:連接表壓縮方法建立一個(gè)函數(shù),然后在程序中調(diào)用
Function zipDB() If Right(CurrentProject.Path, 1) <> "\" Then '判斷當(dāng)前路徑 Y = CurrentProject.Path & "\" Else Y = CurrentProject.Path End If x = Y & "data_be.mdb" 'data_be.mdb為后臺(tái)數(shù)據(jù)庫(kù)名稱 '取得路徑 If Dir(x) = "" Then MsgBox "數(shù)據(jù)未找到" Exit Function ElseIf Dir(x) <> "" Then '確定文件存在 DBEngine.CompactDatabase x, Y & "temp.mdb", ";pwd=123", , ";pwd=123" '壓縮為暫存文件 ' 假設(shè)后臺(tái)數(shù)據(jù)庫(kù)密碼為"123" Kill x '刪除原文件 FileCopy Y & "temp.mdb", x '還原 Kill Y & "temp.mdb" '刪除暫存文件 End If MsgBox "完成修補(bǔ)及壓縮" End Function
ywg
謝謝huanghai問(wèn)題解決了,總結(jié)一下和各位新手共同學(xué)習(xí):
1、用zhengjialon版主提供的Tmtony站長(zhǎng)和李嘯林的方法,并在VBE的窗口中菜單欄,工具/引用里請(qǐng)首選引用Microsoft Office X.0 Object Llbrary.這種方法應(yīng)該適用于沒(méi)有拆分的數(shù)據(jù)庫(kù)(拆分后沒(méi)試過(guò))。2、用guoya的方法適用于拆分過(guò)的數(shù)據(jù)庫(kù)。
ngw123
如何壓縮修復(fù)連接表呢....這個(gè)無(wú)法通過(guò)鏈接表來(lái)壓縮,必須 壓縮實(shí)際的鏈接數(shù)據(jù)庫(kù)文件
ywg
kunlun你好: 按你所說(shuō)的方法,系統(tǒng)提示出錯(cuò),不能壓縮打開(kāi)的數(shù)據(jù)庫(kù),我是希望在界面中屏避系統(tǒng)菜單,在用戶窗體中,做一個(gè)標(biāo)簽,讓用戶通過(guò)單擊此標(biāo)簽實(shí)現(xiàn)對(duì)本數(shù)據(jù)庫(kù)的壓縮與修復(fù),(數(shù)據(jù)庫(kù)為打開(kāi)狀態(tài)).請(qǐng)幫我想想辦法.謝謝!
zhengjialon
http://ctxi.cn/thread-17457-1-1.html
ywg
版主沒(méi)搞明白?能否詳細(xì)說(shuō)明,"VBA"小弟真是不太認(rèn)識(shí)它
ywg
版主還是要麻煩你.系統(tǒng)提示錯(cuò)誤運(yùn)行時(shí)錯(cuò)誤'-2147467259(80004005)':方法'ADD'作用于對(duì)象'commandBarControls'時(shí)失敗
ngw123
連接表如何壓縮呀..怎么沒(méi)人回答...是不是新建一個(gè)access實(shí)冽,再打開(kāi)連接表,再壓縮..我去試試...
kunlun
這么復(fù)雜,有沒(méi)有簡(jiǎn)單一點(diǎn)呀。我頭都大了,看不懂了
ywg
還有那位能再次拉我一把呀!
zhengjialon
回樓主:在VBE的窗口中菜單欄,工具/引用里請(qǐng)首選引用Microsoft Office X.0 Object Llbrary
huanghai
找到要操作菜單的位置,然后用代碼執(zhí)行,具體如:CommandBars("menu bar").Controls("工具(&T)").Controls("數(shù)據(jù)庫(kù)實(shí)用工具(&D)").Controls("壓縮和修復(fù)數(shù)據(jù)庫(kù)(&C)...").Execute
ywg在
huanghai按你所說(shuō)的方法,系統(tǒng)提示出錯(cuò),不能壓縮打開(kāi)的數(shù)據(jù)庫(kù).
ywg
guoya你所提供的方法,我經(jīng)試驗(yàn)發(fā)現(xiàn)如果是在沒(méi)有用戶登陸及密碼的數(shù)據(jù)庫(kù)中可以正常使用,但如果是在有用戶登陸及密碼的數(shù)據(jù)庫(kù)中在壓縮后會(huì)出現(xiàn)錯(cuò)誤提示運(yùn)行時(shí)錯(cuò)誤‘3031’密碼無(wú)效guoya及各位高手能否幫忙解決這個(gè)問(wèn)題。
guoya
后臺(tái)數(shù)據(jù)是不應(yīng)該有安全機(jī)制的呀
ywg
沒(méi)有用系統(tǒng)的安全機(jī)制,但有用VBA代碼的用戶登陸密碼,拆分后的后臺(tái)數(shù)據(jù)庫(kù)的密碼為123而前臺(tái)窗體打開(kāi)時(shí)會(huì)出現(xiàn)密碼無(wú)效的錯(cuò)誤,應(yīng)如何解決呢?去掉代碼中的pwd=123", , ";pwd=123"可以嗎?DBEngine.CompactDatabase x, Y & "temp.mdb", ";pwd=123", , ";pwd=123" '壓縮為暫存文件
' 假設(shè)后臺(tái)數(shù)據(jù)庫(kù)密碼為"123"
(設(shè)置_安全_修復(fù)-相關(guān)文章技巧鏈接):
ACCESS數(shù)據(jù)庫(kù)RunCommand方法參數(shù)列表說(shuō)明說(shuō)明
- office課程播放地址及課程明細(xì)
- Excel Word PPT Access VBA等Office技巧學(xué)習(xí)平臺(tái)
- 將( .accdb) 文件格式數(shù)據(jù)庫(kù)轉(zhuǎn)換為早期版本(.mdb)的文件格式
- 將早期的數(shù)據(jù)庫(kù)文件格式(.mdb)轉(zhuǎn)換為 (.accdb) 文件格式
- KB5002984:配置 Jet Red Database Engine 數(shù)據(jù)庫(kù)引擎和訪問(wèn)連接引擎以阻止對(duì)遠(yuǎn)程數(shù)據(jù)庫(kù)的訪問(wèn)(remote table)
- Access 365 /Access 2019 數(shù)據(jù)庫(kù)中哪些函數(shù)功能和屬性被沙箱模式阻止(如未啟動(dòng)宏時(shí))
- Access Runtime(運(yùn)行時(shí))最全的下載(2007 2010 2013 2016 2019 Access 365)
- access vba代碼太長(zhǎng),換行,分行的寫(xiě)法
- VB6 VBA Access真正可用并且完美支持中英文的 URLEncode 與 URLDecode 函數(shù)源碼
- 自定義VB中的urlencode函數(shù),將URL中特殊部分進(jìn)行編碼
- Access 函數(shù)簡(jiǎn)化串接sql字符串,減少符號(hào)導(dǎo)致的書(shū)寫(xiě)錯(cuò)誤
- vba完全關(guān)閉IE瀏覽器及調(diào)用IE瀏覽器的簡(jiǎn)單應(yīng)用
- 利用FollowHyperlink方法打開(kāi)超鏈接提示“無(wú)法下載您要求的信息”的解決方案
- 在access中用代碼打開(kāi)文本框中超鏈接地址
- Activex控件或Dll 在某些電腦無(wú)法正常注冊(cè)的解決辦法(regsvr32注冊(cè)時(shí)卡?。?/a>
- office使用部分控件時(shí)提示“您沒(méi)有使用該ActiveX控件許可的問(wèn)題”的解決方法
- RTF文件(富文本格式)的一些解析
- Access樹(shù)控件(treeview) 64位Office下出現(xiàn)橫向滾動(dòng)條不會(huì)自動(dòng)定位的解決辦法
- Access中國(guó)樹(shù)控件 在win10電腦 節(jié)點(diǎn)行間距太小的解決辦法
- EXCEL 2019 64位版(Office 2019 64位)早就支持64位Treeview 樹(shù)控件 ListView列表等64位MSCOMMCTL.OCX控件下載
- VBA或VB6調(diào)用WebService(直接Post方式)并解析返回的XML
- 早期PB程序連接Sqlserver出現(xiàn)錯(cuò)誤
- MMC 不能打開(kāi)文件C:/Program Files/Microsoft SQL Server/80/Tools/Binn/SQL Server Enterprise Manager.MSC 可能是由于文件不存在,不是一個(gè)MMC控制臺(tái),或者用后來(lái)的MMC版
- sql server連接不了的解決辦法
- localhost與127.0.0.1區(qū)別
- Roych的淺談數(shù)據(jù)庫(kù)開(kāi)發(fā)系列(Sql Server)
- sqlserver 自動(dòng)備份對(duì)備份目錄沒(méi)有存取權(quán)限的解決辦法
- 安裝Sql server 2005 express 和SQLServer2005 Express版企業(yè)管理器 SQLServer2005_SSMSEE
- 金蝶KIS旗艦版 登錄時(shí)“類型不匹配”
- access行業(yè)交流QQ群-部分行業(yè)交流群(倉(cāng)庫(kù) 人事 工資 考勤 CRM HRM MRP ERP 等)
- access垃圾分類數(shù)據(jù)庫(kù)
- Office提高企業(yè)辦公管理效率
- Access交流網(wǎng)Acccess通用開(kāi)發(fā)平臺(tái)樹(shù)導(dǎo)航出錯(cuò)的解決辦法
- Access交流網(wǎng)Access通用開(kāi)發(fā)平臺(tái)的使用幫助教程及FAQ
- Access采購(gòu)倉(cāng)庫(kù)系統(tǒng)作品源代碼
聯(lián)系人: | 王先生 |
---|---|
Email: | 18449932@qq.com |
QQ: | 18449932 |
微博: | officecn01 |