Access - Como subir archivos txt por lotes a access

 
Vista:
sin imagen de perfil

Como subir archivos txt por lotes a access

Publicado por Jorge Andrés Neira Rodríguez (1 intervención) el 11/08/2017 01:04:07
Buenas tardes a todos los programadores expertos.

Me encontré un código y con el que se propone subir una serie de archivos txt a una tabla en una base access.

Este es el código, que dice el autor se puede poner en un botón de un formulario:

1
2
3
4
5
fichero = Dir("c:\importar\*.txt")
While (Len(fichero) > 0)
	DoCmd.TransferText , "esquema", fichero, fichero, -1
	fichero = Dir
Wend

Mis parámetros son:

Mi base de datos se llama SearchFiles en access2007

La tabla en la base de llama Upload y tiene 36 campos con sus nombres. Previamente hice una importación con uno de mis archivos txt para crear la tabla con los campos necesarios que tiene el txt. Todos son exactamente iguales.

Mi carpeta de txt está en d:\Upload

Quisiera pedirles su ayuda de programadores expertos para que me indiquen como acomodar ese código a mi necesidad, cosa que les agradezco de antemano inmensamente.

La idea es que cada que tenga un lote de archivos txt, que tienen la misma estructura, simplemente ejecute ese botón y agregue los nuevos registros de los nuevos txt a la misma tabla Upload de mi base access.

Andrés - Colombia
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de jorge
Val: 1.039
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Como subir archivos txt por lotes a access

Publicado por jorge (304 intervenciones) el 11/08/2017 14:00:04
hola dejame ver si entiendo quieres importer datos de un archive txt a una table de accesss??
saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como subir archivos txt por lotes a access

Publicado por Anonimo (3303 intervenciones) el 11/08/2017 14:26:17
Si lo tienes tan claro y posees algo de experiencia (has importado elementos para recrear la tabla de destino) creo que podrías con mucha facilidad utilizar una MACRO en la que te solicitara esos datos que ya posees (origen, destino ubicaciones ....) y así si en un futuro se altera algo, en ese mismo futuro lo sabrás solucionar.

Inicia una MACRO nueva, localiza la acción de importar TEXTO y después de leer las instrucciones (sale un emergente que aporta esas guías de uso) rellenas los campos que necesites (no todos son necesarios, hay varias combinaciones).

Guárdala con un nombre y 'llámala' cuando lo necesites (puedes crear para ello un botón).

Si deseas crear una ESPECIFICACION (indicas que seria una tarea repetitiva) es tan fácil como utilizar el asistente para importar y cuando termine la importación manual (se supone que con éxito) te indicara que si deseas guardar esa ESPECIFICACION le pongas un nombre, este nombre que seria el que pediría la macro y repetiría/automatizaría los pasos que has seguido en esa importación manual.

Si haces una copia de la base y experimentas con ella, tras lograr el éxito tienes dos opciones:
.- repetir la macro y demás en la base de datos definitiva
.- importar a la definitiva la macro y la especificación
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Samuel
Val: 62
Ha disminuido su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

Como subir archivos txt por lotes a access

Publicado por Samuel (43 intervenciones) el 18/09/2017 21:44:59
Hola, soy programador experto en Access y VBA he desarrollado aplicaciones y bases de datos desde hace más de 10 años.

Para poder ayudarte correctamente te tengo que hacer las siguientes preguntas:

1. Cada vez que se generen los nuevos archivos de texto ¿Se sobre escribirán los anteriores? o ¿Son diferentes y se pueden identificar por el nombre del archivo?
2. La información que se importa a la base de datos ¿Tiene un campo llave único y que jamas se repite? esto es sumamente importante para poder comprobar si la información ya se ha importado o no.
3. ¿La estructura de los campos jamas cambia o cave la posibilidad de que este cambiando constantemente?

En mi humilde opinión, es mejor pensar bien y analizar bien el requerimiento para brindar la mejor solución, eficiente y duradera en vez de ser cambista y entorpecer el trabajo al tener que estar repitiendo los mismos pasos una y otra vez. Para automatizar lo que deseas hacer se puede hacer de dos formas, el camino fácil y que te garantizo que el día de mañana te dará dolores de cabeza o el camino correcto que una vez que se halla implementado te podrás olvidar de el por bastante tiempo.

La forma fácil seria hacer algo similar a lo que ya se ha aportado en el foro pero con unas adecuaciones las que tu consideres.

La forma correcta seria usando los métodos, clases y componentes de la librería de FileSystemObject junto con la librería ADO para poder
recorrer las filas del archivo de texto y poder comparar los registros para evitar duplicar registros en la tabla destino. En caso de que la información de los archivos de texto nunca se pueda repetir, se podría usar la instrucción transfer que ya has encontrado y eso te facilitaría mucho la importación de la información pero esta instrucción tiene sus desventajas, las cuales vale la pena investigarlas.

Espero que te haya sido de ayuda mis comentarios.

Pueden contactarme a los teléfonos Cel. +55 (55) 62169107, 73148182
[email protected]; Web: http://accesssolutions-webnode.com.mx/

Servicios de consultoria y desarrollo a la medida.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar