设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1863|回复: 2
打印 上一主题 下一主题

[求助]请问,以下一段代码怎么会进入死循环?

[复制链接]
跳转到指定楼层
1#
发表于 2006-7-30 02:31:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
'以下是一段代码,希望对窗体中24个checkbox进行赋值。由于checkbox2、checkbox22、checkbox23与其它checkbox的值是排异的,也就是说当checkbox2、checkbox22、checkbox23分别选中时其它各个就为非选中状态。
'为什么当在这三个checkbox2、checkbox22、checkbox23中相互点击时会出现死循环?
'按CTRL+BREAK可中断,跟踪发现只在第10至第50条语句之间(或者是80-120)重复执行,60语句却不执行。晕啊!
10 Private Sub CheckBox22_Click()
20  For i = 1 To 24
30     Controls("checkbox" & i).Value = 0
40 Next
50 CheckBox22.Value = 1
60 TextBox2.Text = CheckBox22.Caption
70 End Sub
80 Private Sub CheckBox23_Click()
90  For i = 1 To 24
100     Controls("checkbox" & i).Value = 0
110 Next
120 CheckBox23.Value = 1
130 TextBox2.Text = CheckBox23.Caption
140 End Sub
150 Private Sub CheckBox2_Click()
160 For i = 1 To 24
170     Controls("checkbox" & i).Value = 0
180 Next
190 CheckBox2.Value = 1
200 TextBox2.Text = CheckBox2.Caption
210 End Sub

'请问,如何修改以上代码??
'先谢谢大家了!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
3#
发表于 2006-8-3 03:04:00 | 只看该作者
我估计,仅以第一个SUB为例子,

10 Private Sub CheckBox22_Click()
20  For i = 1 To 24
30     Controls("checkbox" & i).Value = 0
40 Next
50 CheckBox22.Value = 1
60 TextBox2.Text = CheckBox22.Caption
70 End Sub

第50句就又触发了CheckBox22_Click事件,可用F8来逐句查看,看看程序运转的流程。
2#
发表于 2006-7-31 03:55:00 | 只看该作者
估计是代码对某个控件的赋值触发了控件的事件,而事件中的代码又对控件进行了赋值而触发控件的事件,从而引起死循环。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-14 15:25 , Processed in 0.085625 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表