Visual Basic - Archivos CSV en Access

Life is soft - evento anual de software empresarial
   
Vista:

Archivos CSV en Access

Publicado por jfdal (5 intervenciones) el 15/07/2009 00:26:22
Hola a todos, es mi primera vez en el foro, espero saber expresarme correctamente.

Tengo una aplicacion que me genera archivos de texto (tablas) y archivos .csv cada cierto tiempo, tengo un fichero instantaneo que me da valores intantaneos, y luego historicos diarios.

La idea seria con los archivos diarios construir una tabla de datos, pero de manera automatica, es decir, que el sistema detectase cuando es e ultimo día de cada mes y ese dia cogiese los 30 archivos diarios de ese mes y los convierta en uno.

Habia pensado hacerlo con access e imagino que para automatizar el asunto y que cada mes me cree una tabla mensual combinando los 30 archivos del mes necesitare hacer algo con VBA.

Si tienen alguna sugerencia de por donde cogerlo les agradeceria mucho su colaboracion.

Saludos a todos
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

RE:Archivos CSV en Access

Publicado por Rolando (115 intervenciones) el 15/07/2009 17:23:08
Puedes crear una aplicacion que combierta este archivo csv o txt en un RECORSET (Variable de conjunto de registros) y luego los mandes donde quieras y que esta operacion la realices cuando lo desees o automatico en las fechas que lo programes.

Esta funcion lee un archivo txt o csv y lo transforma en registros, luego tendrias que recorrer cada registro y grabarlos talvez en un access o SQL y agregandoles mas datos como usurio que realiza la operacion , fecha y hora , nombre pc etc etc valores.

Private Function LeeArchivo(Ruta As String, archivo As String) As ADODB.Recordset

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection

'Cadena de conexión
conn.Open "DRIVER={Microsoft Text Driver (*.txt; *.csv)};" & _
"DBQ=" & Ruta & ";", "", ""

'Ejecutamos el recordset pasandole el archivo de texto en la cláusula From
rs.Open "select * from [" & archivo & "#txt]", conn, adOpenStatic, _
adLockReadOnly, adCmdText

'eliminamos las variables
Set fComponentes = rs
Set rs = Nothing
Set conn = Nothing
End Function

Espero te sirva

Saludos

Rolando Lau
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

RE:Archivos CSV en Access

Publicado por Juan Fran (5 intervenciones) el 15/07/2009 17:26:09
Gracias Rolando lo praobare y te dire algo, de todas formas agradezco que te hayas tomado la molestia.

Un saludo
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

RE:Archivos CSV en Access

Publicado por Rolando  (115 intervenciones) el 15/07/2009 17:33:36
Correccion en la funcion

Private Function LeeArchivo(Ruta As String, archivo As String) As ADODB.Recordset

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection

'Cadena de conexión
conn.Open "DRIVER={Microsoft Text Driver (*.txt; *.csv)};" & _
"DBQ=" & Ruta & ";", "", ""

'Ejecutamos el recordset pasandole el archivo de texto en la cláusula From
rs.Open "select * from [" & archivo & "#txt]", conn, adOpenStatic, _
adLockReadOnly, adCmdText

'eliminamos las variables
Set LeeArchivo= rs
Set rs = Nothing
Set conn = Nothing
End Function
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

RE:Archivos CSV en Access

Publicado por Juan Fran (5 intervenciones) el 16/07/2009 10:03:02
He intentado hacer lo que me indicaste con la funcion recordset, he leido documentacion y todo pero como nunca he programado en VBA, no logro entender muy bien que es cada cosa. Si me pudieses decir como funciona la funcion y que es lo que hace me seria de gran ayuda.

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