jxawgyl 发表于 2008-6-29 09:35

请版主来帮个忙(查错)

我以前做的都是用绑定ADO,听了版主的不用绑定,但不知错在哪?
Private Sub Form_Load()
'创建connection对象cnn,关new用于创建新对象
Dim Cnn As New ADODB.Connection
'创建Recordset对象rs
Dim rs As New ADODB.Recordset
'设置查询记录集的SQL语句,
Dim varsource As String
varsource = "select  * from dbo.RecipeView where  addtime>=dateadd(day,-7,getdate())and executeoffice=4008 "
'设置连接字符串connectionstring属性
Cnn.ConnectionString = "Provider=SQLOLEDB.1;User ID=sa;" _
                       + "Initial Catalog=jchisn;Data Source=JXJXYY"
'打开到数据库的连接
Cnn.Open
'设置rs的ActiveConnection属性,并指定与其关联的数据库连接
Set rs.ActiveConnection = Cnn
'设置游标类型
rs.CursorType = adOpenStatic  
'打开记录集
rs.Open varsource
'将指针移动到记录集的最后
rs.Move rs.RecordCount
Set DataGrid1.DataSource = rs
End Sub
可以显示出数据,但我想在选中DataGrid1中的一行时,便修改这行中的sendope、sendtime的数据,并同时刷新记录源
Private Sub Command1_Click()
  '判断是否选择了表中的一行
  'If rs.Recordset.EOF = True Or rs.Recordset.BOF = True Then
  '  MsgBox "请选择要显示的行"
   ' Exit Sub
' End If
  '读取数据
    With rs
   .Recordset.Fields("sendope") = 1
   .Recordset.Fields("sendtime") = Now()
   .Recordset.Update
   .Recordset.Requery
   End With
End Sub
错误信息:实时错误‘424’要求对象
请帮我看一下,先谢了

[[it] 本帖最后由 jxawgyl 于 2008-6-29 10:03 编辑 [/it]]

三断笛 发表于 2008-6-29 18:09

'If rs.Recordset.EOF = True Or rs.Recordset.BOF = True Then
  '  MsgBox "请选择要显示的行"
   ' Exit Sub
' End If

rs.eof 就行

jxawgyl 发表于 2008-6-30 08:35

'判断是否选择了表中的一行
  If rs.EOF = True Or rs.BOF = True Then
   MsgBox "请选择要显示的行"
  Exit Sub
    End If
还是同样提示,If rs.EOF = True Or rs.BOF = True Then

三断笛 发表于 2008-6-30 09:43

Set rs.ActiveConnection = Cnn

rs是Recordset,没有ActiveConnection属性,只有关Command有

kerr 发表于 2008-6-30 11:23

Private Sub Form_Load()
'创建connection对象cnn,关new用于创建新对象
Dim Cnn As New ADODB.Connection
'创建Recordset对象rs
Dim rs As New ADODB.Recordset

老兄啊
你這兩個定義的都是在FORM_LOAD裡面的局部變量啊
局部變量不能在其他函數或方法中使用的啊
當然報錯

jxawgyl 发表于 2008-7-1 19:38

能写一下,让我学习学习。谢了

页: [1]

编程论坛