Importar fichero txt con vba access que cambia el orden de los registros

Estoy importando ficheros txt a una BD access usando código DoCmd.TransferText acImportDelim, "N_Especificacion", "N_tabla", ruta, False

Al abrir la tabla el orden de los registros no es el mismo que en el fichero txt. No tengo definida clave principal en la tabla ni orden alguno

¿Alguien sabe por que se puede cambiar el orden?

2 respuestas

Respuesta

La verdad es que nunca he podido averiguar como hace la ordenación en estos casos.

Lo que yo hago es añadir a la nueva tabla un campo índice o clave principal para que me muestre los datos de la forma que a mí me interesa.

Como suelo trabajar con VBA ésto lo tengo automatizado en el propio proceso de importación.

Gracias por tu respuesta, pero creo que no me vale para mi propósito. Si después de importar el fichero le añado un campo autonumérico como clave principal (por ejemplo) el orden ya se ha cambiado y no puedo ordenarlo como estaba en origen.

Soy novato en programación VBA pero ¿Sería posible crear un recordset y añadir un campo (por ejemplo con el número de línea) antes de hacer la importación? No se si veis viable esta opción

Saludos y gracias

La mejor forma de importar es con el comando ad-hoc y éste vacía los datos en una tabla.

Se podría, desde access, abrir una sesión de Excel e ir trabajando línea a línea con VBA, pero la verdad es que no lo he hecho nunca (el VBA de Excel tiene sus particularidades ya que el modelo de objetos es distinto al de Access).

Pero no se si te sería muy difícil añadir un número de orden al Excel en una nueva columna. A partir de ahí sería fácil reconstruir el orden de la hoja de cálculo.

Respuesta

Comprueba cómo está ordenada la tabla una vez cargados los datos.
La única explicación para que te esté mostrando las filas de la tabla en orden distinto al de las líneas del archivo es que tengas un parámetro de ordenación en algún sitio:
- Clave o Indice en la tabla
- Indice en la especificación de Importación que utilizas.
Si tienes alguno de éstos, dará igual como cargues el archivo (don docmd. Transfertext o línea a línea), siempre te aparecerá en un orden distinto en la tabla.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas