日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

VBAProject调用mysql出错_VBA代码调用Access数据库系统压缩和修复数据库功能

發布時間:2023/12/18 数据库 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VBAProject调用mysql出错_VBA代码调用Access数据库系统压缩和修复数据库功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如何用VBA代碼調用Access系統壓縮和修復數據庫這一功能.

希望通過標簽的單擊事件調用系統菜單中的壓縮和修復數據庫這一功能.

上傳個文件:qPdhFMoU.rar

1. ququ最簡單的辦法 ?新增一個菜單欄,把這個命令拖到菜單內即可

2. kunlun在Access窗體上創建 建一個標簽,在標簽的單擊事件中添加如下事件

Private?Sub?Text1_Click()

docmd.RunCommand?acCmdCompactDatabase

docmd.RunCommand?acCmdRepairDatabase

end?sub

3.?Tmtony站長做的壓縮和修復數據庫函數

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. 李嘯林?修改后的函數

可以適合97與XP,我沒有安裝過ACCESS?2000,希望你們能給我補上。

Dim?ref?As?Reference

Dim?i?As?Byte

Set?ref?=?References!Access

'我不用Application.Vertion是由于,這個屬性在Access?97中不存在。

Select?Case?ref.Major

Case?8:?i?=?6?'Access?97

Case?9:?i?=?7?'Access?XP

Case?Else

MsgBox?"未知版本,無法使用此功能"

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把這個函數拷貝下窗體的模塊里,然后在標簽的單擊事件里寫: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. guoyangw123:連接表壓縮方法建立一個函數,然后在程序中調用

Function?zipDB()

If?Right(CurrentProject.Path,?1)?<>?"\"?Then?'判斷當前路徑

Y?=?CurrentProject.Path?&?"\"

Else

Y?=?CurrentProject.Path

End?If

x?=?Y?&?"data_be.mdb"?????'data_be.mdb為后臺數據庫名稱

'取得路徑

If?Dir(x)?=?""?Then

MsgBox?"數據未找到"

Exit?Function

ElseIf?Dir(x)?<>?""?Then?'確定文件存在

DBEngine.CompactDatabase?x,?Y?&?"temp.mdb",?";pwd=123",?,?";pwd=123"?'壓縮為暫存文件

'?假設后臺數據庫密碼為"123"??????Kill?x?'刪除原文件

FileCopy?Y?&?"temp.mdb",?x??'還原

Kill?Y?&?"temp.mdb"???'刪除暫存文件

End?If

MsgBox?"完成修補及壓縮"

End?Function

ywg

謝謝huanghai問題解決了,總結一下和各位新手共同學習:

1、用zhengjialon版主提供的Tmtony站長和李嘯林的方法,并在VBE的窗口中菜單欄,工具/引用里請首選引用Microsoft?Office?X.0?Object?Llbrary.這種方法應該適用于沒有拆分的數據庫(拆分后沒試過)。2、用guoya的方法適用于拆分過的數據庫。

ngw123

如何壓縮修復連接表呢....這個無法通過鏈接表來壓縮,必須?壓縮實際的鏈接數據庫文件

ywg

kunlun你好:按你所說的方法,系統提示出錯,不能壓縮打開的數據庫,我是希望在界面中屏避系統菜單,在用戶窗體中,做一個標簽,讓用戶通過單擊此標簽實現對本數據庫的壓縮與修復,(數據庫為打開狀態).請幫我想想辦法.謝謝!

zhengjialon

http://www.office-cn.net/thread-17457-1-1.html

ywg

版主沒搞明白?能否詳細說明,"VBA"小弟真是不太認識它

ywg

版主還是要麻煩你.系統提示錯誤運行時錯誤'-2147467259(80004005)':方法'ADD'作用于對象'commandBarControls'時失敗

ngw123

連接表如何壓縮呀..怎么沒人回答...是不是新建一個access實冽,再打開連接表,再壓縮..我去試試...

kunlun

這么復雜,有沒有簡單一點呀。我頭都大了,看不懂了

ywg

還有那位能再次拉我一把呀!

zhengjialon

回樓主:在VBE的窗口中菜單欄,工具/引用里請首選引用Microsoft?Office?X.0?Object?Llbrary

huanghai

找到要操作菜單的位置,然后用代碼執行,具體如:CommandBars("menu?bar").Controls("工具(&T)").Controls("數據庫實用工具(&D)").Controls("壓縮和修復數據庫(&C)...").Execute

ywg在

huanghai按你所說的方法,系統提示出錯,不能壓縮打開的數據庫.

ywg

guoya你所提供的方法,我經試驗發現如果是在沒有用戶登陸及密碼的數據庫中可以正常使用,但如果是在有用戶登陸及密碼的數據庫中在壓縮后會出現錯誤提示運行時錯誤‘3031’密碼無效guoya及各位高手能否幫忙解決這個問題。

guoya

后臺數據是不應該有安全機制的呀

ywg

沒有用系統的安全機制,但有用VBA代碼的用戶登陸密碼,拆分后的后臺數據庫的密碼為123而前臺窗體打開時會出現密碼無效的錯誤,應如何解決呢?去掉代碼中的pwd=123",?,?";pwd=123"可以嗎?DBEngine.CompactDatabase?x,?Y?&?"temp.mdb",?";pwd=123",?,?";pwd=123"?'壓縮為暫存文件

'?假設后臺數據庫密碼為"123"

(設置_安全_修復-相關文章技巧鏈接):

ACCESS數據庫RunCommand方法參數列表說明說明

總結

以上是生活随笔為你收集整理的VBAProject调用mysql出错_VBA代码调用Access数据库系统压缩和修复数据库功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。