1.可以创建临时表,把检索到的数据暂时存放在临时表中。使用时再读取。(适用于数据量较大的数据库,而常用数据不多的工程)
2.采用窗体隐含对象保存数据.(适用于数据量较少的工程)
3.采用导出数据的方式,在本地生成文件型数据库(*.dbf,*.mdb等) (适用于对安全性要求不严格的工程)根据不同的工程,可以有很多解决的办法,但针对性较强。

解决方案 »

  1.   

    ADO可以把记录集存为xml文件,也可以把保存的xml文件还原为记录集
      

  2.   

    要看你的数据量有多大了,一般情况下,如果你的数据字段不多,可以考虑使用listbox存储数据,并且你所需要的数据关联不复杂。
    具体方法:创建一个ListBox对象(从Toolbox上拖到Form上)
    将Visible属性设为False
    在主Form_Load的时候将得到的数据Add到listbox中,一条记录添加一次,字段间可用分隔符,使用时从listbox中取值,用split函数转换成你需要的数据。
    另外可以在不同Form中使用Listbox中的值,前提是ListBox所在的窗体不能卸载.
      

  3.   

    Cooly(苦力) 的方法是好方法
    但是我ListBox所在的窗体
    用窗体名.list1的时候,每次都要执行ListBox所在的窗体的load中的代码
    不知如何解决,给个答案好吗
      

  4.   

    那你用个全局变量 不要close 不就解决了吗?
      

  5.   

    我一般是找了隐藏的listview来存放的,要是只有1-2个变量,也许我回放在控件的tag里
      

  6.   

    我要存放的不是几个值
    而是数据库检索出来的一组值
    所以用了listbox
    但是调用的时候出了问题
      

  7.   

    放在mshflex控件中,相当于二维向量,可以定位取数据。
    存放mshflex的form不要unload掉,只要visible设为false
      

  8.   

    现在我存放在listbox中可以用的,我是在子窗体中调用的时候
    每次调用到都会跳到listbox所在窗体的load事件中
    我跟踪出来的
      

  9.   

    Type hqlx
        rq As Long
        kpj As Long '/1000
        zgj As Long '/1000
        zdj As Long '/1000
        spj As Long '/1000
        cje As Long '*1000
        cjl As Long '*100
        d7 As Long
        d8 As Long
        d9 As Long
    End TypePublic Function LoadData(dm As String, Mlpath As String) As Long
    Dim i As Integer
    Dim MaxRecord As Long
    Screen.MousePointer = 11
    If Dir(Mlpath & "\" & dm & ".day") <> "" Then
        Open Mlpath & "\" & dm & ".day" For Random Access Read As #1 Len = 40
        MaxRecord = LOF(1) \ 40 '最大记录
        MaxRecord = MaxRecord + 1
        ReDim hq(MaxRecord) As hqlx
        For i = 1 To MaxRecord - 1
            Seek #1, i
            Get #1, , hq(i)
        Next
        Close #1
        LoadData = MaxRecord
    Else
        LoadData = 0
    End If
    Screen.MousePointer = 0
    End Function你把我的读文件的改成数据库也可以的, 使命叫全局变量, 要不能用 还能叫全局变量吗?