Anda di halaman 1dari 30

Trabajar con los datos de un archivo de texto

1 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

Trabajar con los datos de un


archivo de texto
Por Enrique Martnez Montejo
[MS MVP - VB]
ltima revisin: 11/05/2003

ndice
1. Utilizar objetos de acceso a datos con archivos de texto
2. El archivo de informacin de esquema Schema.ini
2.1. Estructura de los archivos Schema.ini
2.2. El formato de archivo
2.3 Nombres, longitud y tipos de campos
2.4 Juego de caracteres
2.5 Otras opciones de formato y conversin de tipos de datos
2.6 Crear un archivo Schema.ini con el Administrador de orgenes de datos ODBC
2.7 Ejemplos de archivos de informacin de esquema Schema.ini
3. El delimitador de texto y la opcin TextDelimiter
4. Abrir directamente un archivo de texto
4.1. Mediante DAO mostrando los datos en un DBGrid
4.2. Mediante ADO visualizando la informacin en un DataGrid
4.3. Mediante ADO utilizando el driver de texto ODBC
4.4. Utilizando ASP con un origen de datos (DSN)
5. Vinculacin de archivos de texto
5.1. Vincular con ADOX un archivo de texto a una base de datos Access
5.2. Utilizar DAO para vincular un archivo de texto
6. Cmo crear y eliminar una tabla de texto
7. Cmo importar los datos de un archivo de texto
7.1. Importar los datos a una base de Access
7.2. Importar los datos a una hoja de clculo Excel
7.3. Importar los datos a otro archivo de texto
8. Cmo exportar los datos desde el propio archivo de texto
9. Cmo exportar datos a un archivo de texto
9.1. Exportar los datos de una tabla de Access
9.2. Exportar los datos de una hoja de clculo Excel
10.Aadir registros a una tabla procedentes de un archivo de texto delimitado
10.1.Desde la propia base de datos Access activa
10.2.Desde el propio archivo de texto activo
11.Aadir nuevos registros a nuestro archivo de texto
11.1.Desde un archivo de dBASE activo
11.2 Desde el propio archivo de texto activo

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

2 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

12.Algunos artculos tiles de Microsoft Knowledge Base

1. Utilizar objetos de acceso a datos con archivos de texto


Mediante el formato Text del Mtodo de Acceso Secuencial Indexado Instalable (IISAM) de
Microsoft Jet, podemos utilizar la informacin contenida en un archivo de texto, tanto si los
campos estn delimitados por caracteres como si son de longitud fija, para abrir dichos archivos
de texto, o para importar, exportar o vincular los datos desde, o hacia, otros formatos de bases
de datos, aunque en ste artculo, el nico formato de base de datos que se utilizar es el
formato de Microsoft Access 2000, utilizando para ello las dos bibliotecas ms conoci das de
acceso a datos, como son Microsoft DAO 3.6 Object Library (DAO) y Microsoft ActiveX Data
Object (ADO).
Antes de comenzar, quiero hacer hincapi en la necesidad de tener instalado previamen te en
nuestro sistema el archivo MSTEXTxx.DLL, que es el controlador ISAM de texto, a fin de evitar
el error Imposible encontrar el ISAM instalable. De estar instalado, por defecto se encontrar en
la carpeta System, o en la carpeta que indique el valor win32 de la clave del registro de
windows HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\x.x\Engines\Text, siendo x.x la
versin correspondiente al motor Microsoft Jet que est disponible en nuestro sistema. Por
tanto, si al instalar Visual Basic no se instal dicho controlador, ejecute de nuevo el programa
de instalacin y seleccione los controladores ISAM apropiados para proceder a su instalacin. Si
piensa utilizar la biblioteca de ADO, tenga en cuenta que la versin del proveedor necesaria que
hay que utilizar es la versin del proveedor Jet 4.0; el proveedor Jet 3.51 no soporta los drivers
ISAM de Jet. Para descargar las distintas versiones de los componentes de acceso a datos de
Microsoft (MDAC), visite la siguiente direccin: http://www.microsoft.com/data.
En cuanto a la forma en que el motor Microsoft Jet reconoce los valores nulos, hay que tener en
cuenta lo siguiente:
Datos delimitados por caracteres. Se reconocer el valor nulo por la presencia de dos
caracteres delimitadores consecutivos.
Datos de longitud fija. Se reconocer dicho valor por la ausencia de datos (espacios en
blanco) en la columna de datos correspondiente.
Otra cuestin importante a tener en cuenta son las limitaciones en cuanto al tamao de las
tablas y objetos de texto:
Elemento

Tamao mximo por archivo de texto

Campo

255

Nombre del campo

64 caracteres

Ancho del campo

32.766 caracteres

Tamao del registro

65.000 bytes

Otra limitacin importante que presenta el ISAM de Texto del motor Microsoft Jet, es que slo
nos permitir aadir nuevos registros al archivo de texto, por lo que no podremos eliminar
registros o actualizar los datos existentes en dicho archivo, ya que obtendremos el siguiente
mensaje de error: Este ISAM no admite la actualizacin/eliminacin de datos en una tabla
vinculada. Por tanto, no podremos ejecutar los comandos DELETE o UPDATE de SQL, as como
cualquier otro mtodo de algn objeto de acceso a datos que implique ejecutar dichas acciones.
Para ms informacin, se puede consultar el siguiente artculo de la Knowledge Base: El driver
de texto ODBC slo soporta la instruccin INSERT.
A la hora de establecer una conexin con un archivo de texto, el contenido de la informacin
necesaria para tal fin se especifica de la siguiente manera:
Elemento

Informacin

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

3 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

Tipo de base de datos

TEXT
Ruta completa de la carpeta que contiene el archivo
Nombre de la base de datos
de texto
El nombre del archivo de texto, includa su
extensin. Si no se especifica la extensin del
Nombre de la tabla
archivo, sta tomar la extensin predeterminada
.txt.
Por ltimo, si tiene pensado utilizar un archivo de texto en un entorno multiusuario, vyase
olvidando de tal posibilidad, porque cuando se abre un archivo de texto mediante Microsoft Jet,
se tiene acceso exclusivo al archivo, y cualquier otro intento de conexin a dicho or igen de
datos por parte de algn otro usuario, obtendr el correspondiente mensaje de error.

2. El archivo de informacin de esquema Schema.ini


Aunque el motor Microsoft Jet puede determinar el formato del archivo de texto con slo leerlo
directamente, siempre y cuando el archivo est delimitado por el carcter predefinido en el
registro de Windows, es recomendable, -y aadira que hasta necesario-, utilizar un archivo de
informacin de esquema si deseamos tener un control completo sobre la manera de conseguir la
informacin contenida en un archivo de texto. De esto se encarga un archivo cuyo nombre
siempre ser Schema.ini, el cul deber de guardarse en la misma carpeta donde se encuentre
el origen de datos, es decir, el archivo de texto con el que vamos a trabajar.
Dicho archivo de configuracin se encarga de proporcionar al ISAM instalable la informacin
sobre el formato general del archivo, el nombre de los campos o columnas, as como el tipo de
datos que contienen, y su presencia siempre ser obligatoria cuando:
Accedamos a datos de longitud fija.
El archivo de texto contenga tipos de datos DateTime, Currency o Decimal.
Deseamos elegir un juego de caracteres distinto al valor predeterminado existente en la
configuracin del registro de Windows.
Para que el lector se haga una idea de como trabaja el ISAM de Texto, comentar que, en
principio, el driver no obtiene los valores iniciales del archivo Schema.ini, sino que los obtiene
directamente de los valores existentes en el registro de Windows, por tanto, se aplicar por
defecto el mismo formato de archivo a todas las nuevas tablas de datos de texto que se creen.
Slo si los valores del registro son diferentes de los valores existentes en el archi vo de
informacin de esquema Schema.ini, se pasarn por alto los valores existentes en el registro,
tenindose en cuenta nicamente los valores especificados en el archivo Schema.ini para un
archivo de texto en particular.
2.1. Estructura de los archivos Schema.ini
Al igual que cualquier otro archivo *.ini de configuracin del sistema, el archivo Schema.ini se
compone de una seccin entre corchetes con el nombre del archivo de texto de origen, y de una
serie de entradas cuyos valores contendrn la caractersticas de la tabla:
El formato del archivo.
Los nombres, longitud y tipos de los campos.
El juego de caracteres utilizado.
Conversiones especiales de tipos de datos.
Como se ha dicho, la primera seccin del archivo de esquema siempre ser el nombre del
archivo de texto, el cual estar escrito entre corchetes. Si nuestro archivo de texto que contiene

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

4 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

los datos se llama Clientes.txt, la seccin del archivo de configuracin ser:

[Clientes.txt]

2.2. El formato del archivo


El valor Format especifica el formato del archivo de texto y su inclusin en un archivo
Schema.ini, anular la configuracin existente en el Registro de Windows, para dicho archivo de
texto en particular. En principio, se puede utilizar como delimitador de campos cualquier
carcter, a excepcin de las comillas dobles (''), aunque como se ver posteriormente al
estudiar el parmetro TextDelimiter, existe la posibilidad de que se pueda utilizar tambin
dicho valor. Los valores vlidos para Format pueden ser:
Format

