你好,我的adshq表有2个字段 zhangh,kehhao
我用了一个DATA GIRD 显示这个表的数据,我希望就是每次不用输入zhangh
让它每次自动加1,我写了下面的程序,但是运行没什么效果。帮点忙好吗?
Option Explicit
Dim rs As ADODB.Recordset
Dim rs2 As ADODB.Recordset
Dim perid As String
Private Sub Command1_Click()
Dim newid As Integer
Adodc1.Recordset.AddNew
newid = Val(Trim(perid)) + 1
rs!zhangh = Str(newid)
End Sub

解决方案 »

  1.   

    看楼主上面的代码,应该首先把当前最大的编号取出来放到变量perid中。
    "select max(hangh) from adshq"
      

  2.   

    如果是ACCESS,做表时设置为自动编号就可以了,插入数据时该行不管,自动编号
      

  3.   

    '叹息,建议楼主多看看基础代码,我给的那句是sql语句,需要提交到数据库的。
    Option Explicit
    Dim rs As ADODB.Recordset
    Dim rs2 As ADODB.Recordset
    Dim perid As StringPrivate Sub Command1_Click()
        Dim newid As Integer
        Dim strSQL As String
        
        If rs Is Nothing Then
            Set rs = New ADODB.Recordset
        ElseIf rs.State = adStateOpen Then
            rs.Close
        End If
        Adodc1.Recordset.AddNew
        strSQL = "select max(zhangh) from adshq"
        rs.CursorLocation = adUseClient
        '假设con是已经打开的连接
        rs.Open strSQL, con, adOpenStatic, adLockReadOnly
        If rs.RecordCount < 1 Then
            newid = 1
        Else
            newid = rs(0) + 1
        End If
        
        rs!zhangh = Str(newid)
    End Sub