Discussion:
Importar archivos de texto sin nombre de columna
(demasiado antiguo para responder)
Diego-Synapsis
2007-04-16 22:22:01 UTC
Permalink
Hola, estoy utilizando el método DoCmd.TransferText para importar archivos txt,
y funciona muy bien cuando el parámetro HasFieldNames es true, el problema
se presenta cuando cambio la propiedad a false, obviamente modifico el
archivo de texto quitando la primera fila e intento ejecutar de nuevo la
importación, pero me aparece el siguiente mensaje:
"El campo 'F1' no existe en la tabla destino 'AnteriorP'"

Así escribí el código en VBA, cuando funciona:
DoCmd.TransferText acImportDelim, , "AnteriorP", ruta,True
Así inicia el archivo de texto
Cedula,Concepto,Fecha Inicial,Fecha Final,Valor
86064425,CCB_SUBS_ALIMEN,01/02/2006,28/02/2006,150


Así escribí el código en VBA, cuando no funciona:
DoCmd.TransferText acImportDelim, , "AnteriorP", ruta, False
Así inicia el archivo de texto
86064425,CCB_SUBS_ALIMEN,01/02/2006,28/02/2006,150

Les agradezco si me pueden colaborar a interpretar que es lo que sucede.
Patxi Sanz
2007-04-17 10:15:48 UTC
Permalink
Hola Diego:

Cuando no hay nombres de campos, Access les da unos nombres por defecto: F1,
F2, F3, ... Y como ya tienes creada la tabla, y en esa tabla no hay esos
nombres, Access no puede insertar el valor que hay en el campo F1 del
archivo de texto, en el campo X de la tabla.

Yo te recomendaría hacer lo siguiente: en la barra de menús principal de
Access, selecciona Obtener datos externos -> Importar. Busca el archivo
"AnteriorP" en el cuadro de diálogo y pulsa en Importar. Ahora, en el
Asistente que aparece, pulsa en Avanzado... (abajo a la izquierda). Access
te muestra ahora una pantalla para delimitar cómo es el archivo: si el
formato es delimitado o de ancho fijo, el carácter delimitador de campo la
coma o el punto y coma, los formatos de fechas y números, y en la grilla
inferior, indica los nombres y tipos de los campos a lo que tengas en la
tabla de la base de datos. Una vez tengas todo, guárdalo pulsando en Guardar
como... Ahora ya tienes una especificación que puedes usar en
DoCmd.TransferText, en el segundo parámetro que tenías vacío. Por ejemplo,
si la especificación la nombras "MiEspecificación", la llamada sería así:

DoCmd.TransferText acImportDelim, "MiEspecificación", "AnteriorP", ruta,
False
--
Un saludo,


Patxi Sanz
patxisanz[ARROBA]yahoo[PUNTO]es
Tudela (NA)
Diego-Synapsis
2007-04-17 16:50:03 UTC
Permalink
Muchas gracias Patxi, realice lo que me dijiste y funciono de maravilla,
muchas gracias nuevamente.
Post by Patxi Sanz
Cuando no hay nombres de campos, Access les da unos nombres por defecto: F1,
F2, F3, ... Y como ya tienes creada la tabla, y en esa tabla no hay esos
nombres, Access no puede insertar el valor que hay en el campo F1 del
archivo de texto, en el campo X de la tabla.
Yo te recomendaría hacer lo siguiente: en la barra de menús principal de
Access, selecciona Obtener datos externos -> Importar. Busca el archivo
"AnteriorP" en el cuadro de diálogo y pulsa en Importar. Ahora, en el
Asistente que aparece, pulsa en Avanzado... (abajo a la izquierda). Access
te muestra ahora una pantalla para delimitar cómo es el archivo: si el
formato es delimitado o de ancho fijo, el carácter delimitador de campo la
coma o el punto y coma, los formatos de fechas y números, y en la grilla
inferior, indica los nombres y tipos de los campos a lo que tengas en la
tabla de la base de datos. Una vez tengas todo, guárdalo pulsando en Guardar
como... Ahora ya tienes una especificación que puedes usar en
DoCmd.TransferText, en el segundo parámetro que tenías vacío. Por ejemplo,
DoCmd.TransferText acImportDelim, "MiEspecificación", "AnteriorP", ruta,
False
--
Un saludo,
Patxi Sanz
patxisanz[ARROBA]yahoo[PUNTO]es
Tudela (NA)
Patxi Sanz
2007-04-19 18:33:17 UTC
Permalink
Me alegra que te haya servido.
--
Un saludo,


Patxi Sanz
patxisanz[ARROBA]yahoo[PUNTO]es
Tudela (NA)
cristian
2007-04-19 03:20:24 UTC
Permalink
ok. esta bien
Post by Diego-Synapsis
Hola, estoy utilizando el método DoCmd.TransferText para importar archivos txt,
y funciona muy bien cuando el parámetro HasFieldNames es true, el problema
se presenta cuando cambio la propiedad a false, obviamente modifico el
archivo de texto quitando la primera fila e intento ejecutar de nuevo la
"El campo 'F1' no existe en la tabla destino 'AnteriorP'"
DoCmd.TransferText acImportDelim, , "AnteriorP", ruta,True
Así inicia el archivo de texto
Cedula,Concepto,Fecha Inicial,Fecha Final,Valor
86064425,CCB_SUBS_ALIMEN,01/02/2006,28/02/2006,150
DoCmd.TransferText acImportDelim, , "AnteriorP", ruta, False
Así inicia el archivo de texto
86064425,CCB_SUBS_ALIMEN,01/02/2006,28/02/2006,150
Les agradezco si me pueden colaborar a interpretar que es lo que sucede.
Continúe leyendo en narkive:
Loading...