Formato de la tabla

TabDelimited

Los campos estn delimitados por tabulaciones.

CSVDelimited

Los campos estn delimitados por comas (,).

Delimited (*)

Los campos estn delimitados por asteriscos. Se


puede utilizar cualquier carcter, excepto las comillas
dobles ('').

FixedLength

Los campos del archivo son de longitud fija.

Para especificar un formato delimitado por comas, hay que escribir:

Format=CSVDelimited

Respecto al formato delimitado por comas, tengo que hacer la salvedad de que no funcionar en
un sistema operativo con la configuracin regional de espaol, ya que obtendremos el mensaje
de error: El separador de campos de la especificacin de archivo de texto coincide con el
separador decimal o el delimitador de texto.
Esto es debido a que la configuracin regional de espaol utiliza el signo de la coma para
separar la parte entera de la fraccionaria, tanto de un valor numrico como monetario. Por
tanto, tenemos tres posibilidades para evitar el citado error:
Modificar el carcter del smbolo decimal en la configuracin regional de Windows a la
hora de trabajar con los datos de un archivo de texto, de tal forma que sea distinto de la
coma, no olvidando posteriormente restablecer la configuracin anterior a fin de evitar
problemas de interpretacin con otros datos numricos o monetarios.
Elegir otra configuracin regional distinta a la de espaol que no utilice la coma como
smbolo decimal (ingls, por ejemplo).
Debido a que se permite elegir cualquier carcter distinto de las comillas dobles, utilizar
cualquier otro carcter diferente de la coma para delimitar los campos del archivo de
texto, opcin sta que sera la ms acertada para un usuario con una configuracin
regional de espaol. En los ejemplos del presente articulo, salvo que se indique lo
contrario, se utilizar como delimitador de campos el carcter de punto y coma (;), que es
el carcter por defecto del motor Jet establecido en la configuracin del registro de
Windows.
2.3. Nombres, longitud y tipos de campos
Hay que distinguir si el archivo de texto est delimitado por caracteres o es de longitud fija. En
el primer caso, se puede especificar los nombres de los campos de dos formas:

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

5 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

A. Escribir los nombres de los campos en la primera lnea del archivo de texto y
establecer en el archivo de configuracin el parmetro ColNameHeader a True. El
utilizar ste parmetro anula el valor FirstRowHasNames, establecido en el
Registro de Windows, slo para ste archivo.
B. Especificar en el archivo de configuracin cada campo por su nmero,
asignndole al mismo tiempo el nombre y el tipo de datos del campo.
En el supuesto de archivos de texto de longitud fija, slo se puede especificar cada campo de la
forma expuesta en el apartado B.
Para determinar los tipos de datos que contendrn los campos se puede especificar el parmetro
MaxScanRows, de sta forma le indicamos al motor de base de datos el nmero de filas que
debe examinar para que nos indique el tipo de campo de aqullos. Al igual que los dems
valores, el establecer ste parmetro anular el valor existente en el registro de Wi ndows para
ste archivo en particular. El valor puede ser cualquier nmero; si el valor es cero (0), se
examinar todo el archivo.
A continuacin se muestra un ejemplo que utiliza los datos de la primera fila del archivo de
texto para determinar los nombres de los campos. Asimismo, se le indica que examine el
archivo completo para poder determinar los tipos de datos que contienen:

ColNameHeader = True
MaxScanRows = 0

