Access交流中心

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

大家看一下问题是出在哪儿?

wsxwsx1  发表于:2009-10-15 10:35:25  
复制

大家看一下问题是出在哪儿?

Private Sub CUSTOMER_KeyPress(KeyAscii As Integer)

 MsgBox Me.CUSTOMER.Text     '当输入一个字符时,此处显示null 空值,?????
 Me("CUSTOMER").RowSource = "SELECT CODE AS 代码, SHORTNAME AS 简称, NAME AS 全称 FROM COMPANY WHERE   code LIKE '*" &    Me.CUSTOMER.Text & "*' "
 Me.CUSTOMER.Dropdown
End Sub

当输入一个字符时,me.customer.text是null,,空值,是怎么一回事

 

Top
郑家龙 发表于:2009-10-15 11:45:42

最后说明一下你这样做的目的,然后看看用其它解决



trynew 发表于:2009-10-16 09:36:33

楼主可能未能理解不同事件的先后顺序及时机。

击键事件是接受一个字符的输入,还未改变控件的文本的时候就触发了,你可以在这个时候判断处理这个输入字符,取消输入甚至用自己的字符替换键盘输入的字符等。

这个时候读取出的控件文本(临时文本,还不是控件值,控件值是在全部输入完成后,及更新后事件中才完成替换),当然是上一次击键后的输入文本,你要包括本次的字符,可以使用Me.CUSTOMER.Text & Chr(KeyAscii)来试一试。即使是这样,也要考虑处理比如删除键之类的非可见字符或中文的情况。

 

如果没有什么特殊要求或要用到本次输入的字符(即KeyAscii值),你把你的代码放在改成在更改事件中执行了试一试。

 

如果有兴趣,你对跟控件的值变化有关的各种事件,比如各种键盘事件、焦点变化事件、更改和更新事件都做一个对比,理解各种事件的特点和应用细微之处,相信你会收获不少:)



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