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 |