Como se ha dicho anteriormente, la opcin del nmero de columna Coln para la definicin de
los campos de la tabla, es opcional para los archivos delimitados por caracteres y obligatorio
para los archivos de longitud fija. La sintaxis es la siguiente:
Coln = nombre_columna tipo [Width #]
Parmetro

Descripcin

nombre_columna

Nombre del campo. Es importante destacar que, si el nombre del campo de


la tabla original contiene espacios en blanco incrustados, ste se deber de
escribir necesariamente entre comillas dobles, y slo en ste caso.

tipo

Los tipos de datos pueden ser:


Tipo de datos Microsoft Jet
Bit
Byte
Currency
DateTime
Double
Long
Memo
Short
Single
Text

Tipo de datos ADO / ODBC


Bit
Byte
Cyrrency
Date
Float
Long
LongChar
Integer
Single
Char

ancho

La palabra Width, la cual indica que el siguiente nmero especifica el ancho


del campo. Es opcional para los archivos delimitados por caracteres, y
obligatorio para los archivos de longitud fija.

Nmero entero que especifica el ancho del campo el cul es obligatorio si se


especifica Width.

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

6 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

El siguiente ejemplo define tres campos de la tabla mediante la opcin del nmero de columna
Coln, utilizando para ello los tipos de datos de Microsoft Jet:

Col1 = IdCliente Long


Col2 = Nombre Text Width 50
Col3 = "Fecha Alta" DateTime

2.4. Juego de caracteres


Para indicarle al ISAM el juego de caracteres que tiene que utilizar, en el archivo de informacin
de esquema estableceremos la entrada CharacterSet, la cual podr tener como valor uno de
los siguientes juegos de caracteres disponibles: ANSI, OEM y Unicode. Dicho valor, anular el
existente con idntico nombre, y para cada archivo de texto individual, en la siguien te clave del
registro de Windows:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Text
En una configuracin regional de espaol internacional, elegir el juego de caracteres ANSI
permite que aparezcan las tildes ortogrficas (acentos) y la letra , las cuales perfectamente
pueden existir en las cadenas de caracteres de nuestro archivo de texto:

CharacterSet = ANSI

En lugar de las palabras ANSI/OEM/Unicode, tambin se puede utilizar los valores numricos
850 para el juego de caracteres OEM, 1200 para Unicode, y 1252 para el de ANSI, que sera el
valor predeterminado existente en el registro de Windows para una configuracin regional de
Espaol.
2.5. Otras opciones de formato y conversin de tipos de datos
En el archivo de informacin de esquema Schema.ini se pueden establecer otras opciones para
especificar cmo se convierten o se muestran los datos cuando sean ledos por el motor de datos
Microsoft Jet. Dichas opciones son sumamente importantes si queremos presentar un formato
especfico de fecha, formato de nmero negativo, nmero de dgitos decimales o el smbolo de la
moneda, ya que, de omitir dichas entradas, se utilizarn por defecto los valores que
actualmente se encuentren establecidos en la Configuracin Regional del Panel de Control de
Windows. A continuacin se enumeran las opciones disponibles.
Opcin

Descripcin

CurrencyDecimalSymbol

Carcter nico para separar la parte entera de la fraccioriaria de


un valor monetario:
Ejemplo : CurrencyDecimalSymbol = ,

CurrencyDigits

Valor numrico que especifica el nmero de digitos decimales que


se utilizar para representar una cantidad monetaria:
Ejemplo: CurrencyDigits = 2

CurrencyNegFormat

Uno de los siguientes valores con la representacin del simbolo


monetario que se haya establecido como valor en la opcin
CurrencySymbol:
Valor
0

Representacin en
dlares USA
-$1

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

7 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

-$1

$-1

$1-

(1$)

-1$

1-$

1$-

8 (Predeterminado)

-1 $

-$ 1

10

1 $-

11

$ 1-

12

$ -1

13

1- $

14

($ 1)

15

(1 $)

Ejemplo: CurrencyNegFormat = 8
CurrencyPosFormat

Cualquiera de los siguiente valores:


Valor

Descripcin

$1 (sin espacio de
separacin)

1$ (sin espacio de
separacin)

$ 1 (un espacio de
separacin)

1 $ (un espacio de
separacin)

Ejemplo: CurrencyPosFormat = 3
CurrencySymbol

Indica el simbolo de moneda o texto de la misma, que se utilizar


en los valores monetarios incluidos en el archivo de texto. Los
espaoles pueden indicar el smbolo del euro.
Ejemplo: CurrencySymbol = $

CurrencyThousandSymbol

Carcter nico para separar los miles de un valor monetario:


Ejemplo: CurrencyThousandSymbol = .

DateTimeFormat

El formato de cadena utilizado para las fechas y horas.


Necesariamente hay que especificar sta opcin si todos los
campos de fecha/hora se tratan con el mismo formato. Todos los
formatos de Microsoft Jet son compatibles, excepto A.M. y P.M.
Ejemplo: DateTimeFormat = dd/mm/yyyy

DecimalSymbol

Carcter nico para separar la parte entera de la fraccionaria de


un valor numrico:
Ejemplo: DecimalSymbol = ,

NumberDigits

Valor numrico que especifica el nmero de digitos decimales que


se utilizar para representar una cantidad numrica:
Ejemplo: NumberDigits = 2

NumberLeadingZeros

Valor boolean que indicar si los valores numricos decimales


menores que I y mayores que -1 deben contener ceros a la
izquierda (TRUE) o no (FALSE).
Ejemplo: NumberLeadingZeros = TRUE

2.6. Crear un archivo Schema.ini con el Administrador de orgenes de datos ODBC

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

8 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

Mediante el Administrador de Orgenes de datos ODBC, incluido en el Panel de Control de


Windows, podemos crear y configurar un origen de datos DSN para trabajar con los archivos de
texto que tengamos en una carpeta en particular, utilizando el controlador ODBC de texto.
Para ello, creamos un nuevo DSN eligiendo el driver Microsoft Text Driver (*.txt;*.csv),
mostrndose a continuacin el cuadro de dilogo Configuracin de ODBC de texto. Una vez aqu,
escribimos el nombre del origen de datos, una pequea descripcin y desmarcamos la casilla de
verificacin Usar directorio actual, lo que har que se habilite el comando Seleccionar
directorio... Pulsamos sobre dicho botn y seleccionamos el directorio donde se encuentren
nuestros archivos de texto que contienen los datos con los que vamos a trabajar.
Una vez seleccionado el directorio, pulsamos sobre el botn Opciones para que se nos ample el
cuadro de dilogo de Configuracin de ODBC de texto. Observaremos la lista de extensiones
permitidas para los archivo de texto, teniendo la oportunidad de aadir y eliminar extensiones a
las ya existentes, una vez que desmarquemos la verificacin de Predeterminada(*.*).
Pulsamos sobre el botn Definir formato..., para que se nos abra el cuadro de dilogo Definir
formato de texto. En este nuevo cuadro de dilogo, podemos ver una lista de todos los archivos
existentes en la carpeta que cumplen con la extensin especificada.
Si seleccionamos la opcin default, podremos establecer una configuracin por defecto para
todos los archivos de texto que estn en la carpeta seleccionada; si no hay archivos de texto, se
ignorar las opciones seleccionadas. Igualmente, si seleccionamos el nombre de un archivo de
texto, podemos establecer una configuracin individual para dicho archivo de texto. Una vez
especificadas la opciones de configuracin, pulsamos sobre el botn Estimar para que surtan
efecto las mismas. Si hemos especificado Encabezado nombre columna, al aceptar la
configuracin, inmediatamente veremos los campos, nombre y tipos de datos que conforman
nuestro archivo de texto, teniendo la oportunidad de agregar, modificar y eliminar campos de
dicho archivo de texto.
Una vez aceptados todos los cambios, se generar en la carpeta seleccionada, un archivo de
esquema Schema.ini, con las configuraciones elegidas para cada uno de los archivos de texto
que se encuentren incluidos en la carpeta.
2.7. Ejemplos de archivos de informacin de esquema Schema.ini
En un mismo archivo de configuracin Schema.ini pueden existir varias configuraciones para
importar/exportar distintos archivos de texto, siempre y cuando aqullas estn delimi tadas por
sus respectivas secciones, que indicarn a su vez, los nombres de los archivos de texto con los
que vamos a trabajar.
El ejemplo siguiente muestra la configuracin de un archivo de ancho fijo:

[Poliza.txt]
ColNameHeader=False
Format=FixedLength
MaxScanRows=25
CharacterSet=OEM
Col1=COL1 Char Width 2
Col2=COL2 Char Width 21
Col3=COL3 Char Width 11
Col4=COL4 Integer Width 11
Col5=COL5 Single Width 7
Col6=COL6 Char Width 16
Col7=COL7 Single Width 5

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

9 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

Col8=COL8 Char Width 12

A continuacin se muestra la configuracin de un archivo delimitado:

[Clientes.txt]
ColNameHeader=True
CharacterSet=ANSI
Format=Delimited(|)
Col1=IdCliente Integer
Col2=Apellidos Char Width 30
Col3=Nombre Char Width 50
Col4=NIF Char Width 9
Col5=Domicilio Char Width 50
Col6=CodPostal Char Width 50
Col7=Localidad Char Width 50
Col8=Telefono Char Width 50
Col9=FechaNto Date
Col10=FechaAlta Date
Col11=Activo Bit
Col12=FechaBaja Date
Col13=Causa Char Width 50

Por ltimo, un ejemplo que muestra los distintos parmetros que se pueden establecer en el
archivo de esquema Schema.ini:

[Ejemplo.txt]
ColNameHeader=True
Format=TabDelimited
MaxScanRows=25
CharacterSet=ANSI
DateTimeFormat=dd/mm/yyyy
CurrencySymbol=Euro
CurrencyPosFormat=9
CurrencyThousandSymbol=.
CurrencyDecimalSymbol=,
DecimalSymbol=,
NumberDigits=2
NumberLeadingZeros=True

3. El delimitador de texto y la opcin TextDelimiter


Como se ha visto anteriormente, la opcin Format especifica el carcter que utiliza nuestro
archivo de texto para delimitar los campos que se incluyen en el mismo, y en principio, su valor
puede ser cualquier carcter a excepcin de las comillas dobles ('').
El delimitador de texto o cualificador de texto (que es el nombre que utiliza el asistente para
exportacin de texto de Microsoft Access), es el carcter que utilizamos para delimitar el valor
contenido en un campo de tipo alfanumrico de nuestro archivo de texto, por tanto deberemos
tener especial cuidado en no confundir ambos delimitadores cuando lo utilicemos en el archivo

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

10 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

de informacin de esquema Schema.ini.


El carcter de delimitador de texto por defecto son las comillas dobles ("), de ah que la opcin
Format no pueda tomar dicho valor, ya que obtendramos el siguiente error: El separador de
campos de la especificacin de archivo de texto coincide con el separador decimal o el delimitador
de texto.
Pero puede ocurrir que nos veamos en la imperiosa necesidad de trabajar con un archivo de
texto cuyos campos estn delimitados por comillas dobles, o bien, estamos utilizando
delimitadores de texto no estndar, como la comilla simple (') o la coma (,), con valores de
campos de texto que adems incluyen comillas simples o comas, como por ejemplo nombres
ingleses o domicilios de clientes.
Ante tales dificultades, la nica solucin que nos queda, a fin de evitar el mensaje de error
mencionado anteriormente, es incluir la opcin TextDelimiter en el archivo Schema.ini, cuyo
valor ser el carcter que nos servir para definir el delimitador de texto, y por tanto, poder
optar por otro valor distinto al predeterminado de las comillas dobles. Veamos un ejemplo.
Imaginad que tenemos la siguiente lnea de texto, cuyos campos estn separados por comas
(Format), y se utiliza la comilla simple como delimitador de texto (TextDelimiter):

'Martnez Flores, Javier','Av. Concha Espina, 34 - 4 B','Madrid','28016'

Si no utilizamos ningn archivo Schema.ini para indicar los valores de ambos delimitadores, al
importar el archivo de texto, los campos Nombre y Domicilio se han dividido, ya que al incluir los
datos una coma, el ISAM lo ha tomado como si de un campo distinto se tratara:
Campo1
Campo2
'Martnez Flores Javier'

Campo3
'Av. Concha Espina

Campo4
34 - 4 B'

Campo5
'Madrid'

Campo6
'28016'

En cambio, si en el archivo Schema.ini especificamos los valores correspondientes a ambos


delimitadores, los datos se tomarn correctamente:

Format=CSVDelimited
TextDelimiter='

Campo1
Martnez Flores, Javier

Campo2
Av. Concha Espina, 34 - 4 B

Campo3
Madrid

Campo4
28016

Si la opcin TextDelimiter es distinta a las comillas dobles, la opcin Format puede contener
dicho carcter de separacin, por lo que ya estamos en condiciones de trabajar con un archivo
de texto delimitado por comillas dobles (").
Por ltimo indicar que, si no deseamos utilizar ningn tipo de carcter como smbolo delimitador
de texto (comillas dobles, simples, etc.), necesariamente debemos de indicar el valor none en el
parmetro TextDelimiter de nuestro archivo de informacin de esquema Schema.ini:

TextDelimiter=none

Para ms informacin, consltese el siguiente artculo de la Knowledge Base:


Los archivos de texto que utilizan delimitadores no estndar de texto no se analizan

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

11 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

adecuadamente con el driver de texto de Microsoft

4. Abrir directamente un archivo de texto


A continuacin voy a explicar varios procedimientos para abrir directamente un archivo de texto
utilizando para ello las bibliotecas de acceso a datos Microsoft Data Access Object Library (DAO)
y Microsoft ActiveX Data Object Library (ADO), as como el driver de texto de Conectividad
Abierta de Bases de Datos (ODBC).
Resaltar que el ISAM de Texto de Microsoft Jet slo nos permitir aadir nuevos registros al
archivo de texto, siempre y cuando el objeto Recordset se haya abierto con permisos de
escritura. No podremos modificar ni eliminar datos del archivo de texto, ya que obtendremos el
siguiente mensaje de error: Este ISAM no admite la actualizacin/eliminacin de datos en una
tabla vinculada. Si deseamos evitar el error, no nos queda ms solucin que abrir el archivo de
texto en modo de slo lectura, pero en ste caso, no podremos tampoco aadir nuevos registros.
4.1. Mediante DAO mostrando los datos en un DBGrid
Hay que utilizar el mtodo OpenDatabase del objeto DBEngine donde se indicar la ruta, el
modo de acceso (slo lectura o lectura/escritura), y el tipo de la base de datos de origen, el
cual, siempre ser TEXT;. Asimismo, y a pesar de ser un valor opcional, es necesario establecer
explcitamente a True/False el valor del parmetro Opciones del mtodo OpenDatabase, ya
que de lo contrario, obtendremos el error 3051 en tiempo de ejecucin.
En este ejemplo, vamos a utilizar un simple control Data para que automticamente se llene el
control DBGrid, por tanto, en tiempo de diseo es necesario establecer la propiedad
DataSource del control DBGrid con el nombre de un control Data, ya que el control DBGrid no
admite automatizacin.
El ejemplo abre el archivo de texto Clientes, que se encuentra en la carperta Mis documentos,
creando un objeto Recordset:

Dim db As Database
Dim rs As Recordset
' Abrimos el archivo de texto, donde indicamos el nombre de
' la carpeta, el modo compartido, el acceso de lectura/escritura,
' y el tipo de la base de datos que vamos a utilizar.
Set db = OpenDatabase ("C:\Mis documentos", True, False, "TEXT;")
' Creo el Recortdset
Set rs = db.OpenRecordset ("Clientes")
' Establezco el Recordset del control Data
Set Data1.Recordset = rs

4.2. Mediante ADO visualizando la informacin en un DataGrid


Si utilizamos la biblioteca Microsoft ActiveX Data Object, hay que especificar en la cadena de
conexin la ruta de la carpeta que contiene el archivo de texto y el tipo del ISAM que se va a
utilizar, mediante la propiedad Extended Properties del objeto Connection.
Tenga en cuenta que la versin del proveedor necesaria que hay que utilizar para abrir un

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

12 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

archivo de texto mediante la biblioteca de ADO es la versin del proveedor Jet 4.0; el proveedor
Jet 3.51 no soporta los drivers ISAM de Jet. Si se especifica el proveedor Jet 3.51, en tiempo de
ejecucin se recibir el siguiente mensaje de error: No se pudo encontrar el ISAM instalable.
Para descargar las distintas versiones de los componentes de acceso a datos de Microsoft
(MDAC), visite la siguiente direccin: http://www.microsoft.com/data.
El siguiente ejemplo, abre el anterior archivo utilizando el ISAM de texto del proveedor de datos
Microsoft Jet:

Dim cnn As ADODB.Connection


Dim rs As ADODB.Recordset
' Establezco la cadena de conexin con el archivo de texto
Set cnn = New ADODB.Connection
With cnn
.Provider="Microsoft.Jet.OLEDB.4.0"
.ConnectionString="Data Source=C:\Mis documentos;" & _
"Extended Properties=TEXT;"
' Abro la conexin
.Open
End With
' Abro el recordset
Set rs = New ADODB.Recordset
With rs
' Utilizamos cursores del lado cliente, para poder
' visualizar los datos en el control DataGrid
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockOptimistic
End With
' Ntese que hay que indicar la extensin del archivo, de lo
' contrario, el proveedor nos devolver un error.
rs.Open "Clientes.txt", cnn, , , adCmdTable
' Relleno el control DataGrid
Set DataGrid1.DataSource = rs

Por ltimo indicar que el punto que separa el nombre del archivo de su extensin, se puede
sustituir por el smbolo #:

Open "Clientes#txt", cnn, , adCmdTable

Si no deseamos crear un archivo de informacin de esquema, bien en la cadena de conexin,


bien en la consulta SQL, aparte de indicar el ISAM de texto y la ruta de la carpeta, tambin
podemos indicar los valores que se especifican en la siguiente tabla, aunque no podremos
aprovechar todas las restantes opciones que se pueden especificar en el archivo Schema.ini:
HDR = Yes | No

Indica si la primera fila contiene o no el nombre de los


campos.

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

13 de 30

CharacterSet = ANSI | OEM |


Unicode
FMT = Delimited

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

El juego de caracteres que se utilizar.


Los campos estarn delimitados por el carcter especificado
en el registro de Windows.

Es importante resaltar que, en lneas generales, estos valores surtirn efecto siempr e y cuando
no haya un archivo de informacin de esquema en la carpeta donde se encuentre el origen de
datos, porque de lo contrario, el ISAM de texto no los tendr en cuenta, ya que prevalecer la
configuracin existente en el archivo Schema.ini.
Asimismo, de no existir el archivo de informacin, los valores de los parmetros que no se
especifiquen en la cadena de conexin, se tomarn de los existentes en el registro de Windows.
La cadena de conexin del ejemplo anterior, tambin se podra haber especificado de la
siguiente manera:

.ConnectionString = "Data Source=" & App.Path & ";" & _


"Extended Properties=""TEXT;HDR=No;FMT=Delimited;
CharacterSet=ANSI;"""

A diferencia del ejemplo anterior, obsrvese en ste ltimo ejemplo la utilizacin de los pares de
comillas en color rojo, ya que de no indicarse, nos encontraremos con el molesto mensaje de
error No se pudo encontrar el archivo ISAM instalable.
Igualmente, hay que tener precaucin en no separar con un espacio en blanco el signo de
igualacin (=) que sigue a continuacin del nombre de la propiedad Extended Properties,
para especificar el valor de sta, ya que obtendremos otro mensaje de error, en este caso, El
formato de la cadena de inicializacin no cumple la especificacin OLE DB, un sutil error que nos
puede costar perder cierto tiempo en intentar descubrir su origen.
Si no deseamos tener problemas con las comillas dobles o los espacios en blanco a la hora de
especificar los diferentes parmetros que conforman la cadena de conexin, podemos olvidarnos
de la propiedad ConnectionString y asignar explcitamente los valores de las distintas
propiedades de la siguiente manera:

cnn.Properties("Data Source") = App.Path


cnn.Properties("Extended Properties") = "TEXT;HDR=No;FMT=Delimited;
CharacterSet=ANSI;"

4.3. Mediante ADO utilizando el driver de texto ODBC


Tambin podemos utilizar la biblioteca de ADO junto con el driver ODBC de Texto para trabajar
con los datos de nuestro archivo de texto. En ste caso, con tan slo especificar en la cadena de
conexin el nombre del conductor y el directorio donde se encuentra nuestro archivo, estaremos
en condiciones ptimas de manipular el origen de datos.

objCnn.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _


"DBQ=C:\Mis documentos"

En lugar de indicar la palabra clave DBQ, tambin podemos especificar la palabra DefaultDir, la
cual indicar el directorio por defecto, pero hay que tener en cuenta que, de no especificar

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

14 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

ninguna de las dos palabras claves, el controlador ODBC de Texto se conectar al directorio
actual que est establecido como tal en el sistema operativo.
Es importante resaltar que los fallos en la conversin de tipos de campos especificados en el
archivo Schema.ini tienen como resultado que se aplique un valor NULL a la columna afectada.
El siguiente ejemplo utiliza el driver ODBC de texto para devolver el nmero de registros de la
tabla Clientes cuyo archivo de texto se encuentra en la carpeta que contiene nuestra aplicacin:

Dim cnnText As ADODB.Connection


Dim rs As ADODB.Recordset
' Conexin con el archivo mediante el
' conductor (driver) ODBC para Texto
Set cnnText = New ADODB.Connection
With cnnText
.Provider = "MSDASQL.1"
.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"DBQ=" & App.Path & _
";Extensions=txt,csv,tab,asc;"
.Open
End With
' Abrimos el objeto Recordset
Set rs = New ADODB.Recordset
rs.Open "SELECT COUNT (*) FROM Clientes.txt", cnnText, , , adCmdText
' Comprobamos el nmero de registros devueltos
MsgBox rs.Fields(0)

4.4. Utilizando ASP con un origen de datos (DSN)


Aparte de abrir un archivo de texto que est disponible en alguna carpeta de nuestro ordenador,
tambin podemos establecer una conexin con un archivo que est disponible en un servidor,
utilizando para ello un nombre de origen de datos (DSN).
Aunque podemos crear cualquier origen de datos mediante el Administrador de orgenes de
datos ODBC del Panel de Control, en sta ocasin vamos a crear directamente un nombre de
origen de datos para abrirlo mediante una pgina ASP, por tanto, es necesario que tengamos
instalado e iniciado en nuestro ordenador los Servicios de Internet Information Server (IIS), y
que guardemos el texto de ms abajo con el nombre Text.dsn, por ejemplo, en un directorio
virtual con permisos para ejecutar scripts.

[ODBC]
DRIVER=Microsoft Text Driver (*.txt; *.csv)
UID=admin
UserCommitSync=Yes
Threads=3
SafeTransactions=0
PageTimeout=5
MaxScanRows=25
MaxBufferSize=512
ImplicitCommitSync=Yes

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

15 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

FIL=text
Extensions=txt,csv,tab,asc
DriverId=27

A continuacin, guardar en el mismo directorio virtual los datos del archivo de texto, creando
para ello un nuevo archivo con el nombre Datos.txt:

IdCliente;Nombre;Total
4300012;"Felipe Serrano Hervs";4250,37
4302015;"Gustavo Prez Garca";7585,59
4303025;"Joaqun Lpez Fernndez";141,53
4305684;"Mara Carmen Castilla Lombardo";1485,77
4300054;"Juan Carlos Armenteros Ruiz";7835,58

Por ltimo, slo nos queda crear el archivo EjemploDSNTexto.asp, por ejemplo, para ejecutar
el cdigo Visual Basic Script:

<%
Option Explicit
Response.Expires = -1000
Response.Write("<p><b><u><font size=3 face=arial>")
Response.Write("Ejemplo de ASP</u></b></font></p>")
Response.Write("<p><b><font size=2 face=arial>")
Response.Write("Abrir un archivo de texto mediante un origen de datos DSN</b></font>
</p>")
Dim
Dim
Dim
Dim

sDSNFile, sScriptDir
sPath, sDSN
sSQL, sColor
cnn, rs

' Nombre del archivo DSN


sDSNFile = "Text.dsn"
' Recuperamos el directorio actual
sScriptDir = Request.ServerVariables("SCRIPT_NAME")
sScriptDir = StrReverse(sScriptDir)
sScriptDir = Mid(sScriptDir, InStr(1, sScriptDir, "/"))
sScriptDir = StrReverse(sScriptDir)
' Construimos dinmicamente el origen de datos DSN
sPath = Server.MapPath(sScriptDir) & "\"
sDSN = "FileDSN=" & sPath & sDSNFile & _
";DefaultDir=" & sPath & _
";DBQ=" & sPath & ";"
' Establecemos la conexin
Set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open sDSN

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

16 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

' Construimos la consulta SQL de seleccin


sSQL = "SELECT * FROM datos.txt ORDER BY IdCliente"
' Creamos un objeto Recordset con el resultado
' de la consulta
Set rs = cnn.execute(sSQL)
' Mostramos el contenido del Recordset
Response.Write("<table style='font-family:arial; font-size:10pt;'>")
Response.Write("<tr bgcolor=black style='color:white;'><td>Id Cliente</td>")
Response.Write("<td>Nombre</td>")
Response.Write("<td align=right>Total Ventas</td>")
sColor = "aqua"
Do While NOT rs.EOF
If sColor = "pink" Then
sColor = "aqua"
Else
sColor = "pink"
End If
Response.Write("<tr bgcolor='" & sColor & "'>")
Response.Write("<td>" & rs("IdCliente").Value & "</td>")
Response.Write("<td>" & rs("Nombre").Value & "</td>")
Response.Write("<td align=right>" & rs("Total").Value & "</td>")
rs.MoveNext
Loop
' Cerramos el Recordset y la Conexin
rs.close
Set rs = nothing
cnn.close
Set cnn = nothing
%>

Si ejecutis la pgina desde vuestro navegador, obtendris la siguiente tabla de datos:

Ejemplo de ASP
Abrir un archivo de texto mediante un origen de datos DSN
Id Cliente
4300012
4300054
4302015
4303025
4305684

Nombre
Felipe Serrano Hervs
Juan Carlos Armenteros Ruiz
Gustavo Prez Garca
Joaqun Lpez Fernndez
Mara Carmen Castilla
Lombardo

Total Ventas
4250,37
7835,58
7585,59
141,53
1485,77

5. Vinculacin de archivos de texto


Al igual que vinculamos tablas de bases de datos Access, tambin podemos vincular a nuestra
base de datos un archivo de texto delimitado. Sin embargo, para que el motor de base de datos

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

17 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

Microsoft Jet puede uilizar la informacin del archivo Schema.ini, deben residir en la misma
carpeta el archivo de datos y el archivo de informacin de esquema.
Al igual que sucede cuando abrimos directamente un archivo de texto, cuando vinculamos un
archivo de texto el ISAM de Microsoft Jet slo nos permitir aadir nuevos registros al archivo
de texto, por lo que no podremos modificar ni eliminar datos del archivo de texto, ya que
obtendremos el siguiente mensaje de error: Este ISAM no admite la actualizacin/eliminacin de
datos en una tabla vinculada.
5.1. Vincular con ADOX un archivo de texto a una base de datos Access
La biblioteca de ADO no permite vincular un archivo de texto a una base de datos Access. Para
ello tenemos que ayudarnos de la biblioteca Microsoft ADO Ext. 2.x for DLL and Security,
ms conocida en los ambientes de programacin por el nombre de ADOX, la cual es una
extensin de los objetos y del modelo de programacin de ADO. Por tanto, en nuestro proyecto
no hay que olvidarse de hacer referencia a la citada biblioteca.
El siguiente ejemplo, muestra como vincular un archivo de texto, a una base de datos Access
2000:

Public Sub LinkTextWithADO


Dim cnn As ADODB.Connection
Dim cat As ADOX.Catalog
Dim tbl As ADOX.Table
' Establezco la conexin con la base de datos Access
Set cnn = New ADODB.Connection
With cnn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Mis documentos\Bd1.mdb;"
.Open
End With
' Creo un nuevo catlogo
Set cat = New ADOX.Catalog
cat.ActiveConnection = cnn
' Creo la nueva tabla
Set tbl = New ADOX.Table
tbl.Name = "Tabla Vinculada de Texto"
Set tbl.ParentCatalog = cat
' Establezco las propiedades para crear el vnculo
With tbl
.Properties("Jet OLEDB:Create Link") = True
.Properties("Jet OLEDB:Link Provider String") = "TEXT;DATABASE=" & _
App.Path & ";HDR=Yes;FMT=Delimited"
.Properties("Jet OLEDB:Remote Table Name") = "Clientes#txt"
End With
' Aado la tabla a la coleccin 'Tables'
cat.Tables.Append tbl
End Sub

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

18 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

5.2. Utilizar DAO para vincular un archivo de texto


Para vincular un archivo de texto delimitado a una base de datos Access, hay que util izar el
mtodo OpenDatabase para abrir la base de datos; crear un objeto TableDef, y establecer las
propiedades Connect y SourceTableName del objeto TableDef para indicar el archivo de
texto que se desea vincular.
En el siguiente ejemplo, vamos a vincular un archivo de texto de longitud fija, por l o que
necesitaremos crear un archivo de informacin de esquema Schema.ini, en la misma carpeta
donde se encuentren los datos, para especificar el nmero, nombre, tipo de dato y ancho de las
columnas. En ste caso, indicaremos que la primera fila no contiene los nombres de los campos.
El archivo de configuracin de esquema sera as:

[Clientes fijo.txt]
ColNameHeader=False
CharacterSet=ANSI
Format=FixedLength
Col1=IdCliente Long Width 7
Col2=Nombre Text Width 35
Col3=CIF Text Width 9

El archivo Clientes fijo.txt estar compuesto por los siguientes cinco registros. Si desea probar el
ejemplo, copie y pegue los datos con el mismo formato en el que aparecen aqu:
430001
430002
430006
430012
430015

CAADA VAZQUEZ, JOAQUIN


MENDEZ CUBILLO, LORENZO
CONSTRUCCIONES EL BUENO, S.A.
MENDIETA GARCA, FELIPE
CARRILLO CONTRERAS, ROSARIO

12111255B
58777000
A33366684
06254000A
55666555Z

Ya slo nos queda, ejecutar el siguiente procedimiento:

Public Sub LinkTextWithDAO


Dim db As Database
Dim td As TableDef
' Abro la base de datos de Access
Set db = OpenDatabase("C:\Mis documentos\Bd1.mdb")
' Creo un objeto TableDef
Set td = db.CreateTableDef("Tabla de Texto Fijo vinculada")
' Establezco la informacin de conexin
td.Connect = "TEXT;DATABASE=" & App.Path
td.SourceTableName = "Clientes fijo#txt"
' Anexo el objeto TableDef para crear el vnculo
db.TableDefs.Append td
End Sub

Si abrimos la tabla vinculada en nuestra base de datos Access, observaremos el siguiente

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

19 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

resultado:
IdCliente
Nombre
CIF
430001CAADA VAZQUEZ, JOAQUIN
12111255B
430002MENDEZ CUBILLO, LORENZO
58777000
430006CONSTRUCCIONES EL BUENO, S.A. A33366684
430012MENDIETA GARCA, FELIPE
06254000A
430015CARRILLO CONTRERAS, ROSARIO 55666555Z

6. Cmo crear y eliminar una tabla de texto


Mediante la instruccin CREATE TABLE correspondiente al Lenguaje de Definicin de Datos
(DDL) de SQL, podemos crear una tabla de texto de la misma forma que crearamos una tabla
en una base de datos Access. Es ms, utilizando dicho comando, automticamente se generar
el archivo de informacin de esquema Schema.ini correspondiente, y en la misma carpeta donde
hayamos creado el archivo de texto. De querer crear un archivo de texto delimitado, en mi
opinin es la forma ms fcil de generar el archivo Schema.ini, porque en principio, los
parmetros del mismo sern los que aparezcan en el registro de windows. Por el contrario, si
deseamos crear un archivo de texto de longitud fija, necesitaremos crear de antemano el
archivo Schema.ini para especificar el ancho de las columnas.
La sintaxis de la instruccin CREATE TABLE es la siguiente:

CREATE TABLE Nombre_Tabla (Campo1 Tipo (tamao), Campo2 Tipo (tamao), ...)

A continuacin vamos a generar un archivo de texto de tres campos, utilizando la bibl ioteca de
ADO:

Dim cnn As ADODB.Connection


' Establecemos la conexin
Set cnn = New ADODB.Connection
With cnn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & App.Path
.Properties("Extended Properties") = "TEXT;"
.Open
End With
' Creamos la tabla de texto
cnn.Execute "CREATE TABLE Clientes#txt (IdCliente LONG, " & _
"Apellidos TEXT (50), Nombre TEXT (25))"

Si vamos a la carpeta que contiene nuestra aplicacin, podemos observar que se ha generado el
archivo de texto donde slo aparecen los nombres de los campos en la primera fila. Asimismo,
tambin podemos observar que se ha creado el archivo de informacin de esquema con los
valores de los parmetros existentes en el registro de nuestro sistema.
Si utilizamos la biblioteca de DAO, el cdigo sera el siguiente:

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

20 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

Dim db As Database
' Abrimos la base de datos
Set db = OpenDatabase(App.Path, True, False, "TEXT;")
' Creamos la tabla de texto
db.Execute "CREATE TABLE Clientes#txt (IdCliente LONG, " & _
"Apellidos TEXT (50), Nombre TEXT (25))"

En cuanto a cmo eliminar un archivo de texto, lo ms fcil sera eliminarlo desde el


Administrador de Archivos, o utilizar la instruccin Kill de Visual Basic, pero ya que estamos
utilizando bibliotecas de acceso a datos, vamos a eliminarlo como eliminaramos cualquier otra
tabla de una base de datos Access.
Mediante ADO y DAO utilizaramos el mtodo Execute de un objeto Connection o Database,
respectivamente, para ejecutar la siguiente consulta SQL:

objeto.Execute "DROP TABLE Clientes#txt"

Para los usuarios de DAO, comentar que tambin pueden eliminar el archivo de texto utilizando
el mtodo Delete de la coleccin TableDefs de un objeto Database previamente abierto:

db.TableDefs.Delete "Clientes#txt"

Tal es la vinculacin existente entre el archivo de texto y su archivo de informacin de


esquema, que al eliminar el archivo de texto, automticamente tambin se elimina el archivo de
informacin de esquema asociado, o la seccin correspondiente al archivo eliminado, si el
archivo Schema.ini tiene informacin de varios archivos de texto. Esta es la ventaja que tiene
utilizar los mtodos de eliminacin expuestos en contraposicin a utilizar la instruccin Kill.

7. Importar los datos de un archivo de texto


La verdadera importancia de los distintos formatos de ISAM del que dispone el motor Microsoft
Jet, reside en la capacidad que ostenta para importar/exportar datos a distintos orgenes de
datos, utilizando para ello el potente Lenguaje de Consulta Estructurado (SQL). De sta manera
podemos utilizar los datos de un simple archivo de texto para importarlo a una base de datos
Access, a una hoja de clculo Excel, o a otros tipos de base de datos de escritorio como bien
puede ser, dBASE o Paradox, entre otros.
Esto es posible gracias a una variacin de la instruccin SELECT, la cual nos permitir crear
una nueva tabla con los registros devueltos de la consulta, simplemente con agregar l a clusula
INTO a la misma. De igual manera, para identificar el archivo de texto externo, incluiremos la
clusula IN para especificar el tipo de ISAM que vamos a utilizar (en nuestro caso TEXT;), y la
ruta donde se encuentra la base de datos externa (el parmetro DATABASE).
En general, la sintaxis de la consulta de creacin de tabla es la siguiente, dependiendo de la
tabla que deseemos identificar.

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

21 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

Para identificar una tabla de destino:


SELECT * INTO [Tabla destino] IN {ruta | ["ruta" "tipo ISAM"] | ["" [tipo ISAM; DATABASE
= ruta]]}
SELECT * INTO [Nueva Tabla] IN ["C:\Mis documentos" "TEXT;"] FROM [Tabla Origen]
SELECT * INTO [Nueva Tabla] IN [''TEXT; DATABASE=C:\Mis documentos] FROM [Tabla
Origen]
Para identificar una tabla de origen:
FROM [Tabla origen] IN {ruta | ["ruta" "tipo ISAM"] | ["" [tipo ISAM; DATABASE = ruta]]}
SELECT * INTO [Nueva Tabla] FROM [Tabla Origen] IN ["C:\Mis documentos" "TEXT;"]
SELECT * INTO [Nueva Tabla] FROM [Tabla Origen] IN [''TEXT; DATABASE=C:\Mis
documentos"]

7.1. Importar los datos a una base de Access


Si tenemos una conexin abierta con una base de datos Access, podemos importar los datos de
un archivo de texto creando una nueva tabla en nuestra base de datos. En ste caso, l a tabla
que necesitamos identificar es la tabla de origen, que corresponder con el archivo de texto
cuyos datos queremos recuperar.
A continuacin, y mediante la biblioteca de ADO, vamos a crear una nueva tabla [TextImport]
en nuestra base de datos Access, con los datos del archivo de texto [Clientes#txt]. Para utilizar
el ejemplo con la biblioteca de DAO, simplemente necesitar ejecutar la misma consulta SQL
con el mtodo Execute de un objeto Database previamente abierto:

Dim cnn As ADODB.Connection


Dim sTablaOrigen As String
' Establezco la conexin con la base de datos actual
Set cnn = New ADODB.Connection
With cnn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=C:\Mis documentos\bd1.mdb"
.Open
' Identificamos la tabla de origen. Obsrvese en rojo la
' utilizacin de las comillas simples
sTablaOrigen = " ''[TEXT; DATABASE=" & App.Path & "]"
' Tambin podemos utilizar la siguiente sintaxis
' sTablaOrigen = " '" & App.Path & "' 'TEXT;'"
' Importamos los datos, creando una nueva tabla
.Execute "SELECT * INTO TextImport FROM [Clientes#txt] IN " & sTablaOrigen
' Cerramos la conexin
.Close
End With

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

22 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

Nota importante: Pongo especial nfasis en las comillas simples para que el lector observe
correctamente la sintaxis utilizada, ya que es sumamente importante incluirlas para delimitar la
ruta de acceso al archivo y la versin del ISAM instalable que se va a utilizar, procurando dejar
un espacio en blanco entre ambos parmetros.
Es de suma importancia tener en cuenta que, si el delimitador de campos del archivo de texto
no coincide con el especificado por defecto en el registro de Windows, necesariamente
tendremos que especificarlo en la opcin Format del archivo de informacin de esquema
Schema.ini, a fin de que todos los campos se importen correstamente, porque de lo contrario,
slo se importar el primer campo, y tampoco lo har de forma idnea.
7.2. Importar los datos a una hoja de clculo Excel
En el siguiente ejemplo, vamos a utilizar nuestro archivo de texto para importar los datos a un
libro de trabajo de Excel, creando de sta manera, una nueva hoja de clculo. Vuelvo hacer
hincapi en la necesidad de tener un archivo de informacin de esquema para que los datos se
exporten correctamente. Es ms, si la primera fila del archivo de texto no contiene el nombre
de los campos, necesariamente tendremos que establecer a False el valor del parmetro
ColNameHeader del archivo Schema.ini si queremos que se recupere la primera fila como un
registro ms.

Dim sTablaOrigen As String, sChainSql As String


Dim cnn As ADODB.Connection
' Establezco la conexin con el libro de trabajo
Set cnn = New ADODB.Connection
With cnn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=C:\Mis documentos\Libro1.xls;"
.Properties("Extended Properties") = "Excel 8.0;"
.Open
End With
' Construimos la consulta SQL
sTablaOrigen = " '" & App.Path & "' 'TEXT;' "
sChainSql = "SELECT * INTO TextImport FROM [Clientes#txt] IN " & sTablaOrigen
' Creamos una hoja de clculo en el libro de Excel
cnn.Execute sChainSql
' Cierro la conexin
cnn.Close

7.3. Importar los datos a otro archivo de texto


Tambin nos puede interesar crear otro archivo de texto delimitado para, por ejemplo, modificar
el carcter delimitador de los campos, o cualquier otro parmetro, de un archivo de texto ya
existente, por lo que necesariamente tendremos que crear un archivo Schema.ini para indicar el
nuevo valor que deseamos obtener en el parmetro apropiado. En sta ocasin, vamos a utilizar
la biblioteca de DAO:

Dim sTablaOrigen As String, sChainSql As String

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

23 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

Dim db As Database
' Establezco la conexin con el archivo de texto
' que deseamos crear, especificando la ruta y
' el tipo de ISAM
Set db = OpenDatabase(App.Path, True, False, "TEXT;HDR=Yes;FMT=Delimited;")
' Construimos la consulta SQL
sTablaOrigen = " ''[TEXT; DATABASE=" & App.Path & "]"
sChainSql = "SELECT * INTO [TextImport#txt] FROM [Clientes#txt] IN " & sTablaOrigen
' Creamos el nuevo archivo de texto
db.Execute sChainSql
' Cierro la conexin
db.Close

A diferencia de los ejemplos anteriores, en ste quiero hacer la salvedad de que necesariamente
tendremos que especificar una extensin para el nuevo archivo de texto, utilizando para ello un
punto (.), o el smbolo #, de tal forma que quede bien definido el nombre y la extensin del
archivo. Y esto es as porque de no especificar la extensin obtendremos el mensaje de error:
No se puede actualizar. Base de datos u objeto de slo lectura. Un error que nos puede acarrear
un verdadero dolor de cabeza si no ponemos especial cuidado en especificar la extensin del
nuevo archivo de texto. Para ms informacin sobre el tema, puede consultar el sigien te
artculo de Microsoft Knowledge Base:
Mensaje de error "No se puede actualizar. Base de datos u objeto de slo lectura"
cuando importa o exporta archivos

8. Cmo exportar datos desde el propio archivo de texto


Al igual que hemos utilizado una consulta SQL de creacin de tabla para importar los datos de
un archivo de texto, creando para ello una conexin con otro origen de datos distinto, ahora se
trata de exportar los datos desde el propio archivo de texto, es decir, abriendo una conexin con
ste ltimo y exportando desde aqu los datos a una base de datos Access, por ejemplo. En ste
caso, necesitaremos identificar la tabla de destino, la cul se corresponder con el archivo de
texto que deseamos crear. Vase la sintaxis de la instruccin SELECT * INTO descrita en el
punto nmero siete.
Mediante ADO, vamos a crear una tabla en nuestra base de datos Access, con los datos de un
archivo de texto delimtado:

Dim cnn As ADODB.Connection


Dim sConnect As String
' Establezco la conexin con el archivo de texto
Set cnn = New ADODB.Connection
With cnn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & App.Path & _
";Extended Properties=""TEXT;"""

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

24 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

.Open
' Indicamos la ruta de la base de datos
sConnect = "'C:\Mis documentos\Bd1.mdb'"
' Creamos la tabla
.Execute "SELECT * INTO [TextExport] IN " & sConnect & " FROM [Clientes#txt]"
.Close
End With

Si en la propiedad Extended Properties no se desea escribir tantos pares de comillas dobles,


se puede hacer referencia al tipo de ISAM de la siguiente manera:

cnn.Properties("Extended Properties") = "TEXT;"

A continuacin, vamos a generar un archivo dBASE con los datos de nuestro archivo de texto,
utilizando sta vez, la biblioteca de DAO. Indicar que, si el nombre del archivo de dBASE es
superior a ocho caracteres, no se tendrn en cuenta los caracteres que excedan de dicho
nmero.

Dim db As Database
Dim sConnect As String
' Establezco la conexin con el archivo de texto
' que deseamos crear, especificando la ruta y
' el tipo de ISAM
Set db = OpenDatabase(App.Path, True, False, "TEXT;HDR=Yes;FMT=Delimited;")
' Construimos la consulta SQL para identificar la tabla de destino
' Obsrvese las comillas simples en rojo
sConnect = " ''[dBASE 5.0; DATABASE=" & App.Path & "]"
' Creamos el nuevo archivo de dBASE, cuyo nombre tiene ms de ocho caracteres
db.Execute "SELECT * INTO [TextExport#dbf] IN " & sConnect & " FROM [Clientes#txt]"
' Cierro la conexin
db.Close

9. Cmo exportar datos a un archivo de texto


La manera ms fcil de crear un archivo de texto delimitado con los datos procedentes de tablas
u otros orgenes de datos, es mediante la utilizacin de una consulta SQL de creacin de tabla.
Simplemente necesitaremos establecer una conexin con el origen de datos, y exportar la tabla
especificando el tipo de ISAM que vamos a utilizar y la ruta donde se crear el archivo de texto.
Si al exportar los datos no disponemos de la informacin del archivo de configuracin de
esquema Schema.ini, automticamente se generar uno en la misma carpeta donde se haya
creado el archivo de texto, el cual contiene los valores por defecto establecidos en el registro de

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

25 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

Windows. Si necesitamos especificar o modificar algn valor, necesariamente tenemos que


generar un archivo Schema.ini antes de ejecutar la consulta.
Debemos de tener especial cuidado en no olvidarnos de especificar la extensin del archivo de
texto, ya que de lo contrario obtendremos el mensaje de error: No se puede actualizar. Base de
datos u objeto de slo lectura.
9.1. Exportar los datos de una tabla de Access
El ejemplo mostrar cmo exportar mediante la biblioteca de ADO una tabla de Access, creando
un archivo de texto delimitado:

Dim cnn As ADODB.Connection


Dim sConnect As String
' Establezco la conexin con la base de datos actual
Set cnn = New ADODB.Connection
With cnn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=C:\Mis documentos\bd1.mdb"
.Open
' Indico el tipo de ISAM y la ruta del archivo de texto
sConnect = "[TEXT;DATABASE=" & App.Path & "].[TextExport#txt]"
' Exportamos la tabla
.Execute "SELECT * INTO " & sConnect & " FROM Clientes"
' Cierro la conexin
.Close
End With

9.2. Exportar los datos de una hoja de clculo Excel


En sta ocasin, el ejemplo ilustra cmo exportar desde Excel una hoja de clculo, cr eando un
archivo de texto delimitado, utilizando para ello la biblioteca de DAO. Al igual que utilizamos
Excel como origen de datos, tambin podemos especificar otro tipo de ISAM disponible en
nuestro sistema:

Dim sConnect As String


Dim db As Database
' Establezco la conexin con el libro de trabajo
Set db = OpenDatabase("C:\Mis documentos\Libro1.xls", False, False, "Excel 8.0;
HDR=Yes;")
' Indico el tipo de ISAM y la ruta del archivo de texto
sConnect = "[TEXT; DATABASE=" & App.Path & "].[TextExport#txt]"
' Exportamos la hoja de clculo
db.Execute "SELECT * INTO " & sConnect & " FROM [Hoja1$]"
' Cierro la base de datos

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

26 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

db.Close

10. Aadir registros a una tabla procedentes de un archivo de texto delimitado


Si tenemos una tabla creada en Access y queremos aadir los datos existentes en un ar chivo de
texto delimitado, podemos insertar los datos mediante la instruccin INSERT INTO, lo que en
SQL se conoce como una consulta de datos aadidos o anexados, la cual aade los nuevos
registros al final de la tabla o consulta ya existente.
En las tablas origen y destino puede especificar una tabla o una consulta. Si especifica una
consulta, el motor de base de datos Microsoft Jet aade los registros a cualquiera y a todas las
tablas especificadas en la consulta.
Si la tabla de destino contiene una clave principal, hay que asegurarse de que se aade un valor
nico y distinto de Null al campo o campos de la clave principal; de lo contrario, el motor de
base de datos no aadir los registros.
Tambin hay que tener en cuenta que, si aade registros a una tabla con un campo de tipo
AutoNumrico y desea volver a numerar los registros aadidos, no incluya el campo contador en
la consulta. Incluya el campo Autonumrico en la consulta slo si desea conservar los valores
originales del campo.
Por ltimo recalcar que, si la tabla o consulta no existe en la base de datos de Access, no se
podr aadir registros, debido a la inexistencia de la misma, cosa que por otra parte, es
bastante lgica.
10.1. Desde la propia base de datos Access activa
Si tenemos una conexin abierta con una base de datos Access, que ya contiene la tabla o
consulta donde queremos aadir los registros del archivo de texto, solamente tendramos que
especificar la versin del ISAM a utilizar, el parmetro HDR y la ruta del archivo de texto en el
parmetro DATABASE.
El siguiente ejemplo muestra como insertar un conjunto de registros en una tabla existente de
Access mediante la biblioteca de ADO. El ejemplo parte de la premisa de la no existencia de un
archivo de configuracin Schema.ini, por lo que necesariamente tendremos que especificar en el
parmetro HDR que la primera fila del archivo de texto contiene el nombre de los campos:

Dim cnn As ADODB.Connection


Dim sConnect As String, sSQL As String
sConnect = "[TEXT; HDR=Yes; DATABASE=" & App.Path & "].[Clientes#txt]"
' Construimos la consulta SQL
sSQL = "INSERT INTO TBClientes SELECT * FROM " & sConnect
' Conexin con tu base de datos Accesss
Set cnn = New ADODB.Connection
With cnn
.Provider = "Microsoft.Jet.OLEDB.4.0;"
.ConnectionString = "Data Source=C:\Mis documentos\Bd1.mdb"
.Open

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

27 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

' Aadimos los registros


.Execute sSQL, , adCmdText
' Cerramos la conexin
.Close
End With

De no existir un archivo Schema.ini, el ISAM no puede conocer de antemano el nombre de las


columnas, por lo que la primera fila de nuestro archivo de texto necesariamente deber de
contener los nombres de los campos, y stos debern de coincidir, y en el mismo orden, con los
nombre de los campos de la tabla. En este supuesto, el parmetro HDR cobra especial
relevancia, porque de especificar el valor No, podramos tener problemas al aadir los registros,
debido a que el motor Jet no sabra dnde insertar los mismos.
10.2. Desde el propio archivo de texto activo
Al contrario que en el punto anterior, a continuacin voy a mostrar cmo se aadiran los
registros en la tabla de Access, pero desde una conexin con el archivo de texto, de esta forma
se observar la utilizacin de la clusula IN de SQL, la cual identifica las tablas de cualquier
base de datos externa a la que el motor de base de datos Microsoft Jet se puede conectar, en
ste caso identificamos la tabla de destino, que se corresponder con una tabla de la base de
datos de Access. El turno ahora es para la biblioteca de DAO:

Dim sConnect As String, sChainSQL As String


Dim db As Database
' Establezco la conexin con el archivo de texto
' que deseamos crear, especificando la ruta y
' el tipo de ISAM
Set db = OpenDatabase(App.Path, True, False, "TEXT; HDR=Yes; FMT=Delimited;")
' Indicamos la ruta de la base de datos Access
sConnect = " 'C:\Mis documentos\Bd1.mdb' "
' Construimos la consulta SQL
sChainSQL = "INSERT INTO TBClientes IN " & sConnect & " SELECT * FROM [Clientes#txt]"
' Insertamos los nuevos registros
db.Execute sChainSQL
' Cierro la conexin
db.Close

11. Aadir nuevos registros a nuestro archivo de texto


Siguiendo con las posibilidades que nos brinda el Lenguje de Consulta Estructurado (SQL),
vamos a ver cmo insertar nuevos registros en un archivo de texto delimitado.
Esto es til para cuando tengamos un archivo de texto vaco, con su correspondiente archivo de
informacin de esquema Schema.ini creado, y debidamente configurado a nuestras necesidades,

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

28 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

y necesitemos trabajar con los datos en el propio archivo de texto, o bien, para intercambiar la
informacin entre los distintos sistemas de gestin de bases de datos existentes en el mercado.
En el supuesto que nos ocupa, es necesario que el archivo de texto exista previamente en la
carpeta especificada, y que la primera fila contenga el nombre de los campos y estn en el
mismo orden que los campos del archivo o tabla cuyos registros vamos a insertar en nuestro
archivo de texto. Igualmente, y a fin de evitar el oportuno error, si en la conexin con la base
de datos externa se especifica el parmetro HDR, ste necesariamente tendr que ser True, ya
que de nada sirve que establezcamos a True/False el parmetro ColNameHeader en el
archivo de informacin de esquema Schema.ini. Por supuesto, de no especificar el parmetro
HDR, habr de asegurarse que el valor FirstRowHasNames de la clave del registro de
Windows HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Text, est establecido a
01, porque de lo contrario, necesariamente tendremos que especificar el parmetro HDR=Yes.
11.1. Desde un archivo de dBASE activo
El utilizar un archivo dBASE, simplemente es para que el lector observe la capacidad de la que
dispone los distintos tipos de ISAM que incluye el motor de base de datos Microsoft Jet, por lo
que prcticamente podemos intercambiar informacin entre diferentes tipos de orgenes de
datos.
A continuacin, y mediante la biblioteca de ADO, vamos a establecer una conexin con un
archivo dBASE, e insertar los registros devueltos por una consulta SQL, en nuestro archivo de
texto:

Dim sConnect As String, sChainSql As String


Dim cnn As ADODB.Connection
' Establecemos la conexin con el archivo de dBASE,
' que ser la conexin activa
Set cnn = New ADODB.Connection
With cnn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source = " & App.Path
.Properties("Extended Properties") = "dBASE 5.0;"
.Open
End With
' Identificamos la tabla de destino, que ser el nombre de nuestro archivo de texto
' Obsrvese el par de comillas simples en rojo
sConnect = " ''[TEXT; HDR=Yes; DATABASE=" & App.Path & "]"
' Construimos la consulta SQL
sChainSql = "INSERT INTO [Clientes#txt] IN " & sConnect & " SELECT * FROM
[Clientes#dbf]"
' Insertamos los registros
cnn.Execute sChainSql, , adCmdText
' Cerramos la conexin
cnn.Close

11.2. Desde el propio archivo de texto activo


A diferencia del ejemplo anterior, a continuacin vamos a insertar los registros en el archivo de
texto, pero desde una conexin con ste ltimo, por tanto, mientras que en el ejemplo anterior

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

29 de 30

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

identificbamos la tabla de destino, en ste identificaremos la tabla de origen, que se


corresponder con el archivo dBASE. Mediante la biblioteca de DAO seria de la siguiente
manera:

Dim sConnect As String, sChainSql As String


Dim db As Database
' Establezco la conexin con el archivo de texto,
' especificando la ruta y el tipo de ISAM
Set db = OpenDatabase(App.Path, True, False, "TEXT; HDR=Yes; FMT=Delimited;")
' Identificamos la tabla de origen, que ser la
' ruta del archivo dBASE
sConnect = " ''[dBASE 5.0; DATABASE=" & App.Path & "]"
' Construimos la consulta SQL
sChainSql = "INSERT INTO [Clientes8#txt] SELECT * FROM [Clientes#dbf] IN " & sConnect
' Insertamos los nuevos registros
db.Execute sChainSql
' Cerramos la conexin
db.Close

12. Algunos artculos tiles de Microsoft Knowledge Base


La siguiente relacin de enlaces a Microsoft Knowledge Base que cito (por no decir todos),
estn en ingls. He traducido los ttulos de los artculos a fin de facilitar al usuario
hispanohablante una referencia ms rpida al contenido de los mismos. En dichos artculos el
usuario podr ampliar la informacin contenida en ste artculo sobre cmo manipular los datos
contenidos en un archivo de texto mediante el ISAM de Texto del motor Microsoft Jet. Los
artculos estn ordenados de mayor a menor antigedad en la fecha de su ltima actualizacin.
Artculo

Tipo

550166
146220
190186

Lectura de un fichero de texto con Schema.ini


PRB
El driver de texto ODBC slo soporta la instruccin INSERT
ACC
Error al actualizar un archivo de texto vinculado utilizando el
Administrador de Tablas vinculadas
ACC2000 Los campos de texto de longitud fija con caracteres de retorno
incrustados son incorrectamente importados
ACC2000 Utilizar SQL para exportar a Unicode mediante el proveedor Jet y el
ISAM de texto
INF
El driver de texto necesita conocer el directorio para definir el
formato permitido
El ISAM Instalable de Texto Jet 4.0 le permite a los usuarios aadir
lneas a los archivos de sistema
PRB
Los archivos de texto que utilizan delimitadores no estndar de
texto no se analizan adecuadamente con el driver de texto de
Microsoft

208404
234201
124657
239471
205439

Descripcin

06/12/2013 8:31 p. m.

Trabajar con los datos de un archivo de texto

30 de 30

230265
262537
145769
210001
282263
199068
245407
254002

268264
326548
241477
210073
182354
182355
187670

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm

El ejemplo ImportText.exe importa texto a Access mediante ADO,


RDO, DAO, Filesys y Automatizacin
HOWTO Abrir archivos de texto delimitado utilizando el IISAM de texto del
proveedor Jet
PRB
La letra mayscula "S" no se muestra cuando se usa el ISAM de
texto
ACC2000 Cmo crear mediante programacin un archivo Schema.ini
ACC2002 Ignorar el valor establecido de MaxScanRows puede provocar tipos
de datos inadecuados en tablas vinculadas
ACC2000 Error de Schema.ini con la accin TransferText durante la
exportacin
ACC2000 Mensaje de error "No se puede actualizar. Base de datos u objeto
de slo lectura" cuando importa o exporta archivos
FIX
Importar un archivo de texto sin utilizar el archivo Schema.ini
puede ocasionar que las columnas de texto se definan como
Currency
ACC2000 Error 3433 en tiempo de ejecucin cuando importa o exporta un
archivo de texto
HOW TO Utilizar Jet OLE DB Provider 4.0 para conectarse a bases de datos
ISAM
ACC2000 Error cuando intenta utilizar Schema.ini para importar o exportar
con el mtodo TransferText
ACC2000 Cmo utilizar un archivo Schema.ini para tener acceso a datos de
texto
PRB
Jet Text IISAM Driver Drops Leading Spaces
PRB
El IISAM de texto Jet trunca los espacios arrastrados
HOWTO Utilizar RDO y el driver de texto ODBC para abrir un archivo de
texto delimitado

NOTA: El contenido de ste artculo es una recopilacin de las participaciones del autor en el
grupo de noticias en espaol de Visual Basic (microsoft.public.es.vb), as como de la informacin
disponible en los distintos artculos que la Microsoft Knowledge Base ofrece sobre el tema en
cuestin, de los cuales se hace una referencia en el apartado nmero doce.
La informacin contenida en este artculo, as como el cdigo fuente incluido en el mismo, se
proporciona COMO EST, sin garantas de ninguna clase, y no otorga derecho alguno. Usted
asume cualquier riesgo al poner en prctica, utilizar o ejecutar lo explicado, recomendado o
sugerido en el presente artculo.
This article is provided AS IS with no warranties, and confers no rights. You assume all risk for
your use.

Enrique Martnez Montejo - 2003

06/12/2013 8:31 p. m.

Anda mungkin juga menyukai