我的动态添加菜单的代码如下,请问如何修改:(现在运行的结果是所有的三级菜单都一样子了)Option Explicit
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim rss As New ADODB.RecordsetPrivate Sub Form_Load()
Set rs = New ADODB.Recordset
conn.Open "DBQ=" & App.Path & "\mnuDate.mdb" & ";Driver={Microsoft Access Driver (*.mdb)};pwd="
rs.Open ("select DISTINCT 父用户组 from 表1"), conn, 1, 3
Dim smnu As String '//父用户组菜单项
hMenu = CreateMenu()
hmenupopup = CreatePopupMenu()
hmenupopup1 = CreatePopupMenu()
hmenupopup2 = CreatePopupMenu()
result = AppendMenu(hMenu, MF_POPUP, hmenupopup, "&File")
result = AppendMenu(hmenupopup, MF_STRING, 300, "&Save")
result = AppendMenu(hmenupopup, MF_STRING, 200, "&SaveAs")
result = AppendMenu(hmenupopup, MF_POPUP, hmenupopup1, "&New")
'//添加父用户组
While Not rs.EOF
smnu = rs("父用户组")
result = AppendMenu(hmenupopup1, MF_POPUP, hmenupopup2, smnu)
Call xmnus(smnu)
rs.MoveNext
Wend
rs.Close
oldwinproc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf OnMenu
End SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim r As RECT
Dim p As POINTAPI
If Button = vbRightButton Then
GetCursorPos p
TrackPopupMenu hmenupopup, 0, p.x, p.y, 0, Me.hWnd, r
End If
End SubPrivate Sub Form_Unload(Cancel As Integer)
SetWindowLong Me.hWnd, GWL_WNDPROC, oldwinproc
End SubPrivate Function xmnus(smnu As String) '//添加子用户组
Set rss = New ADODB.Recordset
Dim xmnu As String '//子用户组菜单项
rss.Open ("select DISTINCT 子用户组 from 表1 where 父用户组='" & smnu & "'"), conn, 1, 3
While Not rss.EOF
xmnu = rss("子用户组")
result = AppendMenu(hmenupopup2, MF_STRING, 500, xmnu)
rss.MoveNext
Wend
rss.Close
End Function
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim rss As New ADODB.RecordsetPrivate Sub Form_Load()
Set rs = New ADODB.Recordset
conn.Open "DBQ=" & App.Path & "\mnuDate.mdb" & ";Driver={Microsoft Access Driver (*.mdb)};pwd="
rs.Open ("select DISTINCT 父用户组 from 表1"), conn, 1, 3
Dim smnu As String '//父用户组菜单项
hMenu = CreateMenu()
hmenupopup = CreatePopupMenu()
hmenupopup1 = CreatePopupMenu()
hmenupopup2 = CreatePopupMenu()
result = AppendMenu(hMenu, MF_POPUP, hmenupopup, "&File")
result = AppendMenu(hmenupopup, MF_STRING, 300, "&Save")
result = AppendMenu(hmenupopup, MF_STRING, 200, "&SaveAs")
result = AppendMenu(hmenupopup, MF_POPUP, hmenupopup1, "&New")
'//添加父用户组
While Not rs.EOF
smnu = rs("父用户组")
result = AppendMenu(hmenupopup1, MF_POPUP, hmenupopup2, smnu)
Call xmnus(smnu)
rs.MoveNext
Wend
rs.Close
oldwinproc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf OnMenu
End SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim r As RECT
Dim p As POINTAPI
If Button = vbRightButton Then
GetCursorPos p
TrackPopupMenu hmenupopup, 0, p.x, p.y, 0, Me.hWnd, r
End If
End SubPrivate Sub Form_Unload(Cancel As Integer)
SetWindowLong Me.hWnd, GWL_WNDPROC, oldwinproc
End SubPrivate Function xmnus(smnu As String) '//添加子用户组
Set rss = New ADODB.Recordset
Dim xmnu As String '//子用户组菜单项
rss.Open ("select DISTINCT 子用户组 from 表1 where 父用户组='" & smnu & "'"), conn, 1, 3
While Not rss.EOF
xmnu = rss("子用户组")
result = AppendMenu(hmenupopup2, MF_STRING, 500, xmnu)
rss.MoveNext
Wend
rss.Close
End Function
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货