Office中国论坛/Access中国论坛

标题: 请教一下,数据有数字改为文本,表达式该如何修改。 [打印本页]

作者: dlack    时间: 2012-4-6 14:45
标题: 请教一下,数据有数字改为文本,表达式该如何修改。
请教各位,我想将下面红色的“0”改成带有字母的数据,比如说“E0”,应该如何修改。在字段设置里面"请购单ID”为文本。

Private Sub Form_Open(Cancel As Integer)
    Dim stID As String   
    If IsNull(Me.OpenArgs) Then
        stID = CLng(Nz(DMax("CLng([请购单ID])", "请购单"), 0)) + 1
       Else
        stID = Me.OpenArgs
        End If
   Set mDAOTransForm = New DAOTransForm
    mDAOTransForm.InitForm Me, "Select * From 请购单 Where 请购单ID='" & stID & "'", _
        Me.frmsub, "Select * From 请购单明细 Where 请购单ID='" & stID & "'"   
    If mDAOTransForm.FormDataMode Then
        Me.Caption = "添加请购单"
        Me.请购单ID.DefaultValue = stID
    Else
        Me.Caption = "编辑请购单"
    End If        
    Me.frmsub.Form.请购单ID.DefaultValue = stID
    Me.frmsub.Requery      
End Sub
作者: Henry D. Sy    时间: 2012-4-6 15:57
传例子
作者: aslxt    时间: 2012-4-6 16:25
本帖最后由 aslxt 于 2012-4-6 16:32 编辑

如果字段中不包含非数字的字符这一步应该没有问题:
Nz(DMax("CLng([请购单ID])", "请购单"), “E0”)
但是如果字段中包含非数字的字符,CLng可能就会出问题。
个人觉得:你应该把编号(请购单ID)的规定列举出来,比如说“E0001"开始,到"E0002"...,一直到"E9999",这里第一位的E表示单位或部门或单据类别,总之,只用一位英文字符,后面的4位为顺序号。只有把你的想法说出来,才好解决问题
作者: roych    时间: 2012-4-6 16:40
貌似用Val([请购单ID])会好些。
作者: aslxt    时间: 2012-4-6 16:43
Val对于第一个字符为非数字字符会出现问题,例如“0001A"可以转为1,但是”A0001“就发生错误
作者: dlack    时间: 2012-4-6 17:15
aslxt 发表于 2012-4-6 16:25
如果字段中不包含非数字的字符这一步应该没有问题:
Nz(DMax("CLng([请购单ID])", "请购单"), “E0”)
但 ...

[attach]48901[/attach]

我是想让请购单号中包含字母,比如你说的“E1~E999”一样,我上传了附件,能帮忙解决一下吗?谢谢了!
作者: aslxt    时间: 2012-4-6 20:35
本帖最后由 aslxt 于 2012-4-6 20:37 编辑

如果流水号不会超过99的话,可改为下面代码:
...
If IsNull(Me.OpenArgs) Then
        stID = "s" & Format(Right(Nz(DMax("请购单ID", "请购单"), "s00"), 2) + 1, "00")
Else
        stID = Me.OpenArgs
End If
...
如果流水号不会超过9999的话,可改为下面代码:
...
If IsNull(Me.OpenArgs) Then
        stID = "s" & Format(Right(Nz(DMax("请购单ID", "请购单"), "s0000"), 2) + 1, "0000")
Else
        stID = Me.OpenArgs
End If
...


作者: dlack    时间: 2012-4-6 20:47
aslxt 发表于 2012-4-6 20:35
如果流水号不会超过99的话,可改为下面代码:
...
If IsNull(Me.OpenArgs) Then

[attach]48905[/attach] aslxt ,你好,我改了之后运行请购单ID成乱码了,能再帮我看看吗?
作者: aslxt    时间: 2012-4-6 21:16
...
Me.请购单ID.DefaultValue = """" & stID & """"
...
Me.frmsub.Form.请购单ID.DefaultValue = """" & stID & """"
...
作者: dlack    时间: 2012-4-6 21:43
aslxt 发表于 2012-4-6 21:16
...
Me.请购单ID.DefaultValue = """" & stID & """"
...

成功了,非常感谢你的热心和耐心,aslxt !
作者: aslxt    时间: 2012-4-6 21:52
本帖最后由 aslxt 于 2012-4-6 21:57 编辑

不客气,我不过是在锻炼耐力的同时测试一下表达能力{:soso_e113:}




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