Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/02/2008, 03:04
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: ayuda con dat grid

Hola amigo, el problema es que el Microsoft Text Driver solamente reconoce como separador de campos, el punto y coma (;)

Para solucionarlo, tienes que sustituir el separador de campos antes de hacer la conexión

En este ejemplo, suponemos que el delimitador de campos es una coma (podría ser cualquier otro, sólo habría que modificar la linea de Replace)

Código:
Dim sVar As String
' abrimos el archivo y lo cargamos en la variable "sVar"
Open App.Path & "\entidades.txt" For Input As #1
sVar = Input(LOF(1), #1)
Close #1
' reemplazmos el caracter separador (coma) por ";"
sVar = Trim(Replace(sVar, ",", ";"))
' volvemos a abrir el archivo y guardamos los datos
Open App.Path & "\entidades.txt" For Output As #1
Print #1, sVar
Close #1
'
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

' abrimos la conexion
Set cn = New ADODB.Connection
cn.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=" & App.Path & ";"
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open "Select * From [entidades.txt]", cn, adOpenForwardOnly, adLockReadOnly, adCmdText
Set DataGrid1.DataSource = rs

Set rs = Nothing
Set cn = Nothing
Y si quieres volver a guardar los datos con el separador anterior tendrías que hacer la misma operación pero a la inversa..
Para no escribir tanto código, podrías crear una función de apertura y escritura del fichero pasándole un parámetro String con el delimitador.