怎样在VB中:
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim strQuery As String
    Dim Combo2Str As String
    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset
strQuery = “select * from table1”
    
    With cn
        .ConnectionString = "Driver=Microsoft Access Driver (*.MDB);" & _
                      "DBQ=" & App.Path & "\jykres.mdb"
        .Open
    End With
    With rs
        .ActiveConnection = cn
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .CursorLocation = adUseClient
        .Open strQuery
    End With
我现在将rs中的一些记录删除,但又不想影响原数据库,我用以下语句,结果将数据库的数据删除了。问怎么才能不将原数据库的记录删除?   Do While Not rs.EOF
   If CInt(Year(Today)) - CInt(Left(rs.Fields("StartYear"), 4)) > 5 Then
       rs.Delete (adAffectCurrent)
       End If
       rs.MoveNext
   Loop
   If rs.RecordCount > 0 Then
     rs.MoveFirst
   End If

解决方案 »

  1.   

    strQuery = “select * from table1 where StartYear >” & "'" & 当前时间-4年 & "'"If rs.state<>0 then
        rs.close
    End if
    With rs
        .ActiveConnection = cn
        .CursorType = adOpenStatic
        .LockType = adLockOptimistic
        .CursorLocation = adUseClient
        .Open strQuery
    End With重新打开就得了
      

  2.   

    1、StartYear是字符串,存在有1978-04 、1988-04-03、1999等形式
    2、我要实现的是从已检索出来的记录集rs中将部分的记录从其中删除,因而这是较复杂的SQL语句,而且还有一些参数转换和函数,还有别的字段参与
    3、我给出的代码只是部分的例子,只想说明我通过这种方法虽然将记录删除了,但也从原数据记库中删除了记录
    4、我的问题是不想将原数据库的记录删除,而仅仅对记录集操作
      

  3.   

    set rs.ActiveConnection=nothing 加在你打開記錄集之後.就不會有影響了.