在 Access 2007 中导入表单后未触发表单加载/卸载事件



所以我只是按照此处的步骤手动拆分数据库。由于某种原因,加载事件不会在一个窗体上触发,而在另一个窗体上不会触发卸载事件(但在每种情况下,相反的窗体确实有效)。第二个表单(卸载不起作用)也拒绝进入设计模式,直到我手动关闭它,然后将其打开进入设计模式。我已经确认打开和关闭事件已正确链接到其相应的VBA代码,因此我知道不是这样。

任何解决此问题的帮助将不胜感激。

编辑-

以下是加载的代码:

Private Sub Form_Load()
    Dim scr As ScriptControl
    Dim SQL As String
    CheckConnection
    Set scr = New ScriptControl
    SQL = "UPDATE [Part Number] SET [Part Number].[Select] = False WHERE ((([Part Number].[Select])=True));"
    CurrentDb.Execute SQL
    scr.Language = "VBScript"
    scr.AddCode "Sub T :Dim ChangeReg: Set ChangeReg = CreateObject(""WScript.Shell""):ChangeReg.regwrite " & _
                """HKCUSoftwareMicrosoftOffice12.0AccessSecurityVBAWarnings"", ""1"", ""REG_DWORD"" : " & _
                "Set ChangeReg = CreateObject(""WScript.Shell""):ChangeReg.regwrite " & _
                """HKCUSoftwareMicrosoftOffice12.0ExcelSecurityVBAWarnings"", ""1"", ""REG_DWORD"": end sub"
    scr.Run "T"
    Locked = False
    CancelBupdate = False
    LockOff
    USRID = Environ("Username")
    TTTCount = 0
    Started = True
    SourceSelect.Value = 1
    DoCmd.SelectObject acTable, , True
    DoCmd.RunCommand acCmdWindowHide
    DoCmd.ShowToolbar "Ribbon", acToolbarNo
    ChgFrmOpen = False
    Me.LocationSelect.Visible = False
    Me.ClrSupLoc.Visible = False
    Me.Label20.Visible = False
    PSOn = True
    Me.RepSelect.Value = ""
    Me.SupplierSelect.Value = ""
    Me.SupNumSelect.Value = ""
    Me.LocationSelect.Value = ""
    Me.Base5Select.Value = ""
    Me.FullNbrSelect.Value = ""
    Me.Label104.Caption = "Last Updated On: " & DLookup("[Last Updated]", "[Last Updated]")
    ChangeCount = 0
    CT = ""
    CPP = ""
    PGNP = ""
    UpdateSub '****
    InfoGet
    RunFilter
    Cascade
    Me.Requery
    Select Case USRID
        Case "vn034153"
            UsrInfoSt = "Logged in as User"
        Case "vn043156"
            UsrInfoSt = "Logged in as User"
            Blah
        Case "vn034157"
            UsrInfoSt = "Logged in as Admin"
            Me.UpdateButton.Visible = True
        Case "vn034160"
            UsrInfoSt = "Logged in as User"
        Case "vn028040"
            UsrInfoSt = "Logged in as User"
        Case "vn028033"
            UsrInfoSt = "Logged in as Admin"
            Me.UpdateButton.Visible = True
        Case "vn034931"
            UsrInfoSt = "Logged in as User"
        Case Else
            UsrInfoSt = "Logged in as User"
    End Select
    Me.UsrInfo.Caption = UsrInfoSt
    Application.SetOption "Confirm Action Queries", 0
    Application.SetOption "Confirm Document Deletions", 0
    Application.SetOption "Confirm Record Changes", 0
    DoCmd.SetWarnings False
    Application.SetOption "Auto compact", True
End Sub

这是卸载的代码(使用 cmd 按钮,两个子都不运行):

Private Sub OpenDatabase_Click()
    DoCmd.OpenForm "2BHPartsDatabaseX"
    DoCmd.Close acForm, Me.Name
End Sub
Private Sub Form_Unload(Cancel As Integer)
    Dim TDF As TableDef
    Dim QDF As QueryDef
    Dim DBS As Database
    Set DBS = CurrentDb()
    Me.ReportForm.SourceObject = ""
    For Each QDF In DBS.QueryDefs
        If QDF.Name = "TempQRYX" Or QDF.Name = "DistinctPGNQry" Then
            DBS.QueryDefs.Delete QDF.Name
        End If
    Next
    For Each TDF In DBS.TableDefs
        If TDF.Name = "ProjectTable" Then
            DBS.TableDefs.Delete TDF.Name
            Exit For
        End If
    Next
    Application.SetOption "Confirm Action Queries", 1
    Application.SetOption "Confirm Document Deletions", 1
    Application.SetOption "Confirm Record Changes", 1
    DoCmd.SetWarnings True
End Sub

我会注释(rem)掉Form_Load事件中的所有代码,并在子过程,然后打开窗体以查看事件是否触发。 在我看到它火之后,我会开始"取消rem"每一行,直到影响加载事件的代码行被发现。

我会对"卸载"问题做同样的事情。

最新更新