Dim rstemp As ADODB.Recordset
Private Sub Form_Load()
  
  rstemp.Open "select 最后记录号 from 记录号表", ydata.mycon,adOpenStatic, adLockReadOnly
  Me.text1.Text = rstemp.Fields("最后记录号") + 1  '正确
  rstemp.Fields("最后记录号").Value = rstemp.Fields("最后记录号") + 1 '错误
 End Sub
或者
rstemp.fields("最后记录号").value=me.text1.text   '也是错误
怎么解决?谢谢大家了。

解决方案 »

  1.   

    你的rstemp的打开方式是只读的: adLockReadOnly
      

  2.   

    自动编号吗?
    我这个也是自动编号,如果记录中的记录是1.2.3.4.5他就会插入6
    如果是1.2.4.5.6那么就是插入3
    -------------------------------------------------------------------
    Dim Rs As ADODB.Recordset
    Dim Cn As ADODB.ConnectionPrivate Sub Command1_Click()
    AutoId2End Sub
    ...................................................Private Sub Form_Load()
    Set Rs = New ADODB.Recordset
    Set Cn = New ADODB.Connection
    With Cn
        .ConnectionString = Cn_str
        .Open
    End With
    Display
    End Sub
    ...................................................
    Public Sub Display()
    If Rs.State <> 0 Then Rs.Close
    With Rs
          .CursorLocation = adUseClient
          .CursorType = adOpenStatic
          .LockType = adLockPessimistic
          .Open "select id from TA order by id  ", Cn
    End With
    End Sub
    .................................................................
    Public Sub AutoId2()
    On Error GoTo wrong
    Dim Num1 As Integer
    Dim Num2 As Integer
    Display
    If Rs.EOF And Rs.BOF Then
    Text1.Text = 1
    Exit Sub
    Else    If Rs!id <> 1 Then
            Text1.Text = 1
            Exit Sub
        Else
        Num1 = 1
        Rs.MoveNext
        
        If Rs.EOF Then
            Text1 = 2
            Exit Sub
        End If
        Num2 = Rs!id
     End If
        
        ''''''''''''''''''''''''''''''''''''''''
        Do While Num2 - Num1 = 1
        Num1 = Rs!id
        Rs.MoveNext
        Num2 = Rs!id
        Loop
        Num1 = Num1 + 1
        Text1.Text = Num1
        Exit Sub
    End If
    wrong:
        Rs.MoveLast
        Text1.Text = Rs!id + 1
    End Sub
      

  3.   


    Dim rstemp As ADODB.Recordset
    Private Sub Form_Load()
      
      rstemp.Open "select 最后记录号 from 记录号表", ydata.mycon,adOpenStatic, adLockReadOnly '这样的记录号是不可更新的
      Me.text1.Text = rstemp.Fields("最后记录号") + 1  '正确
      rstemp.Fields("最后记录号").Value = rstemp.Fields("最后记录号") + 1 '错误
     End Sub
      

  4.   

    '你必须打开表来处理:Dim rstemp As ADODB.Recordset
    Private Sub Form_Load()
      Dim rst As ADODB.Recordset
      set rst=new adodb.recordset  '取得最大记录号
      rst.Open "select 最后记录号 from 记录号表", ydata.mycon,adOpenStatic, adLockReadOnly '这样的记录号是不可更新的  '打开表,进行更新
      rstemp .Open "记录号表", ydata.mycon
      rstemp.Fields("最后记录号").Value =rst(0).value+1
      
      '处理后关闭记录集
      rst.close
      set rst=nothing
     End Sub
      

  5.   

    Private rsWoNumber As ADODB.Recordset
    Public Function WONumberMax() As Double
    '''-------------------1-------------------
    '''目        的:  通用的求最大id值
    '''输        入:
    '''被  传 递 值:  无
    '''返   回   值:  最大id值+1
    '''输        出:
    '''注        解:
    '''用        法:
    '''修  订    版:  2003-10-30
    '''-------------------1-------------------w
     On Error GoTo SaveErr
                    Set rsWoNumber = cnnCMMS.Execute("select max(id) as idfrom tblwo ")
                    If Not IsNull(rsWoNumber.Fields("id").Value) Then
                      WONumberMax = rsWoNumber.Fields("id").Value
                    Else
                      WONumberMax = 0
                    End If
                    WONumberMax = WONumberMax + 1
     Exit Function
    SaveErr:
      MsgBox Err.Description, vbOKOnly + vbExclamation, "警告!" '& ErrEnd Function
      

  6.   

    Dim rstemp As ADODB.Recordset
    Private Sub Form_Load()
      
      rstemp.Open "select 最后记录号 from 记录号表", ydata.mycon,adOpenStatic,
    adLockBatchOptimistic '此处改为adLockBatchOptimistic 
      Me.text1.Text = rstemp.Fields("最后记录号") + 1  '正确
      rstemp.Fields("最后记录号").Value = rstemp.Fields("最后记录号") + 1 '错误
     End Sub