Dim isAdding As Boolean
Dim rsr As New ADODB.Recordset
Public Sub InitRecordSet()
If (rsr.State = 1) Then
rsr.Close
End If
rsr.Open "select * from [注塑销售订单]", conn, 3, 2
Set DataGrid1.DataSource = rsr
End SubSet DataGrid1.DataSource = rsr
/提示行集合不能作为标签 7004

解决方案 »

  1.   

    连接字符串的问题
    rsr.Open "select * from [注塑销售订单]", conn, 3, 2改成如下:
    rsr.CursorLocation = adUseClient
    rsr.Open  "select * from [注塑销售订单]", conn, adOpenDynamic, adLockOptimistic
      

  2.   

    给数据库表增加一个主键。这个错误的原因是因为脱机的数据没有主键ADO不知道它如何和数据库的记录对应。
    比如说你的数据库有两条一样的数据,那么你在客户端修改其中一条,再更新,ADO知道你修改的是哪一条呢?http://blog.csdn.net/cly2004/article/details/333304
      

  3.   

    顶....
    最简单的方法以就是: 换为: rsr.Open  "select * from [注塑销售订单]", conn, adOpenStatic, adLockOptimistic
      

  4.   

    应该是绑定有活动的连接对象 conn 的记录集时,要求采用动态游标(2)。而楼主用的是静态游标(3)。
    当没有连接对象时,下面的代码可以运行:
    ' Create a Recordset
    Dim rst As ADODB.RecordsetPrivate Sub Command1_Click()
      
       Set rst = New ADODB.Recordset
       
       ' Add columns to the Recordset
       rst.Fields.Append "Key", adInteger
       rst.Fields.Append "Field1", adVarChar, 40, adFldIsNullable
       rst.Fields.Append "Field2", adDate   ' Open the Recordset
       rst.Open , , 3, 2   ' Add data to the Recordset
       rst.AddNew Array("Key", "Field1", "Field2"), _
          Array(1, "string1", Date)
       rst.AddNew Array("Key", "Field1", "Field2"), _
          Array(2, "string2", #1/1/2000#)   ' Populate the Data in the DataGrid
       Set DataGrid1.DataSource = rstEnd Sub
    Private Sub Command2_Click()
       ' Modify the data through code
       rst.MoveFirst
       rst(1) = "Changed Field"
       rst.UpdateBatch
    End SubPrivate Sub Form_Load()
       Command1.Caption = "Populate"
       Command2.Caption = "Update"
    End Sub