设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[Access本身] 求只能输入有一定规则数字的文本框

[复制链接]
跳转到指定楼层
1#
发表于 2008-12-19 21:28:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大家帮我解决一文本框输入数字问题,不胜感激。
文本框的输入规则:
1、只能输入数字和点,但点不能出现在第一位和最后一位,如果出现则自动补零。
2、第一位不能为零,如果输入后,自动去掉,例如输入了030,输入完后自动去0成为30
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2008-12-19 22:51:42 | 只看该作者
没有测试,你自己测试一下看看。再说

Private Sub Text0_Change()
    Dim Byt, LastBit
    If Not Len(Me.Text0.Text) = 0 Then
        Byt = Right(Me.Text0.Text, 1)
        LastBit = Asc(Byt)
        If LastBit < 48 Or LastBit > 57 Then
            If LastBit <> 46 Then
                MsgBox "Enter The Number Or Point Only"
                SendKeys "{BS}"
            End If
        End If
    End If
End Sub

Private Sub Text0_LostFocus()
    Dim FirstBit As String
    Dim LastBit As String
    Dim str As String
    If Not IsNull(Me.Text0) Then
        str = Me.Text0
        FirstBit = Left(str, 1)
        LastBit = Right(str, 1)
        If FirstBit = "0" Or FirstBit = "." Then
            Me.Text0 = Mid(str, 2)
            str = Me.Text0
        End If
        If LastBit = "." Then
            Me.Text0 = Left(str, Len(str) - 1) & "0"
        End If
    End If
End Sub
3#
发表于 2008-12-20 10:10:35 | 只看该作者
第一个字符输入“.”IsNumeric 返回假
4#
发表于 2008-12-20 10:22:43 | 只看该作者
晕,怎么感觉就是一个固定数字格式,小数点固定位数
输入.56不就自动变成0.56了吗
输入56.不就自动变成56.00了吗
输入其他文本就提示错误
还要代码吗?
5#
 楼主| 发表于 2008-12-20 20:07:28 | 只看该作者
感谢各位老师指点与辩论,有启发,www.office-cn.net网站就是好啊,能与这么多网友一起讨论学习ACCESS,为感谢各位,也献上一段代码,是如何判断一个时间段内经历多少个工作日.
函数源于明日科技
Private Function gongzuori(ByVal d1 As Date, ByVal d2 As Date)
  Dim i As Date
  Dim num As Integer
  For i = CDate(d1) To CDate(d2)
      If Weekday(i, vbMonday) <> 7 And Weekday(i, vbMonday) <> 6 Then
        num = num + 1
      End If
  Next i
  gongzuori = num
End Function
调用
Private Sub Command1_Click()
  If IsDate(Text1) = True And IsDate(Text2) = True Then
    Dim i As Integer
    i = gongzuori(CDate(Text1), CDate(Text2))
    Label3.Caption = "经历" & i & "个工作日"
  Else
    MsgBox "请输入日期型"
End If
End Sub
6#
发表于 2008-12-20 20:14:57 | 只看该作者
要是能把假期也计算出来就好了。
7#
发表于 2008-12-22 11:40:16 | 只看该作者
原帖由 Henry D. Sy 于 2008-12-19 22:51 发表
没有测试,你自己测试一下看看。再说

Private Sub Text0_Change()
    Dim Byt, LastBit
    If Not Len(Me.Text0.Text) = 0 Then
        Byt = Right(Me.Text0.Text, 1)
        LastBit = Asc(Byt)
      ...


请问斑竹,怎样取消"点"的输入,即只能输入为数字.

另:当第一个输入为"点",然后关闭窗体,代码出错
8#
发表于 2008-12-23 11:22:34 | 只看该作者
6D版主来看看啊.
9#
发表于 2008-12-23 13:37:51 | 只看该作者
纯数字就用三楼的方法
10#
发表于 2008-12-24 10:00:17 | 只看该作者
谢谢,搞定.

另:您给的代码,怎么我输入.5变为5, 输入51.变成510,51..变成51.0

[ 本帖最后由 小小鸟 于 2008-12-24 10:10 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 01:23 , Processed in 0.102262 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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