下面是VB中的一些代码Dim a As String
Set adors = New ADODB.Recordset
adors.Open "select MAX(图书编号) as 图书编号 from bookinfo where 图书类型='" & DataCombo1.Text & "'", adoCon, adOpenStatic, adLockReadOnly
a = adors.Fields("图书编号")我想让得出的最大值 自动在末位加1,比如在这里得出 a = A100004,自动+1后就变为a= A100005
这样该怎么实现,a=a+1明显不行,郁闷

解决方案 »

  1.   

    a = adors.Fields("图书编号")
    a = Left(a, 1) & Format(Val(Mid(a, 2)) + 1, String(Len(a) - 1, "0"))
      

  2.   

    adors.Open "select LEFT(MAX(图书编号),LEN(MAX(图书编号)-1) +CAST(CAST(RIGHT(MAX(图书编号),1) AS INT)+1 AS VARCHAR) as 图书编号 from bookinfo where 图书类型='" & DataCombo1.Text & "'", adoCon, adOpenStatic, adLockReadOnly
      

  3.   

    adors.Open "select MAX(图书编号) as 图书编号 from bookinfo where 图书类型='" & DataCombo1.Text & "'", adoCon, adOpenStatic, adLockReadOnly
    a = "A" & (Val(Mid(adors.Fields("图书编号"),2)) + 1)
      

  4.   

    a = adors.Fields("图书编号")
    a = Left(a, 1) & Format(Val(Mid(a, 2)) + 1, String(Len(a) - 1, "0"))这样写得出结果为A000100004哪里写错了??
      

  5.   

    a = adors.Fields("图书编号")
    a = Left(a, 1) & Format(Val(Mid(a, 2)) + 1, String(Len(a) - 1, "0"))这样写得出结果为A000100004哪里写错了??
    -----------------------------------
    应该不会吧
      

  6.   

    把他改为a = Left(a, 1) & Format(Val(Mid(a, 2)) + 1)就能正常显示了
    不过不知道VAL(MID(A,2))是什么意思