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