一、自定義菜單的存放位置:
所有自定義菜單都存放在系統表:MsysCmdbars 當中,類型為二進制
如果沒有MsysCmdbars或表中沒有記錄, 說明沒有自定義菜單
二、MsysCmdbars的結構
所有自定義菜單的資料都存放在[Grptbcd]二進制字段中,包括名稱、圖標、引用代碼。。。
字段[TBNAME]僅作參考用
三、MsysCmdbars的導入和導出
不可以在打MsysCmdbars表的狀態下,對數據進行刪除或增加,系統會提示:本表不可刪除,
數據為讀。
但經本人研究發現通過以下方法可對MsysCmdbars表中的數據進行修改或增加:
Dim obj As ADODB.Stream
導出數據:
Function OutMenu()
Dim rs As Recordset, I As Integer, ret
Set rs = CurrentDb.OpenRecordset("Select * from MsysCmdbars")
rs.MoveFirst
Dim obj As New ADODB.Stream
With obj
.Type = adTypeBinary
.Open
.Write rs.FIElds(0)
.SaveToFile "N:\Ben.txt", adSaveCreateOverWrite
End With
Set obj = Nothing
Set rs = Nothing
End Function
導入菜單:
Function InMenu()
Dim rs As Recordset, I As Integer, ret
Set rs = CurrentDb.OpenRecordset("Select * from MsysCmdbars")
Dim obj As New ADODB.Stream
With obj
.Type = adTypeBinary
.Open
.LoadFromFile "N:\Ben.txt"
rs.AddNew
rs.FIElds(0) = .Read
rs.FIElds(1) = "SHIPMenu"
rs.Update
End With
Set obj = Nothing
Set rs = Nothing
End Function
用以上的方法就可以很容易保存自己精心設計的菜單為TXT 或其他文件, 使用時再導入就可以了
至於二進制數據結構就沒進行深入研究,如哪位有更深入的研究心得,希望能給我發個MAIL