2012-04-12 55 views
-7

運行我的程序時出現此錯誤。當我創建這個程序時,我不喜歡這個。創建表單時出現「對象引用未設置」錯誤

An error occurred creating the form. 
See Exception.InnerException for details. 
The error is: 
    Object reference not set to an instance of an object. 

這是形式的代碼:

Imports System.Data 
Imports System.Data.OleDb 

Public Class IndexFrm 

#Region "Connection" 

    Dim con As OleDbConnection 
    Dim scmd As OleDbCommand 
    Dim conreader As OleDbDataReader 
    Dim dbcon As String = Me.OpenFileDialog1.FileName & ";Jet Oledb:Database Password=*****" 

#End Region 

    Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click 
     End 
    End Sub 

    Private Sub ToolStripButton1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click 
     FrmSynoyms.Show() 
     FrmAntonyms.Hide() 
     FrmAnalogy.Hide() 
     FrmMath.Hide() 
     FrmAbstract.Hide() 
     FrmAbstract2.Hide() 
     FrmAbstract3.Hide() 
     FrmAbstract4.Hide() 
     StdntsFrm.Hide() 
    End Sub 

    Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click 
     FrmAntonyms.Show() 
     FrmAnalogy.Hide() 
     FrmSynoyms.Hide() 
     FrmMath.Hide() 
     FrmAbstract.Hide() 
     FrmAbstract2.Hide() 
     FrmAbstract3.Hide() 
     FrmAbstract4.Hide() 
     StdntsFrm.Hide() 
    End Sub 

    Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton3.Click 
     FrmAnalogy.Show() 
     FrmAntonyms.Hide() 
     FrmSynoyms.Hide() 
     FrmMath.Hide() 
     FrmAbstract.Hide() 
     FrmAbstract2.Hide() 
     FrmAbstract3.Hide() 
     FrmAbstract4.Hide() 
     StdntsFrm.Hide() 
    End Sub 

    Private Sub StudentsFormToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StudentsFormToolStripMenuItem1.Click 
     StdntsFrm.Show() 
     FrmAnalogy.Hide() 
     FrmAntonyms.Hide() 
     FrmSynoyms.Hide() 
     FrmMath.Hide() 
     FrmAbstract.Hide() 
     FrmAbstract2.Hide() 
     FrmAbstract3.Hide() 
     FrmAbstract4.Hide() 
    End Sub 

    Private Sub ToolStripButton4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton4.Click 
     FrmMath.Show() 

     FrmAnalogy.Hide() 
     FrmAntonyms.Hide() 
     FrmSynoyms.Hide() 
     FrmAbstract.Hide() 
     FrmAbstract2.Hide() 
     FrmAbstract3.Hide() 
     FrmAbstract4.Hide() 
     StdntsFrm.Hide() 
    End Sub 

    Private Sub ToolStripButton5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton5.Click 
     FrmAbstract.Show() 
     FrmAntonyms.Hide() 
     FrmAnalogy.Hide() 
     FrmMath.Hide() 
     StdntsFrm.Hide() 
    End Sub 

    'Private Sub IndexFrm_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown 
    ' If e.KeyCode = Keys.Escape Then 
    '  Try 
    '   If Me.WindowState = FormWindowState.Minimized Then 
    '    Me.WindowState = FormWindowState.Minimized 
    '    NotifyIcon1.Visible = True 
    '    Me.Hide() 
    '   End If 
    '  Catch ex As Exception 
    '   MsgBox(ex.Message) 
    '  End Try 
    ' End If 
    'End Sub 

    Private Sub IndexFrm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     Me.ToolStripButton1.Enabled = False 
     Me.ToolStripButton2.Enabled = False 
     Me.ToolStripButton3.Enabled = False 
     Me.ToolStripButton4.Enabled = False 
     Me.ToolStripButton5.Enabled = False 
     Me.StudentsFormToolStripMenuItem1.Enabled = False 
    End Sub 

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 
     Me.Label3.Text = Val(Me.Label3.Text) - 1 

     If Me.Label1.Text = "0" And Me.Label2.Text = "0" And Me.Label3.Text = "0" Then 
      Me.Timer1.Stop() 
      Me.Timer1.Enabled = False 
      MsgBox("TIME IS UP") 

      SynonymsSave() 
      AntonymsSave() 
      AnalogySave() 
      MathSave() 
      AbstractSave() 

      StdntsFrm.TxtStdntName.Clear() 
      StdntsFrm.TxtStdntsMI.Clear() 
      StdntsFrm.TxtStdntsLast.Clear() 
      StdntsFrm.TxtStdntAdd.Clear() 
      StdntsFrm.TxtStdntSchool.Clear() 
      StdntsFrm.TxtSchoolAdd.Clear() 
      StdntsFrm.TxtStdntAdv.Clear() 
      StdntsFrm.StdntTel.Clear() 

      StdntsFrm.Show() 
     Else 
      If Me.Label3.Text = "0" And Me.Label2.Text <> "0" Then 
       Me.Label3.Text = "59" 
       Me.Label2.Text = Val(Me.Label2.Text) - 1 
      ElseIf Me.Label2.Text = "0" And Me.Label1.Text <> "0" Then 
       Me.Label2.Text = "2" 
       Me.Label1.Text = Val(Me.Label1.Text) - 1 
      ElseIf Me.Label1.Text = "0" Then 
       Me.Label1.Text = "0" 
      ElseIf Me.Label2.Text = "0" And Me.Label1.Text = "0" Then 
       Me.Label2.Text = "0" 
      End If 
     End If 
    End Sub 

    Private Sub StudentsFormToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
     FrmDBPath.Show() 
    End Sub 

    Private Sub IndexFrm_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize 
     Try 
      If Me.WindowState = FormWindowState.Minimized Then 
       Me.WindowState = FormWindowState.Minimized 
       NotifyIcon1.Visible = True 

       Me.Hide() 
      End If 
     Catch ex As Exception 
      MsgBox(ex.Message) 
     End Try 
    End Sub 

    Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick 
     Try 
      Me.Show() 
      Me.WindowState = FormWindowState.Normal 

      NotifyIcon1.Visible = False 
     Catch ex As Exception 
      MsgBox(ex.Message) 
     End Try 
    End Sub 

    Private Sub OpenDatabaseToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenDatabaseToolStripMenuItem.Click 
     Dim DBpath As String 

     With OpenFileDialog1 
      .AddExtension = True 
      .CheckPathExists = True 
      .DefaultExt = ".mdb" 
      .DereferenceLinks = True 
      .Filter = "Access File (*.mdb)|*.mdb|All files|*.*" 
      .Multiselect = False 
      .RestoreDirectory = True 
      .ShowHelp = True 
      .ShowReadOnly = True 
      .Title = "Select file to open" 
      .ValidateNames = True 

      If .ShowDialog = Windows.Forms.DialogResult.OK Then 
       Try 
        DBpath = My.Computer.FileSystem.ReadAllText(.FileName) 
        Me.StudentsFormToolStripMenuItem1.Enabled = True 
       Catch ex As Exception 
        MsgBox("THE DATABASE IS ALREADY BEING USED", MsgBoxStyle.Exclamation) 
       End Try 
      End If 
     End With 
    End Sub 

    Sub SynonymsSave() 
     con = New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;Data source=" & dbcon & ";Jet Oledb:Database Password=*****") 
     con.Open() 

     Dim qstring As String = "Insert into tblStdntsScores (StdntName,Synonyms,ScoreDate) values ('" & FrmSynoyms.Label59.Text & "','" & FrmSynoyms.Label58.Text & "','" & StdntsFrm.Label13.Text & "')" 
     scmd = New OleDbCommand(qstring, con) 
     scmd.ExecuteReader() 

     scmd.Dispose() 
     con.Close() 

     FrmSynoyms.HistorySave() 
    End Sub 

    Sub AntonymsSave() 
     con = New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;Data source=" & dbcon & ";Jet Oledb:Database Password=*****") 
     con.Open() 

     Dim qstring As String = "Update tblStdntsScores set Antonyms='" & FrmAntonyms.Label28.Text & "' where StdntName='" & FrmAntonyms.Label29.Text & "'" 
     scmd = New OleDbCommand(qstring, con) 
     scmd.ExecuteReader() 

     scmd.Dispose() 
     con.Close() 

     FrmAntonyms.HistorySave() 
    End Sub 

    Sub AnalogySave() 
     con = New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;Data source=" & dbcon & ";Jet Oledb:Database Password=*****") 
     con.Open() 

     Dim qstring As String = "Update tblStdntsScores set Analogy='" & FrmAnalogy.Label308.Text & "' where StdntName='" & FrmAnalogy.Label368.Text & "'" 
     scmd = New OleDbCommand(qstring, con) 
     scmd.ExecuteReader() 

     scmd.Dispose() 
     con.Close() 

     FrmAnalogy.HistorySave() 
    End Sub 

    Sub MathSave() 
     con = New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;Data source=" & dbcon & ";Jet Oledb:Database Password=*****") 
     con.Open() 

     Dim qstring As String = "Update tblStdntsScores set Math='" & FrmMath.Label67.Text & "' where StdntName='" & FrmMath.Label68.Text & "'" 
     scmd = New OleDbCommand(qstring, con) 
     scmd.ExecuteReader() 

     scmd.Dispose() 
     con.Close() 

     FrmMath.HistorySave() 
    End Sub 

    Sub AbstractSave() 
     con = New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;Data source=" & dbcon & ";Jet Oledb:Database Password=*****") 
     con.Open() 

     Dim qstring As String = "Update tblStdntsScores set Abstract='" & FrmAbstract4.Label36.Text & "' where StdntName='" & FrmAbstract.Label36.Text & "'" 
     scmd = New OleDbCommand(qstring, con) 
     scmd.ExecuteReader() 

     scmd.Dispose() 
     con.Close() 

     FrmAbstract4.HistorySave() 
    End Sub 
End Class 

請幫幫忙,夥計們。

+8

我已經將標題更改爲更合適的東西,因爲沒有人真的_cares_您認爲它有多緊迫 - 緊急情況保留給_paying_客戶:-) – paxdiablo 2012-04-12 02:31:55

+0

創建什麼形式?調試解決了這個錯誤?如果你調試代碼,這是很容易解決的!太多的代碼-1 – gbianchi 2012-04-12 02:34:12

+1

這聽起來很明顯,但如果你看看內部的異常,它可能會告訴你什麼錯誤沒有被設置。這幾乎可以肯定是由於沒有實例化一個對象造成的。如果你不知道如何檢查內部異常,哪一行會崩潰? – vpiTriumph 2012-04-12 02:36:00

回答

2
Dim dbcon As String = Me.OpenFileDialog1.FileName & "...etc" 

這裏您試圖初始化一個帶有控件屬性值的字符串。在調用任何其他構造函數代碼(即:InitializeComponent())之前初始化類作用域變量(字段),因此此處OpenFileDialog1尚不存在。

相關問題