dim tempform as new myfrom
tempform.show
set tempform=nothing
我想不出可能会有值吗???
另外。。ADODB.Recordset最好释放掉。

解决方案 »

  1.   

    你用什么方法卸载?是Unload吗
      

  2.   

    form.show调用在form中用unload me释放
      

  3.   

    除非程序结束,否则任何一个窗体在你认为用Unload Me卸载时并不是真正卸载,只是隐藏起来.
    也就是说,Load 事件只被触发一次,以后除非用Load FromName才会再次触发此事件,而用Show方法只触发Show事件.
      

  4.   

    我试过了,load来件会触发多次的initialize事件只触发一次!这样怎么办?
      

  5.   

    那好,改用 Set form = Nothing来清除对象
      

  6.   

    将窗体定义成变量:
    DIM frmX AS NEW FROM
    frmX.SHOW
    ...
    卸载窗体,随后
    SET frmX = Nothing
      

  7.   

    虽然窗体隐藏起来了,但不一定真正从内存中卸载
    当引用这一窗体中的变量或控件时候,程序自动引发
    form_load事件,可以用以下函数在程序结束时卸载
    所有窗体,主窗体要用Unload me来卸载'卸载所有窗体(除一个窗体之外,一般为主窗体)
    Public Function sfFormsUnload(ByRef frm As Variant) As String
    On Error GoTo ErrTrap
        Dim i As Integer
        If Not TypeOf frm Is Form Then
            sfFormsUnload = MErrCtrl.dfSemCreate("sfFormsUnload", -1, "Invalid argument")
        
        End If
        For i = Forms.Count - 1 To 0 Step -1
            If UCase$(Forms(i).Name) <> UCase$(frm.Name) Then
                Unload Forms(i)
            End If
        Next
        sfFormsUnload = ""
        Exit Function
        
    ErrTrap:
        sfFormsUnload = MErrCtrl.dfSemCreate("sfFormsUnload", Err.Number, Err.Description)
        On Error GoTo 0
    End Function
      

  8.   

    这个函数是在上个函数中用到的
    '创建一个安全错误消息
    Public Function dfSemCreate(ByVal strCallingRoutine As Variant, _
                                ByVal lngErrorCode As Variant, _
                                ByVal strErrorDetails As Variant, _
                                Optional ByVal strPrevSEM As Variant = "") As String
    On Error GoTo ErrTrap
        strCallingRoutine = MTpToTp.dfVntToTrimStr(strCallingRoutine)
        lngErrorCode = MTpToTp.dfVntToLng(lngErrorCode)
        strErrorDetails = MTpToTp.dfVntToTrimStr(strErrorDetails)
        strPrevSEM = MTpToTp.dfVntToTrimStr(strPrevSEM)
        
        dfSemCreate = strPrevSEM & strCallingRoutine & vbTab & _
                      CStr(lngErrorCode) & vbTab & strErrorDetails & vbLf
        Exit Function
    ErrTrap:
        dfSemCreate = "dfSemCreate" & vbTab & _
                     CStr(Err.Number) & vbTab & _
                     "Could not create Safe Error Message." & vbLf
        On Error GoTo 0
    End Function