Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[5分]VBA模块内引用窗体控件的问题

似水流年  发表于:2011-08-22 17:49:07  
复制

大家好,是这样的,我想达到一个功能,就是当鼠标移动到按纽上的时候,有一个标签改变背景样式
我的步骤是,在窗体加载事件中执行模块1
模块1中循环所有窗体的控件,当是按纽时,则按纽的鼠标移动事件=模块二
模块2中检查如果按纽存在,截取按纽名称的关键字,并生成标签控件名称,然后检查标签控件存不存在,如果存在,则标签背景样式改为常规
menueach me  窗体载入事件下执行
Public Sub MenuEach(frm As Form)    模块1
    Dim ctl As Control
    For Each ctl In frm
        If TypeOf ctl Is CommandButton Then
            If ctl.Name Like "cmd_pm*" Then
                ctl.OnMouseMove = "=MenuMouseMove(" & ctl.Name & ")"
            End If
        End If
    Next
End Sub

Public Sub MenuMouseMove(ctl As Object)    模块2
    If Not (ctl  Is Nothing) Then
             i = Mid(ctl.Name, 7)
        If Not ("& "label_pm" & i &" Is Nothing) Then
            With "& "label_pm" & i &" 
               .BackStyle = 1
                .BackColor = 26559497
            End With
        End If
    End If
End Sub

以上是我的代码,可老是通不过,我检查了原因主要在"& "label_pm" & i &",我怎么总是引用不到这个控件啊,希望筹到的朋友帮忙看一下,该怎么改一改代码,谢谢

 

Top
似水流年 发表于:2011-08-22 22:05:04

经过老师的帮助,问题也经解决,方法是直接代入标签到模块2就行了,这么简单的方法怎么开始没想到呢。。。。。。



总记录:1篇  页次:1/1 9 1 :