一个用recordset updata access数据库的小程序
程序代码如下:
Private Sub Form_Load()
    Dim cnn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim data As Long, number As Long
    Dim aa As String        number = 2
    
    Set cnn = New ADODB.Connection
    
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\test.mdb;Persist Security Info=False"        aa = "select value FROM tableA WHERE number = " & number
    rs.Open aa, cnn, adOpenKeyset, adOpenDynamic, adCmdText
    
    data = rs.Fields("value").Value
    lblDisplay.Caption = data    rs.Fields("value").Value = "100"
    rs.Update    Set rs = Nothing
    
End Subrun的时候显示:“rs.Open aa, cnn, adOpenKeyset, adOpenDynamic, adCmdText” 这行代码“对象变量或With块没有设置”
不知道那里有问题
我是基本上按照msdn上的例子程序打的
请高手帮忙看下这是什么问题

解决方案 »

  1.   

    在定义中,把  Dim rs As ADODB.Recordset改为:  Dim rs As New ADODB.Recordset
      

  2.   

    或者在rs.Open 前加:Set rs=New Adodb.RecordSet
      

  3.   

    可以讲一下为什么吗?
    我原来的没有new的时候可以访问,只不过不可以updata
      

  4.   

    ADO中的RecordSet是一个类,Dim rs As ADODB.Recordset只是定义了一个类对象,并没有实例化,那样去使用就会出错,只要实例化对象了才可以使用:
    Dim rs As New ADODB.Recordset'定义并实例化对象
    -------------------------
    Dim rs As Recordset'定义对象
    Set rs=New ADODB.RecordSet'实例化对象
      

  5.   

    Dim rs As Recordset'定义对象
    Set rs=New ADODB.RecordSet'实例化对象对于connection也是同样道理。我看lz对于connection 进行了实例化的