Witam, piszę programik, który ma pobierać z bazy access dane i potem gdy kliknę w jakiś wiersz 2 razy, ma pojawić się drugie okno i mogę w nim zmieniać dane, bazę wczytałem, przy probie kliknięcia 2 razy w wiersz wyskakuje błąd:
//"Indeks był spoza zakresu. Musi mieć wartość nieujemną i mniejszą niż rozmiar kolekcji.
Nazwa parametru: index"//

czytałem różne sposoby jak to ominąć ale żaden nie daje rezultatu, mój kod:

Imports System.Data
Imports System.Data.OleDb
Imports System.Data.Odbc
Imports System.Data.DataTable


Public Class Form1
    Dim provider As String
    Dim dataFile As String
    Dim connString As String
    Public r As Integer

    Dim myConnection As OleDbConnection = New OleDbConnection
    Dim ds As DataSet = New DataSet
    Dim da As OleDbDataAdapter
    Dim tables As DataTableCollection = ds.Tables

    

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
        dataFile = "C:\Documents and Settings\wojtek\Moje dokumenty\Visual Studio 2010\Projects\baza_dowyslania\baza_dowyslania\bin\Debug\nowa1.mdb"
        connString = provider & dataFile
        myConnection.ConnectionString = connString
        da = New OleDbDataAdapter("Select [Nazwa firmy], [Nip], [Adres], [Nr telefonu], [Email], [Status] from Tabela1", myConnection)
        da.Fill(ds, "Tabela1")
        ' replace "items" with the name of the table
        ' replace [Item Code], [Description], [Price] with the columns headers
        Dim view1 As New DataView(tables(0))
        Dim source1 As New BindingSource()
        source1.DataSource = view1
        DataGridView1.DataSource = view1
        DataGridView1.Refresh()
        DataGridView1.Sort(DataGridView1.Columns("Nazwa firmy"), System.ComponentModel.ListSortDirection.Ascending)
    End Sub

    Private Sub DataGridView1_CellMouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseDoubleClick
        r = DataGridView1.CurrentRow.Index


        Dim okno As New Form2()
        okno.Show()

        If IsDBNull(DataGridView1.SelectedRows(r).Cells(0).Value.ToString) Then  **  //tutaj pojawia się błąd**
            okno.TextBox1.Text = ""
        Else
            okno.TextBox1.Text = DataGridView1.SelectedRows(r).Cells(0).Value.ToString
        End If

        If IsDBNull(DataGridView1.SelectedRows(r).Cells(1).Value.ToString) Then
            okno.TextBox2.Text = ""
        Else
            okno.TextBox2.Text = DataGridView1.SelectedRows(r).Cells(1).Value.ToString
        End If

        If IsDBNull(DataGridView1.SelectedRows(r).Cells(2).Value.ToString) Then
            okno.TextBox3.Text = ""
        Else
            okno.TextBox3.Text = DataGridView1.SelectedRows(r).Cells(2).Value.ToString
        End If

        If IsDBNull(DataGridView1.SelectedRows(r).Cells(3).Value.ToString) Then
            okno.TextBox4.Text = ""
        Else
            okno.TextBox4.Text = DataGridView1.SelectedRows(r).Cells(3).Value.ToString
        End If

        If IsDBNull(DataGridView1.SelectedRows(r).Cells(4).Value.ToString) Then
            okno.TextBox5.Text = ""
        Else
            okno.TextBox5.Text = DataGridView1.SelectedRows(r).Cells(4).Value.ToString
        End If

    End Sub
End Class