Importar archivos de texto en Access
Hola, intento importar 100 o mas archivos de texto a una simple tabla para access 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 codigo?

Gracias de antemano
 
Visual Basic Script
Es posible hacrlo, bien desde el mismo Access (editor de Macros), o con un script externo, en VBS (que es el lenguaje que tambien suan las macros en access).

Yo nunca programo desde Access, asi que te explico la segunda.

Necesitas usar dos objetos fundamentalemente:

1. FileSystemObject (FSO). Para abrir los archivos y leer su contenido

2. Activex Data Objects (ADO). Para hacer los updates en la tabla que quieres..



Este ejemplo deberia funcionar (pero debes revisarlo, porque no lo he probado y puede haber algun fallillo, mas que nada es para que veas como lo haria yo...). Copialo en un fichero y lo nombras con extension .vbs, haciendo doble click lo ejecutas:


'------------------------
'PRINCIPO
'------------------------
Dim File, fso, ts
Set fso = CreateObject("Scripting.FileSystemObject")

'en este array metes todos los nombres de archivo, se podria cargar automaticamente con el propio objeto FSO (*.txt)
dim archivos
archivo(0)="primer_archivo.txt"
archivo(1)="segundo_archivo.txt"
'...


'preparo la conexion a la BD
'---------------------------
set conexion = CreateObject("Adodb.connection")

'la linea siguiente supone que previamente has creado un dsn (en panel de control, odbc data sources) que apunta a tu base de datos
'Se puede hacer sin dsn, directamente especificando el archivo MDB, pero no recuerdo la sintaxis

conexion.connectionstring("DSN=DSNdeTuBaseDeDatos")
conexion.open


for i = 0 to ubound(archivos)

'leo el contenido del archivo
Set File = fso.GetFile(archivos(i))
Set ts = File.OpenAsTextStream(ForRead)
Contenido=ts.readall
ts.Close

'grabo en la bd este nombre de archivo,Archivos(i) y su contenido (Contenido)

sql="Insert Into NombreDeTabla (Nombre,Contenido) VALUES ('" & archivos(i) & "','" & contenido &"')"
conexion.execute sql

next

conexion.close
set conexion = Nothing
Set fso = Nothing
Set ts = Nothing

'---------------------
'FIN
'---------------------

Saludos.
 
Pregunta finalizada. Valoración: 4.
Muy Bien. Me ha sido de gran utilidad