Prova il codice di sotto.
1) svuoto la tabella Access
2) Leggo il file di testo delimitato
3) Per ogni riga letta, esclusa l'intestazione, la inserisco in tabella

codice:
Private Property StringaConnessione As String = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}", "C:\tmp\prova.mdb")

Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
    Dim Connessione As OleDbConnection = Nothing
    Dim Comando As OleDbCommand = Nothing
    Dim Transazione As OleDbTransaction = Nothing
    Dim Sql As String = ""


    Try
        Connessione = New OleDbConnection(Me.StringaConnessione)
        Connessione.Open()
        Transazione = Connessione.BeginTransaction()
        Comando = Connessione.CreateCommand()
        Comando.Transaction = Transazione

        'cancello la tabella
        Delete(Comando)
        'leggo il file di testo
        ParserFile(Comando)


        Transazione.Commit()
        'Transazione.Rollback()

        l.MsgBox(Me, "Operazioni su database eseguite regolarmente")


    Catch ex As Exception
        If (Not (Transazione Is Nothing) AndAlso Not (Transazione.Connection Is Nothing)) Then Transazione.Rollback()
        l.MsgBox(Me, ex)

    Finally
        If (Not (Connessione Is Nothing)) Then Connessione.Close()
    End Try

End Sub

'cancello tutti i record di tabella1
Private Sub Delete(ByVal Comando As OleDbCommand)
    Dim Sql As String = "DELETE FROM [tabella1] "
    Comando.CommandText = Sql

    Comando.Parameters.Clear()
    Comando.ExecuteNonQuery()

End Sub


'leggo il file di testo
Private Sub ParserFile(comando As OleDbCommand)
    Using parser As New TextFieldParser("c:\tmp\tabella1.txt", Encoding.Default)
        parser.Delimiters = New String() {";"}
        parser.TrimWhiteSpace = True

        Do While Not parser.EndOfData
            Dim n As Long = parser.LineNumber
            Dim fields As String() = parser.ReadFields()
            'salto la 1° riga con l'intestazione campi
            If n = 1 Then Continue Do
            'insert in database
            Append(comando, fields)

        Loop

    End Using
End Sub

'insert in database riga letta da file di testo
Private Sub Append(comando As OleDbCommand, fields As String())
    Dim sql As String = "INSERT INTO [tabella1] ( [id_comune], [nome_comune], [sigla_provincia], [nome_regione], [data]) VALUES (?,?,?,?,?) "
    comando.CommandText = sql

    comando.Parameters.Clear()

    comando.Parameters.Add("id_comune", OleDbType.Integer).Value = IIf(fields(0) = "", DBNull.Value, fields(0))
    comando.Parameters.Add("nome_comune", OleDbType.VarChar, 100).Value = IIf(fields(1) = "", DBNull.Value, fields(1))
    comando.Parameters.Add("sigla_provincia", OleDbType.VarChar, 2).Value = IIf(fields(2) = "", DBNull.Value, fields(2))
    comando.Parameters.Add("nome_regione", OleDbType.VarChar, 50).Value = IIf(fields(3) = "", DBNull.Value, fields(3))
    comando.Parameters.Add("data", OleDbType.Date).Value = DateTime.Now

    comando.ExecuteNonQuery()

End Sub