Esta vez no sirve cambiar OEM por ANSI. :-(
Acabo de hacer una prueba, exportado a un archivo csv los contactos de Windows Live Mail, y tengo el mismo problema con las Ñ y las tildes. El motivo es que lo guarda utilizando la codificación UTF-8.
Si es solamente un archivo, abre el archivo csv con el Bloc de notas, y guárdalo utilizando la codificación ANSI.
Este es el código que he utilizado para mostrar los datos en un control DataGridView utilizando el ISAM de texto del motor Microsoft Jet:
Imports System.Data.OleDb
Using cnn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Carpeta;" & _
"Extended Properties='Text;'")
Dim sql As String = "SELECT * FROM Contactos#csv"
Dim da As New OleDbDataAdapter(sql, cnn)
Dim dt As New DataTable("Contactos")
da.Fill(dt)
DataGridView1.DataSource = dt
End Using
Por supuesto, si el archivo ya tiene formato ANSI, y el valor CharacterSet del registro es OEM, vas a tener el mismo problema, por tanto, tendrás que especificar ANSI, o en su lugar, utilizar un archivo de configuración de esquema llamado Schema.ini para especificar la codificación que se va a utilizar. Este archivo de configuración, deberá residir en la misma carpeta que contenga el archivo de texto separado por comas que deseas leer.Enrique Martínez [MS MVP - VB]