Access交流中心

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

文本框的change事件中出现的这个小问题(如何直接endif)该怎么解决?

Danny  发表于:2019-03-20 10:36:32  
复制

01   Private Sub 数量_Change()

02       If IsNumeric(Me.数量.Text) = False  Then 

03            Me.数量.Text = 1
04       End If
05       代码1
06   End Sub

执行的时候,当IsNumeric(Me.数量.Text) = False时,代码执行的顺序是02-03-01-02-03-04-05-06-04-05-06
注意红色的部分,结果就是05行的代码1被重复执行了1次,原因应该是当IsNumeric(Me.数量.Text) = False时,执行了Me.数量.Text = 1,导致if没运行完就又触发了Private Sub 数量_Change()事件,当Private Sub 数量_Change()事件完成后又要去执行前面没执行完的if事件。
请问下各位,这里有什么办法能避免05行的代码1被执行2次吗?也就是说在执行完Me.数量.Text = 1后能直接endif,而不是再次触发Private Sub 数量_Change()事件

 

Top
西出阳关无故人 发表于:2019-03-20 12:18:45
试一下在控件的保存之前,或窗体的保存之前处理。

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