Access交流中心

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

遍历控件-精简代码

刘文坚  发表于:2011-04-28 10:17:24  
复制

我有如下的代码,当选择企业名称A1的组合框时,下面的纳税人识别号A1、地址与电话A1与开户银行与账号A1 会进行清空+重新查询+赋第1个值

问题:能否用循环的方式,对指定名称的控件执行“清空+重新查询+赋第1个值”的操作,谢谢(因为我还有类似的代码很多,如果能精简的,有便于管理)

Private Sub 企业全称A1_AfterUpdate() '更新后事件:清空+重新查询+赋第1个值
 Me.纳税人识别号A1 = Null
 Me.纳税人识别号A1.Requery
 Me.纳税人识别号A1 = Me.纳税人识别号A1.ItemData(0)
 Me.地址与电话A1 = Null
 Me.地址与电话A1.Requery
 Me.地址与电话A1 = Me.地址与电话A1.ItemData(0)
 Me.开户银行与账号A1 = Null
 Me.开户银行与账号A1.Requery
 Me.开户银行与账号A1 = Me.开户银行与账号A1.ItemData(0)
End Sub

 

Top
红尘如烟 发表于:2011-04-28 14:08:38
Function FunAfterUpdate(NameMark As String)
    Dim ctl As Control

    For Each ctl In Me
        If TypeOf ctl Is ComboBox Then
            If ctl.Name Like NameMark Then
                ctl = Null
                ctl.Requery
                ctl = ctl.ItemData(0)
            End If
        End If
    Next
End Function

Private Sub 企业全称A1_AfterUpdate()
    FunAfterUpdate "*A1"     '重新设置名称以A1结尾的组合框
End Sub

煮江品茶 发表于:2011-04-28 14:24:17

1、写一自定义函数或自定义子程序:

function Pro(ctrlname as string)
dim ctrls as controls
set ctrls=me.controls
ctrls(ctrlname) = Null
ctrls(ctrlname).Requery
ctrls(ctrlname) = ctrls(ctrlname).ItemData(0)
end function

 

2、如果所需执行操作的控件占窗体控件的比例较少时,枚举执行自定义函数:

Private Sub 企业全称A1_AfterUpdate()
Call Pro("纳税人识别号A1")
Call Pro("地址与电话A1")
Call Pro("开户行与账号A1")
End Sub

 

3、如果所需执行操作的控件占窗体控件的比例较多时,循环执行自定义函数:

Private Sub 企业全称A1_AfterUpdate()
dim ctrls as controls
dim ctrl as control
dim B as boolean
set ctrls=me.controls
B=true
B=B and ctrl.name<>"ctrlname1" '排除不执行过程的控件
B=B and ctrl.name<>"ctrlname2"
...
for each ctrl in ctrls
    if B=true then
       Call Pro(ctrl.name)
    end if
next ctrl
End Sub



刘文坚 发表于:2011-04-29 00:24:04

回复2楼,我运行时,提示:无效使用Me关键字

请问如何解决



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