(4):特征号码问题:
4.1:有AN555,AN5551,AN55551等号码,要求将左边的AN去掉,怎么办?
4.2:有2225+555+3+21+5+35,怎样提取系列的数字?(加号的数量等是未知的,如果含有*/-等呢?)[em27]作者: cattjiu 时间: 2003-1-28 19:07
所有的使用DAO一个一个记录去检查。
相加、相减、特征等问题使用left(),len(),val(),mid().do while过程判断。
比如判断AK14525
txt1=ak14525
len1=1
tt=len(txt1)
do while len1<tt
if left(txt1,1)<"a" then
ObjectValue=txt1
exit do
else
len1=2
end if
checkT=mid(txt1,len1,1)
if checkT<"a" then
ObjectValue=right(txt1,tt-len1)
exit do
len1=len1+1
loop
if len1=1 then
表字段值=val(txt1)+1
else
表字段值=left(txt1,len1) & val(mid(txt1,len1-1))+1
end if
msgbox "OK!"
end sub
只是思路,记得引用DAO。
作者: 竹笛 时间: 2003-1-28 19:08
以上问题最好是从源头控制,等问题出来了再处理不是个办法。作者: eio 时间: 2003-1-28 19:29
cattjiu,你D方法都几复杂啊,就一个答案代码之多非吾辈能及,而竹笛兄的源头问题好像未明我要做什么,因为不是我能控制的,就2.1问题“2.1:有“0005601”的号码,需要加“1”转换为0005602,怎样办?”是应用在销售单上的,便于几张单据一齐输入,虽然不能计时入单就会计来讲有点欠佳,但实际需要的,单号可能没有,就用流水号,单号可能是发票(7位),可能是收据(X位),可能是0000001,又可能是10000001,我怎样控制呢?至于其他问题,我在做一个【支持无限分级的物料表】采用一表一窗体完成前进后退的所有功能需要,不忘谢谢大家作者: cattjiu 时间: 2003-1-28 19:40
复杂也不复杂,不这样就手工搞定。作者: Trynew 时间: 2003-1-28 19:48
把问题分成前导0和特征码两种方法处理,特征码又分为定长(或已知)和不定长。
前面两种很容易,最后要判断分离特征码复杂一点。作者: eio 时间: 2003-1-28 19:54
trynew欲言又止了……简单介绍一下代码的方法嘛!作者: Trynew 时间: 2003-1-28 21:52
刚才要去吃饭
下面给出一个文本数值混合编号的增减量函数,看是否有启发:
Function TextNumAdd(NumStr As String, NumAdd As Integer) As String '增量可以为负数
Dim i As Integer
Const zerostr = "00000000000000000000"
'取右边数值字符串
For i = 1 To Len(NumStr)
If IsNumeric(Right(NumStr, i)) Then TextNumAdd = Right(NumStr, i)
Next
'如果数值加上增量的位数小于原来数值字符串则补0
If Len(Trim(Str(Val(TextNumAdd) + NumAdd))) < Len(TextNumAdd) Then
TextNumAdd = Left(NumStr, Len(NumStr) - Len(TextNumAdd)) & _
Left(zerostr, Len(TextNumAdd) - Len(Trim(Str(Val(TextNumAdd) + NumAdd)))) & _
Trim(Str(Val(TextNumAdd) + NumAdd))
Else
TextNumAdd = Left(NumStr, Len(NumStr) - Len(TextNumAdd)) & _
Trim(Str(Val(TextNumAdd) + NumAdd))
End If
End Function作者: eio 时间: 2003-1-28 22:47 标题: trynew…… trynew,为人为到底吧,您的代码比较深,看得【象雾又象花】,您能帮我做一个实例吗,我很想念您的源码,因为您真好人啊,如果我的物料分类做好了,送个比你啦,祝您新年进步……作者: Trynew 时间: 2003-1-28 23:19
那是因为帖子放上去把缩进空格都“吃”掉了。
这是一个函数,你靠过去就可以用了。
有空我做个实例方上去。作者: Trynew 时间: 2003-1-29 00:09 标题: 实例 文件下载作者: eio 时间: 2003-1-29 02:59
做得非常好trynew:
1,全部需求您都做到了。
2,语句精简。
日后还是多向您学习!谢谢您。顺便提醒trynew,您好像经常的忘记要使用NZ去掉空的字库串以免无效调用null啊
Private Sub Command6_Click()
MsgBox TextNumAdd(Me.Text3, 1)
End Sub
改为:
Private Sub Command6_Click()
MsgBox TextNumAdd(Nz(Me.Text3), 1)
End Sub