Importar archivos de texto en Access

Intento importar 100 o más archivos de texto a una simple tabla con dos campos, el primer campo para el nombre del archivo y el segundo campo (memo) para el texto que contiene el archivo *.txt.
¿Es esto posible con alguna macro o con algún código?

2 respuestas

Respuesta
1
Este es el código para importar archivos dbase III. En la ayuda vi que también se puede importar archivos txt.
Buscalo para TXT y si no me vuelves a preguntar. Un saludo
Código: DoCmd. TransferDatabase acImport, "dBase III", "c:\carpeta", acTable, "fichero", "fichero", False
Gracias Javier, pero no me aclaro con el código.
¿Podrías explicarme un poco más?, ¿Este código lo pongo en "procedimiento de evento" al hacer click? ¿Por ejemplo?
¿O dónde?.
Gracias de antemano.
Jperezce
El código se pone en : "procedimiento de evento" al hacer click.
Pero amplíame la pregunta. Nombre del fichero, donde lo tienes, si es una operación puntual o muy frecuente .. etc ...
Hola Javier, la base de datos la uso para guardar artículos que busco por internet o recibo por correo.
Los guardo en formato de texto y luego los guardo (copiar pegar) en la base de datos, donde me he diseñado un potentisimo buscador.
La idea es guardarme en formato texto todos estos artículos y cuando tenga muchos, importarlos todos de golpe y no de uno en uno como lo vengo haciendo hasta ahora, tengo un formulario donde copio y pego los artículos uno a uno y es ahí donde me gustaría tener un botón que me los importase todos de golpe.
Te puedo enviar la bd y la ves, mi correo es [email protected]
Saludos y gracias de antemano
Joaquín Pérez
Guardas en formato TXT cada producto. Es decir, si tienes que importar 100 productos, son 100 ficheros TXT diferentes, con nombre diferentes. Si es así... jodido lo tienes ..
No se me ocurre nada. Intenta usar el código :
Código: DoCmd. TransferDatabase acImport, "dBase III", "c:\carpeta", acTable, "fichero", "fichero", False,
Donde:
DBase será diferente, algo así como txt ( compruébalo ). Y el fichero sea una variable que defines anteriormente que sea todo fichero que comienza por : ie : "internet". Cuando lo guardes como txt ponerle la palabra delante internet. Es otro coñazo. No se me ocurre nada... preguntale a otro experto.
Lo siento ..
Respuesta
1
Una archivo de texto, así a saco, no se puede meter en una base de datos, aunque el campo sea 'memo'.
Lo que hay que hacer, con código de Visual Basic(que puede ser dentro del mismo Access), es volcar el contenido de ese archivo en una caja de texto, y que el contenido de esa caja de texto sea la que se almacene en el campo 'memo' de tu tabla. Si no sabes como hacer este volcado, pues dímelo e intento explicártelo, ¿ok?
Venga, espero que esto te sirva, si no, te lo aclaro, ¿ok?
Hola, intenta explicarme esto de la caja de texto que no lo pillo.
Gracias.
Lo que quiero decir es que mediante código visual basic(se puede meter desde access) debes volcar el contenido de tu fichero de texto en un recuadro donde puedes escribir, que eso es una caja de texto, para luego guardar.
Vamos, que para eso tienes que hacer un programita, en el mismo access
Bien, te voy a pasar el código en un ejemplo exacto de lo que debes hacer para abrir tu fichero:
Primero vamos a suponer que tienes una caja de texto, ¿ok?
Pues además te creas un botón(si estas en access, sin asistente), pulsas sobre el botón dcho., le das a generar evento y luego a generador de código.
Ahora, el código que tienes que meter en ese botón es este:
Private Sub boton_Click()
Dim palabra As String
Open "fichero.txt" For Input As #1
While Not EOF(1)
Input #1, palabra
Text1.Text = Text1.Text & " " & palabra
Wend
Close #1
End Sub
Bien, este es el código en el que le estamos indicando un fichero(fichero.txt). Pero si lo que quieres es pasarlo por una variable, hay que hacer lo siguiente. TU, en tu programa, metes en una caja de texto el nombre(sin txt) de tu fichero. Pues coges esa caja de texto y la metes en una variable(código, de nuevo, incluso en el mismo botón), de forma que al pulsar el botón, después del 'dim palabra as string' tienes que poner:
dim variable as string
variable="(ruta donde esten los ficheros)" & nombre.text(donde nombre es el nombre de la caja de texto), y luego, en la sentencia open, pones esto:
Open " & variable & ".txt" For Input As #1
Resumen final:
Tu quieres guardar en campos el contenido de unos ficheros de texto. Pero directamente no se puede, por lo cual vamos a volcar el contenido del fichero en una caja de texto, para luego guardarlo. Entonces creas un formulario, le metes con el asistente una caja de texto para cada campo(el que sea y el memo), y creamos un botón, en el cual metemos el código del principio, pero con una variante: como normalmente vas a pasar varios ficheros, pues lo suyo es que crees una tercera caja de texto(sin asistente) donde le dices el nombre del fichero y el programa pone sólito la dirección de esos ficheros y la extensión txt. Ahora, con tu asistente, solo te faltan los botones de guardar registro pa guardarlos.
(Lo de open y to eso es la forma de abrir ficheros de texto..)
Uffff... bien, espero que, con la explicación final esta sobretodo, te hayas enterao de como hacerlo.
En fin, no olvides finalizar, y aquí toy pa tus dudas..
Espero que mi tiempo te sirva de verdad. Hasta otra.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas