Ms access 左键输入一个字母数字字符串,其中包含带0的特殊字符,使数字部分总共为5位?

Ms access 左键输入一个字母数字字符串,其中包含带0的特殊字符,使数字部分总共为5位?,ms-access,vba,Ms Access,Vba,我需要将字母数字字符串左键填充为0,以使字符串的数字部分总共为5位数字 例如: 1843Q->01843Q 691B->00691B 当字符串中引入特殊字符时,我的问题就出现了 例如: 4361G-3->04361G-3 我的代码的作用是: 4361G-3->04361G- 我的代码是 str1 = "-*" str = Job For i = 1 To Len(str) chr = Mid(str, i, 1) result = str Like s

我需要将字母数字字符串左键填充为0,以使字符串的数字部分总共为5位数字

例如:

1843Q->01843Q

691B->00691B

当字符串中引入特殊字符时,我的问题就出现了

例如:

4361G-3->04361G-3

我的代码的作用是:

4361G-3->04361G-

我的代码是

    str1 = "-*"
    str = Job
    For i = 1 To Len(str)
     chr = Mid(str, i, 1)
     result = str Like str1
     If IsNumeric(chr) Then
      If result = False Then
       strg = strg & chr
      End If
     ElseIf isalpha(chr) Then
      If result = False Then
       strg2 = strg2 & chr
     End If
     ElseIf chr = "-" Then
      strg3 = strg3 & chr
     ElseIf strg3 Like "-" Then
      strg3 = strg3 & chr
     ElseIf strg3 Like "[-]*" Then
      strg3 = strg3 & chr
     End If
Next i
strg = Format(strg, "00000") & strg2 & strg3
Job = strg

我需要如何更改它才能得到我想要的?

我认为有一种更简单的方法来编写函数。下面是一个即时窗口会话,演示您可以使用的VBA函数

strFoo=1843Q ? 瓦尔斯特福 1843 ? CStrValstrFoo 1843 ? LenCStrValstrFoo 4. ? MidstrFoo,LenCStrValstrFoo+1 Q ? RightString5,0和CStrValstrFoo,5 01843 ? RightString5,0和CStrValstrFoo,5和_ MidstrFoo,LenCStrValstrFoo+1 01843Q '使用另一个值进行测试。。。 strFoo=4361G-3 ? RightString5,0和CStrValstrFoo,5和_ MidstrFoo,LenCStrValstrFoo+1 04361G-3
我太懒了,不能真正编写函数。如果你愿意的话,自己试试看。如果您遇到问题,请向我们显示您的代码、错误消息,并指出哪一行触发了错误。

谢谢您。我实际上是VB的新手。您提到的VBA函数集实现了这一点。