Access交流中心

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

代码删除窗体内所有控件

zhaoyoulong  发表于:2010-05-04 12:08:33  
复制

 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 随之减少,但J的最大值(一开始的frm.Controls.Count -1)不变?如果是这样我的代码应如何写?(我只是想把窗体内所有的控件全部清除)请老师指教!

我试过:

 

For Each ctl In frm.Controls
 

DeleteControl frm.Name, ctl.Name
 
Next
不报错,但不能全部删除所有控件!

 

Top
zhaoyoulong 发表于:2010-05-04 19:51:13

还是自己来回答一下吧!经过摸索我用以下办法解决了

DoCmd.OpenForm "临时", acDesign '设计示图模式下打开临时窗体
  
 Set frm = Screen.ActiveForm '当前激活窗体-"临时"
 
 frm.RecordSource = ""
 

do while frm.Controls.Count <> 0


  
DeleteControl frm.Name, frm.Controls(0).Name
 
loop

 
End If



lt 发表于:2010-05-04 22:45:33

也可以这样删除

 

 

For j = frm.Controls.Count - 1 To 0 Step -1
 
DeleteControl frm.Name, frm.Controls(j).Name
 
Next j



zhaoyoulong 发表于:2010-05-05 13:03:04
尽管我已解决了,但是还应谢谢你的回答,给最佳答案

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