Office中国论坛/Access中国论坛

标题: [求助]如何设置根据输入的字符位数在总位数限制内动态增加前引缀? [打印本页]

作者: szlga    时间: 2007-5-1 00:43
标题: [求助]如何设置根据输入的字符位数在总位数限制内动态增加前引缀?
如题述,一编号字段需人工输入,字长6位数字,输入时只想输入后面几位数字,前面自动加0,请问怎么设置。

如果后面几位数是固定的,如三位,当然可以通过格式属性回固定前缀,如000386,只输入386,格式显示000386,但后面几位数字可能会发生变化,比如当4位的时候,如005869,如还按上述操作,只输入5897,就会出现0005897,超过总位数限制,请问如何设置可动态根据输入的字符位数动态增加前缀?
作者: 一点通    时间: 2007-5-1 00:51
在格式中输入000000六个0就行了
作者: szlga    时间: 2007-5-1 01:15
不行呀,这个我早都试过了,还是只显示输入的字符。如输入93,还显示93,而我要显示的是000093

还有哇,我这个字段的数据类型是文本类型。
作者: 一点通    时间: 2007-5-1 01:17
可以的,如果不能的话,传你的例子上来看一下,

或者用Format([文本框名],"000000")格式一下

[此贴子已经被作者于2007-4-30 17:19:26编辑过]


作者: szlga    时间: 2007-5-9 02:37
标题: 确是不行呀
不知怎么回事上传不了附件。

其实我已经说得很明白了,一个字段,假设输入3位数389,自动显示000389;假设输入位数5649,自动显示005649;假设输入的是5位数,32654,自动显示032654。即在总位数限制下,回前缀0。

另外请问,用Format([字段名],"000000")格式一下,是在字段的哪个属性里设?
作者: tz-chf    时间: 2007-5-9 05:43
在文本框的更新后事件里(afterupdate)

me.编号字段文本框=right("000000" & me.编号字段文本框, 6)

文本框的输入过滤你自己做(即只接受数字的输入,其它的无效。)

我倾向于不使用format。

[此贴子已经被作者于2007-5-8 21:44:45编辑过]


作者: zxzx2733    时间: 2007-5-9 07:42
下面这段代码,只要输发票号的最后1-4位数,前面的有变动时才去输入

Private Sub 发票号码_AfterUpdate()
On Error GoTo Err_发票号码__Click
Dim a, b

Dim Intab as Integer (这个声明要放在窗体的头部)

If Intab > 0 And Len(Me.发票号码) < 5 Then
Me.发票号码.Value = Intab & Format(Me.发票号码, "0000")
End If
Intab = 0
Intab = Left(Me.发票号码, 4)


b = Me![发票号码]
a = DLookup("发票号码", "输入子", "发票号码='" & Me![发票号码] & "'")
If b = a Then
MsgBox "发票号 " & b & " 有重复!"
End If


Err_发票号码__Click:
    Exit Sub
    End Sub

[此贴子已经被作者于2007-5-8 23:44:10编辑过]


作者: szlga    时间: 2007-5-10 01:12
谢谢tz-chf,问题解决了。真心感谢 。
作者: szlga    时间: 2007-5-10 01:25
还想再问一下,本人是新手,此文本框的输入过滤我现在是在其属性的有效性规则设置规则>0,经测试后可以达到目的,但输入非数字时,会提示类型不对,我想是不是有更好的办法。请帮忙。谢谢。
作者: szlga    时间: 2007-5-10 01:28
不好意思,问题解决了,设置通过设置掩码就可以了。
作者: tz-chf    时间: 2007-5-10 05:37
7楼的思路不错,用得到的话很好,代码我没仔细看。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3