Access交流中心

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

怎样引用当前窗体

无际  发表于:2013-10-12 20:57:05  
复制

现在想自定义一个模块,在其中自定义一个过程,需要用到当前窗体。

简单的在单独一个标准模块中,直接用“me”就可以去用当前窗体,但是在自定义模块中应该用什么语句来引用当前窗体呢?

因为不同的标准模块在引用自定义过程时,窗体名都不同,所以肯定不能用“me”。自己测试使用“currentform”,发现根本没有这个

词,所以请教高手指点如何实现!代码如下:

Public Sub CtlBackColor()  '自定义过程遍历窗体控件,为空时底色变黄提醒!
 Dim ctl As control
   For Each ctl In Me.Controls
    If TypeOf ctl Is ComboBox Or TypeOf ctl Is TextBox Then
      If IsNull(ctl) Then
      ctl.BackColor = vbYellow
       Else
      ctl.BackColor = vbWhite
       End If
    
    End If
    Next ctl
End Sub

烦请指教修改!

 

Top
cspa 发表于:2013-10-13 02:16:32

定义一个object,把当前窗体传送到模块中处理。改为:

Public Sub CtlBackColor(currentform as object)  '自定义过程遍历窗体控件,为空时底色变黄提醒!
 Dim ctl As control
   For Each ctl In currentform.Controls
    If TypeOf ctl Is ComboBox Or TypeOf ctl Is TextBox Then
      If IsNull(ctl) Then
      ctl.BackColor = vbYellow
       Else
      ctl.BackColor = vbWhite
       End If
    End If
   Next ctl
End Sub

调用时将me传送给函数就行。如:

CtlBackColor Me

无际 发表于:2013-10-14 11:39:29
厉害 ,果然是高手多,这个问题困扰我很久了,多谢了,调用的时候直接使用 call ctlbackcolor (me)就可以了,呵呵呵,实在太感谢了!

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