(1)在ps.bas中有:
Public kc As Long  
Public s1 As New ADODB.Recordset(2)文件名:main.bas
在启动系统时,SQL语句已经正确执行,系统能正常运行。
Public Sub Main()
    Call ConnectDB
    s1.open "select * from book where ldd=" + Str(kc), cn, adOpenStatic, adLockOptimistic
    .............
End Sub
(3)
在DialogCheckOut.frm文件中有过程:
Public Sub cs() 
    kc=1
    s1.Requery
    i= s1.RecordCount 
    ...............
end sub问题:在执行cs过程时,当kc=1时应该能选出i=5条记录,结果i=0。检查的结果发现,在执行s1.Requery时,SQL语句中的变量kc不是1,而是一个“超出上下文”的不确定,结果是s1.RecordCount=0,因此没有选到任何记录。请问,如何在执行s1.Requery时使得SQL语句的变量kc有值1呢?问题出在用Requery刷新记录集s1时,执行SQL语句无法(即没有)激活全局变量kc,因此使得kc无值造成的。如何解决?

解决方案 »

  1.   

    不知你的TABLE里多不多記錄,如果不多的話,開始時打開全部記錄
    Public   Sub   cs()   
            dim s2 as new ADODB.Recordset
            s2=s1.clone
            kc=1 
            s2.filter="ldd='1'"
            i=   s1.RecordCount   
            ............... 
    end   sub 
    這樣不用每次都去查找數據庫,如果TABLE有很多記錄的話,只能重新OPEN,不知其它人有沒有什么方法。