自定义菜单的另类导入导出
一、自定义菜单的存放位置:
所有自定义菜单都存放在系统表: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 或其他文件, 使用时再导入就可以了
(责任编辑:admin)