设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 3744|回复: 10
打印 上一主题 下一主题

[窗体] 如何实际一边输入一边计算

[复制链接]
跳转到指定楼层
1#
发表于 2016-12-20 14:30:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用change事件都不行。

场景:t1、t2、t3 一共3个文本。
t3 = t1 x t2

输入t1 = 3  
在t2输入1时(焦点仍在t2),即时显示t3=3
在t2输入11时(焦点仍在t2),即时显示t3=33
在t2输入111时(焦点仍在t2),即时显示t3=333

ACCESS用哪个事件可以实现?谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2016-12-20 15:19:10 | 只看该作者
更改事件(change),改text,不要用value。http://www.office-cn.net/thread-121123-1-1.html
3#
 楼主| 发表于 2016-12-20 15:34:04 | 只看该作者
roych 发表于 2016-12-20 15:19
更改事件(change),改text,不要用value。http://www.office-cn.net/thread-121123-1-1.html

用text更加出错。
提示:除非控件获得焦点,否则不能引用控件的属性或方法。
4#
 楼主| 发表于 2016-12-20 15:37:22 | 只看该作者
上传附件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

5#
发表于 2016-12-20 15:56:33 | 只看该作者
本帖最后由 fd901028 于 2016-12-20 17:25 编辑

下班之前又看了一下这个问题,发现还真不简单,这样行不行?
注意:这段代码没有对t1,t2用户输入的数据类型进行判断,若用户输入数据类型不对会报错。判断代码上一个回复有有链接.

Private Sub t2_Change()

    Dim temStr As Long                       ''定义一个中间变量 我假定没有小数,类型用Long,   有小数请用其他类型
    temStr = CLng(t2.Text)                   ''设置变量=t2的"值",用 Text,Value不好使
    Me.t3 = CLng(t1.Value) * temStr      ''t1 的"值"用 Value,Text不好使
   
                                          ''为啥不好使?我这样理解(非官方哈)Text是用于显示的、正在编辑的,而Value是完成的、传给后续表单处理的。Text完了Value才有值。
   
End Sub



6#
发表于 2016-12-20 20:12:32 | 只看该作者
  1. Private Sub t1_Change()
  2.     Me.t3 = Val(Nz(Me.t1.Text)) * Val(Nz(Me.t2))
  3. End Sub

  4. Private Sub t2_Change()
  5.     Me.t3 = Val(Nz(Me.t1)) * Val(Nz(Me.t2.Text))
  6. End Sub
复制代码
7#
发表于 2016-12-21 01:51:01 | 只看该作者
accben 发表于 2016-12-20 15:34
用text更加出错。
提示:除非控件获得焦点,否则不能引用控件的属性或方法。

6楼已给出正确的方法了,请自行贴入代码执行。
8#
 楼主| 发表于 2016-12-22 11:48:37 | 只看该作者
Henry D. Sy
roych
两位辛苦了!谢谢两位的诚意解答!

通常情况下,我在使用ACCESS都会对文本框加以格式限制,如我设置文本是货币,如果在文本输入文字字符时,就会出错。
因此都不会对文本框的内容加以检测是否符合格式限制。
但用VB6时一般都会需要对文本的格式检测是否符合。

但通过这个例子,仍有疑问:
文本加属性与默认属性有何区别?如t1与t1.text与t1.value有什么区别?
9#
发表于 2016-12-22 12:00:15 | 只看该作者
本帖最后由 Henry D. Sy 于 2016-12-22 12:01 编辑

1.value属性是默认属性,也就是说t1与t1.value是一样的
2.当控件获得焦点时,Text 属性将包含控件中当前的文本数据,而 Value 属性将包含控件上一次保存的数据。当焦点移动到另一控件时,控件的数据将会更新,并且 Value 属性将设置为这一新值。在重新获得焦点之前,Text 属性设置是不可用的
控件更新后,而不移动焦点,则 Text 属性和 Value 属性的设置将是相同的。
10#
 楼主| 发表于 2016-12-22 13:07:09 | 只看该作者
谢谢Henry D. Sy版主。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-1 19:22 , Processed in 0.079858 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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