Office中国论坛/Access中国论坛
标题: 关于“收银”数据录入的问题。 [打印本页]
作者: secondonsite 时间: 2006-12-3 09:39
标题: 关于“收银”数据录入的问题。
在论坛上搜了一下,没有相关我的问题的讨论。现提出请明白人解答。
在一个Text框中输入货币性数据,我希望像Cashier在收银机上的输入方式一样,即:
当你输入的是带有小数点的数,则Text框显示你输入的源数,如你输入19.95,文本框会显示19.95;
当你输入整数时,Text框会就最后两位显示小数,如你输入190,Text会显示1.90;输入2175,显示21.75。
请问这在Text控件上的属性中如何设置?还是需要在Text控件的回车事件中写语句?如何写?
谢谢了!
作者: Joe5525601 时间: 2006-12-3 12:55
写代码比较好,在text控件的afterupdate事件中写:if int(控件名)=控件名 then 控件名=控件名/100。问题是,这样一来,你就没有办法输入整数了。比如你想输入15元,结果是0.15元。这种要求很奇怪,难道没有整数金额?
作者: ikon 时间: 2006-12-3 19:38
判断字符长度
If Len(控件名) >= 3 then
控件名=控件名/100
else
控件名=控件名
end if
(没试过,)
作者: secondonsite 时间: 2006-12-3 20:38
整数输入是:1500, 显示15.00
作者: ikon 时间: 2006-12-4 03:01
不好意思,我只是回答了2楼的问题,楼主的解决方法应该如下图的设置,如果要写代码,应该是判断倒数第3个字符是否为"."了,可是这个我不会写....你的要求真的很奇怪,为什么有时要输入19.95,显示19.95;有时要输入190,显示1.90,我想这跟个人的输入习惯有关
[attach]21884[/attach]
[此贴子已经被作者于2006-12-3 19:05:04编辑过]
作者: secondonsite 时间: 2006-12-4 05:24
收银机上都是这种录入。以最少的按键次数得到结果。
作者: ikon 时间: 2006-12-4 07:31
参考资料后按你的要求做了个,应该符合收银的输入习惯了吧,文本框什么设置都不用
[attach]21892[/attach]
[此贴子已经被作者于2006-12-3 23:54:43编辑过]
作者: ikon 时间: 2006-12-4 07:58
里面我的说明写错了,正确如下:
Private Sub 文本0_AfterUpdate()
'输入超过3位
If Len(Me.文本0) >= 3 Then
'倒数第3个字符不含".",例如输入2175,会显示21.75,所以除100
If InStr(Right(Me.文本0, 3), ".") = 0 Then
Me.文本0 = Me.文本0 / 100
'倒数第2个字符含".",例如输入190,会显示1.9,所以末尾补"0"
If InStr(Right(Me.文本0, 2), ".") > 0 Then
Me.文本0 = Me.文本0 & "0"
End If
End If
'字符长度为2,例如输入1500,会显示15,所以末尾补".00"
If Len(Me.文本0) = 2 Then
Me.文本0 = Me.文本0 & ".00"
End If
Else
'输入不超过3位
Me.文本0 = Me.文本0 & ".00"
End If
End Sub
作者: lungh 时间: 2008-11-7 10:23
这回真长见识了!
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) |
Powered by Discuz! X3.3 |