object reference not set to an instance of an object

Status
Niet open voor verdere reacties.

drla2004

Gebruiker
Lid geworden
16 nov 2004
Berichten
26
Ik gebruik Visual Basic 2010 en ben een programma aan het maken dat ms access 2007 gebruikt.

Ik heb op mijn form een datagridview, een textbox, combobox, een zoekbutton, en een show all button.

Door de combobox kan ik in 2 kolommen zoeken en dan weergeven in de datagrid.

Nu is het zo dat ik de eerste keer dat ik op de button "Show all" klik gewoon alle gegevens uit de database in de datagrid, maar wil ik daarna zoeken in 1 van de 2 kolommen, dan krijg ik de volgende foutmelding:

object reference not set to an instance of an object

Ik heb al geprobeerd te zoeken via google, daar kwam vaak uit dat dit te maken heeft met de "fill" functie van een adapter, maar ik kom er nog niet uit.

Hieronder de diverse code die ik gebruik:

Voor het weergeven van de gehele database.
Code:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim Conn As New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\songlisteditor.mdb")
        Try
            dsOle.Clear()
            dtOle.Clear()
            cmdOle = Conn.CreateCommand
            cmdOle.CommandText = "SELECT * FROM songs where songtitle ORDER BY songtitle ASC"
            da.SelectCommand = cmdOle
            da.Fill(dsOle, "songs") ' This Table name
            DataGridView1.DataSource = dsOle
            DataGridView1.DataMember = "songs" ' This Table name
            Me.DataGridView1.Columns("Id").Visible = False
            Me.DataGridView1.Columns("Songtext").Visible = False
            Me.DataGridView1.Columns(1).Width = 206
            DataGridView1.ReadOnly = True
        Catch ex As Exception
            MsgBox("Error: " & ex.Source & ": " & ex.Message, MsgBoxStyle.OkOnly, "Songlist Editor Error !!")
        End Try
End Sub

Voor het zoeken met de combobox:
Code:
Private Sub SearchButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SearchButton.Click
        con.ConnectionString = ("Provider=Microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\songlisteditor.mdb")
        If ComboBox1.SelectedIndex = 1 And TextBox1.TextLength > 0 Then
            Try
                dsOle2.Clear()
                dtOle2.Clear()
                cmdOle2 = con.CreateCommand
                cmdOle2.CommandText = "SELECT * FROM songs where songtitle LIKE '%" & TextBox1.Text & "%' ORDER BY songtitle ASC"
                da2.SelectCommand = cmdOle2
                da2.Fill(dsOle2, "songs") ' This Table name
                DataGridView1.DataSource = dsOle2
                DataGridView1.DataMember = "songs" ' This Table name
                Me.DataGridView1.Columns("Id").Visible = False
                Me.DataGridView1.Columns("Songtext").Visible = False
                Me.DataGridView1.Columns(1).Width = 206
                DataGridView1.ReadOnly = True
            Catch ex As Exception
                MsgBox("Error: " & ex.Source & ": " & ex.Message, MsgBoxStyle.OkOnly, "Songlist Editor Error !!")
            End Try
        ElseIf ComboBox1.SelectedIndex = 1 And TextBox1.TextLength = 0 Then
            MsgBox("Error: Type search term and select where to search", MsgBoxStyle.Exclamation, "Songlist Editor Error !!")
        ElseIf ComboBox1.SelectedIndex = 2 And TextBox1.TextLength > 0 Then
            Try
                dsOle3.Clear()
                dtOle3.Clear()
                cmdOle3 = con.CreateCommand
                cmdOle3.CommandText = "SELECT * FROM songs where songtext LIKE '%" & TextBox1.Text & "%' ORDER BY songtitle ASC"
                da3.SelectCommand = cmdOle3
                da3.Fill(dsOle3, "songs") ' This Table name
                DataGridView1.DataSource = dsOle3
                DataGridView1.DataMember = "songs" ' This Table name
                Me.DataGridView1.Columns("Id").Visible = False
                Me.DataGridView1.Columns("Songtext").Visible = False
                Me.DataGridView1.Columns(1).Width = 206
                DataGridView1.ReadOnly = True
            Catch ex As Exception
                MsgBox("Error: " & ex.Source & ": " & ex.Message, MsgBoxStyle.OkOnly, "Songlist Editor Error !!")
            End Try
        ElseIf ComboBox1.SelectedIndex = 2 And TextBox1.TextLength = 0 Then
            MsgBox("Error: Type search term and select where to search", MsgBoxStyle.Exclamation, "Songlist Editor Error !!")
        Else
            If ComboBox1.SelectedIndex = 0 Then
                MsgBox("Error: Type search term and select where to search", MsgBoxStyle.Exclamation, "Songlist Editor Error !!")
            End If
        End If
    End Sub

En de data uit kolommen weergeven in textvelden:
Code:
Private Sub DataGridView1_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGridView1.SelectionChanged
        Dim i As Integer
        i = DataGridView1.CurrentRow.Index
        Me.TextBox3.Text = DataGridView1.Item(0, i).Value
        Me.TextBox2.Text = DataGridView1.Item(1, i).Value
        Me.RichTextBox1.Text = DataGridView1.Item(3, i).Value
End Sub

Enige hulp is welkom!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan