Access交流中心

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

如何删除窗体中的控件

zhaoyoulong  发表于:2010-04-30 16:26:14  
复制

请教:窗体中的控件用什么方法删除?(清空窗体)用代码

 

Top
黎红军 发表于:2010-05-01 03:57:10

Me.控件名= Null

Me.控件名=""



煮江品茶 发表于:2010-05-01 14:28:17

Sub DelControls(frm As Form)
Dim ctls As Controls
Dim ctl As Control
Set ctls = frm.Controls
For Each ctl In ctls
   
DeleteControl frm.Name, ctl.Name
Next
End Sub

注意:参数中的frm窗体要打开时选设计视图



zhaoyoulong 发表于:2010-05-04 12:01:49

 DoCmd.OpenForm "临时", acDesign '设计示图模式下打开临时窗体
  
 Set frm = Screen.ActiveForm '当前激活窗体-"临时"
 
 frm.RecordSource = ""
 
 If frm.Controls.Count > 0 Then
  
For j = 0 To frm.Controls.Count - 1
 
DeleteControl frm.Name, frm.Controls(j).Name
 
Next j
 
 Else
 
End If
运行后出现“运行错误2458,指定数目大于实际控件数目”

是不是我的代码删除一个控件后frm.Controls.Count 较之前少1,但J的最大值(一开始的frm.Controls.Count -1)不变?如果是这样我的代码应如何写?(我只是想把窗体内所有的控件全部清除)请老师指教!



煮江品茶 发表于:2010-05-04 12:44:24

这个问题我也遇到过,为了找出这个问题的毛病和解决方法,整整花费了一天时间。呵呵

最后在调用时这样解决的:

Do While frm.Controls.Count <> 0
    Call DelControls(frm)
Loop

 

详细处理方法,可参见《通用查询实例》一文。



zhaoyoulong 发表于:2010-05-05 13:08:15

我已自己解决了,不过还是要感谢你对我的帮助



麥田 发表于:2011-06-11 16:07:54
用的什么方法

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