Como puedo extraer información de un archivo tipo log a mi base de datos directamente, con código visual access..

Tratamiento de archivos tipo log mediante código visual access

3 respuestas

Respuesta
1

No estoy seguro de entender tu pregunta. Voy a arriesgarme. Si no lo he entendido me lo aclaras, ¿ok?.

Doy por supuesto que tienes un archivo de log en formato texto llano, y lo que quieres es poder importar esa información a una base de datos para uso posterior.

En primer lugar, deberías mirar si los log son todos iguales, es decir, si tienen todos la misma estructura, si hay separadores de campos (; o : o, o si los campos tienen todos un ancho determinado). Si es así, posiblemente no necesites código para la importación, y te valdría con el asistente que lleva access para la importación.

Si no es así, o si simplemente lo que quieres es que el usuario use un proceso que has escrito para que sea algo oculto al usuario, sí que tendrás que escribir código, y cada código tiene puntos en común, pero hay una parte que depende de cada caso.

Es decir, en todos los casos deberás abrir un archivo con open y cerrarlo con close, y tendrás que leer una linea y asignarla a una variable. A partir de ahí, depende de cada caso, tendrás que separarte la información obtenida para guardarla.

Tienes que tener en cuenta si la información de cada una de las líneas, o de varias de ellas, va a ir a una tabla o a varias, y si cada línea que lees va a ser un registro o varios.

Independientemente de ello, yo aconsejo siempre que recrees la estructura de las tablas en tipos definidos con typedef, así es más sencillo crear después la sentencia sql de inserción o de actualización.

Resumiendo (de los puntos posteriores pregunta lo que necesites aclarar):

  1. Crea un módulo en blanco (por higiene)
  2. Crea el/los tipo/s de datos que necesites en el módulo según la información que vas a leer
  3. Crea un SUB que abra un archivo, que lea hasta fin del mismo, que para cada línea ejecute otro SUB de escritura en la(s) tabla(s) y que lo cierre.
  4. Crea otro SUB que haga la escritura del siguiente modo: parámetro de entrada, la línea leída, la envías a una función que la descompone, y tal como viene, la reenvías a otro SUB que la escribe.
  5. Función que descompone: parámetro de entrada, la línea (string), parámetro de salida, un objeto del tipo de datos definido arriba.
  6. SUB que escribe: parámetro de entrada, una estructura de datos definida. Aquí es donde creas la instrucción INSERT o UPDATE que necesitas.

Es un esquema básico. Si necesitas más información no dudes en preguntar.

Puedes ver más información en el siguiente enlace:

https://percapitaads.blogspot.com/b/post-preview?token=2gNDW1IBAAA.Rmv6GG6NTpYlfBE8CqdN6TLkyq7mYvk_SHsrd_gdYCc2nGtqoEWDwAWj7-_tcfeGp8u2tna5_Qv3k-XGSTDWvw.6ns7BupDzC7ZsdbkCnimyg&postId=7419801170756873168&type=POST 

Es un pequeño blog que estoy construyendo desde hace poco, y en el que iré publicando respuestas a preguntas como la tuya, u otras que considere de interés, sobre todo relacionadas con VBA y Access, pero espero también que de otros aspectos de la programación.

Perdón, el enlace del blog estaba mal.

Es este: http://percapitaads.blogspot.com.es/ 

Respuesta
1

La pregunta la han colgado en la parte de Access por lo que supongo que la base de datos será en él.

En un formulario puedes crear un botón de comando y en el evento Al hacer clic poner

Dim stAppName As String

stAppName = "C:\WINDOWS\notepad.EXE C:\windows\pfro.log"
Call Shell(stAppName, 4)

El pfro es un archivo que efectivamente existe con esa extensión. Al pulsar el botón te lo abre con el bloc de notas.

Pero como muy bien te ha dicho Tomás, el problema es que si las líneas son distintas, los separadores distintos, etc., difícilmente puedes importar nada.

Respuesta
1

Yo lo primero que haría es hacer una vinculación con el fichero Log.

Para ello tienes que ir dentro de Access a Archivo->Obtener datos Externos-->Vincular Tablas y luego cuando te salga el fichero a buscar tienes que elegir primero el tipo que será txt. Luego sigues el asistente y ya verás que es sumamente fácil, con ello tendrás en tu base de datos Access una tabla que directamente te presenta los datos de tu fichero Log. Con esto no tienes que generar nada de código.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas