Private Sub cmdAdd_Click()    '添加记录    blnAdd = True
    ControlState True    rs2.Open "select * from 员工信息表", cnn, adOpenKeyset, adLockOptimistic    If rs2.RecordCount > 0 Then        Text1(0) = "p" & Format$(Val(Right$(rs2.Fields("员工编号"), 4)) + 1, "0000")[/color]
    Else        Text1(0) = "p0001"    End If    rs2.Close    For i = 1 To Text1.UBound        Text1(i).Text = ""    Next i    Text1(1).SetFocusEnd Sub
上面的语句红线处,在往数据库中添加新员工时,为什么不能实现编号加1,请高手指教!!
我的员工编号格式为“[color=#FF0000]P0001

解决方案 »

  1.   

    Text1(0) = "p" & Format(Right$(rs2.Fields("员工编号"), 4) + 1, "0000")
    试试看
      

  2.   

    你只是显示了加1 的编号,并没向数据库写操作
    rs2.Fields("员工编号").Value=Val(Right$(rs2.Fields("员工编号"), 4)) + 1
    rs2.Update
     
      

  3.   

    确实没有写进数据库 
    SqlStr = "insert into 表"
    SqlStr =  SqlStr & "(字段1,字段2.....)"
    SqlStr =  SqlStr & "value(新数据1,新数据2....)"
    conn.Execute SqlStr
      

  4.   

    rs2.Fields("员工编号").Value="前面四位固定编号" & Val(Right$(rs2.Fields("员工编号"), 4)) + 1
    rs2.Update
      

  5.   


    可能是我没说清,我是先添加,使得窗体中文本框Text(0)里的编号加1,然后还有一个保存按钮,将数据整个放入数据库只能够
      

  6.   

    那就在按钮里写代码加到数据库
    rs2.Fields("员工编号").Value="前面四位固定编号" & Val(Right$(rs2.Fields("员工编号"), 4)) + 1
    rs2.UpdateBatch
      

  7.   

    For i = 1 To Text1.UBound  Text1(i).Text = ""  Next i
    把产生的编码清空了
      

  8.   

    先利用添加按钮,再利用保存按键将数据写入库Private Sub cmdSave_Click()    '保存记录    If blnAdd = True Then        rs2.Open "select * from 员工信息表", cnn, adOpenKeyset, adLockOptimistic
            rs2.AddNew        rs2.Fields("员工编号") = Text1(0).Text
            rs2.Fields("员工姓名") = Text1(1).Text
            rs2.Fields("性别") = Combo1.Text
            rs2.Fields("出生日期") = DTP1.Value
            rs2.Fields("文化程度") = Text1(2).Text
            rs2.Fields("身份证号") = Text1(3).Text        rs2.Update      
            rs2.Close        ControlState False
          End if
    End sub
      

  9.   


    此语句有,但是Text1(0).Text中的编号不能实现加1
      

  10.   

    给你段代码吧Adodc1.RecordSource = "select * from jtcyb  where yyz='" & gusername & "' order by id"
    Adodc1.Refresh
    If Adodc1.Recordset.RecordCount > 0 Then
        Adodc1.Recordset.MoveLast
        Text1.Text = Adodc1.Recordset.Fields("cybh")
        Text1.Text = "C" + Format(Val(Right(Adodc1.Recordset.Fields("cybh"), 3)) + 1, "000")
        Else
        Text1.Text = "C" + "001"
     End If
      

  11.   

    谢谢,解决了问题,关键是这句 Adodc1.Recordset.MoveLast