0

I'm using Visual Studio 2013, this part of the code is about lecturer publishing consultation schedule. But when i clicked the publish button, it shows me this error. Here's my code..

    Imports System.Data.OleDb

Public Class ConsultationSchedule

Private Sub publishbutton_Click(sender As Object, e As EventArgs) Handles publishbutton.Click
    Dim label As String = "Label"

    Dim sql As String
    Dim cmd As OleDbCommand

    Dim time1 As String = vbNull
    Dim time2 As String = vbNull
    Dim time3 As String = vbNull
    Dim time4 As String = vbNull

    Dim day1 As String = Nothing
    Dim day2 As String = vbNull
    Dim day3 As String = vbNull
    Dim day4 As String = vbNull
    Dim day5 As String = vbNull

    Dim available1 As String = Nothing
    Dim available2 As String = vbNull
    Dim available3 As String = vbNull
    Dim available4 As String = vbNull


    For i = 11 To 15
        time1 = Label7.Text

        For k = 16 To 20
            time2 = Label8.Text
            For t = 21 To 25
                time3 = Label9.Text
                For u = 26 To 30
                    time4 = Label10.Text
                Next
            Next
        Next
    Next

    For i = 11 To 30
        If (i = 11) Then
            day1 = Label2.Text
            If (Me.Controls(label & i.ToString).BackColor = Color.Lime) Then
                available1 = "Available"
            Else
                available1 = "Unavailable"
            End If

        ElseIf (i = 16) Then
            day1 = Label2.Text
            If (Me.Controls(label & i.ToString).BackColor = Color.Lime) Then
                available2 = "Available"
            Else
                available2 = "Unavailable"
            End If

        ElseIf (i = 21) Then
            day1 = Label2.Text
            If (Me.Controls(label & i.ToString).BackColor = Color.Lime) Then
                available3 = "Available"
            Else
                available3 = "Unavailable"
            End If

        ElseIf (i = 26) Then
            day1 = Label2.Text
            If (Me.Controls(label & i.ToString).BackColor = Color.Lime) Then
                available4 = "Available"
            Else
                available4 = "Unavailable"
            End If
        End If

    Next


    For k = 11 To 30
        If (k = 12) Then
            day2 = Label3.Text
        ElseIf (k = 17) Then
            day2 = Label3.Text
        ElseIf (k = 22) Then
            day2 = Label3.Text
        ElseIf (k = 27) Then
            day2 = Label3.Text
        End If

    Next

    For t = 11 To 30
        If (t = 13) Then
            day3 = Label4.Text
        ElseIf (t = 18) Then
            day3 = Label4.Text
        ElseIf (t = 23) Then
            day3 = Label4.Text
        ElseIf (t = 28) Then
            day3 = Label4.Text
        End If

    Next

    For u = 11 To 30
        If (u = 14) Then
            day4 = Label5.Text
        ElseIf (u = 19) Then
            day4 = Label5.Text
        ElseIf (u = 24) Then
            day4 = Label5.Text
        ElseIf (u = 29) Then
            day4 = Label5.Text
        End If

    Next

    For y = 11 To 30
        If (y = 15) Then
            day5 = Label6.Text
        ElseIf (y = 20) Then
            day5 = Label6.Text
        ElseIf (y = 25) Then
            day5 = Label6.Text
        ElseIf (y = 30) Then
            day5 = Label6.Text
        End If

    Next

    Dim conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=scheduledatabase.accdb;Persist Security Info=False;")
    sql = "INSERT INTO consultationschedule(Time, Day, Available)VALUES(@Time,@Day,@Available)"

    conn.Open()
    cmd = New OleDbCommand(sql, conn)
    cmd.Parameters.AddWithValue("@Time", time1)
    cmd.Parameters.AddWithValue("@Day", day1)
    cmd.Parameters.AddWithValue("@Available", available1)
    'cmd.ExecuteNonQuery()

    Dim f As Integer = cmd.ExecuteNonQuery()
    If (f >= 1) Then
        ToolStrip1.Text = f.ToString & " record added successfully"
    Else
        ToolStrip1.Text = "Unable to add record"

    End If
    MessageBox.Show("User Widrawed", "Widrawed", MessageBoxButtons.OK, MessageBoxIcon.Information)
    conn.Close()
End Sub
IronAces
  • 1,857
  • 1
  • 27
  • 36
bwraths
  • 7
  • 5
  • 1
    where does the null reference error point to? – Brian Apr 21 '17 at 11:44
  • For i = 11 To 30 If (i = 11) Then day1 = Label2.Text "This is the part it referenced to>>>>" If (Me.Controls(label & i.ToString).BackColor = Color.Lime) Then "<<< Until here" available1 = "Available" Else available1 = "Unavailable" End If – bwraths Apr 21 '17 at 11:49
  • Check that `Label2` is not null? – IronAces Apr 21 '17 at 11:56
  • label2 has a value which is "Monday". – bwraths Apr 21 '17 at 12:01
  • Does it fail on "If (Me.Controls(Label & i.ToString).BackColor = Color.Lime) Then" I tried the for loop without this and it works fine – codeMonger123 Apr 21 '17 at 12:07
  • Ahhh didnt see the below answer. I believe that is correct. – codeMonger123 Apr 21 '17 at 12:15
  • @codeMonger123 ahh yes.. it fails on each of those lines – bwraths Apr 21 '17 at 17:56
  • I just create another thread http://stackoverflow.com/questions/43570331/can-anybody-help-me-solve-this-error-oledbexception-was-unhandled?noredirect=1#comment74190329_43570331 , is there anybody can help me with it? Your help will be grateful. – bwraths Apr 23 '17 at 11:26

1 Answers1

2
Me.Controls(label & i.ToString).BackColor = Color.Lime

is the same as

Me.Controls("Label11").BackColor = Color.Lime
...
Me.Controls("Label30").BackColor = Color.Lime

Do you have 30 numbered labels?

You could do this

If Not Me.Controls(label & i.ToString) Is Nothing Then
    Me.Controls(label & i.ToString).BackColor = Color.Lime
End If
  • I do have 30 labels. Okay, so you mean i just use your provided code and just replace it on the line where the error referenced to? – bwraths Apr 21 '17 at 17:50
  • You change your line of codes day1 = Label2.Text If Not Me.Controls(label & i.ToString) Is Nothing Then If (Me.Controls(label & i.ToString).BackColor = Color.Lime) Then available1 = "Available" Else available1 = "Unavailable" End If End If – Wai Fung Au Yeung Apr 22 '17 at 01:09
  • Thanks, I think it solved my problem now. :D – bwraths Apr 22 '17 at 11:13