Como importar el nombre de un archivo .txt a un campo de una tabla en access

Estoy realizando la importación de un archivo .txt pero tengo que traer el nombre del archivo cuando los importe.

Es decir

El arcvhivo se llama pagos20150101.txt y trae los campos A=Nombre, B= Apellido, C=Cargo y necesito un campo D= Fecha_Archivo y esta fecha solo esta en el titulo del txt.

Agradezco si alguien tiene la solución muchas gracias les paso el código si de algo ayuda por que no me funciona la parte DoCmd. RunSQL

Function Import_Cartera()

DoCmd.SetWarnings False

fecha_ini = CDate("01/09/2014")

fecha_fin = CDate("30/09/2014")

DoCmd.OpenQuery "001_Elimina_txt_Cartera", acViewNormal, acEdit
Do While fecha_ini <= fecha_fin

Dia = Format(fecha_ini, "dd")
Mes = Format(fecha_ini, "mm")
Año = Format(fecha_ini, "yyyy")
On Error Resume Next

DoCmd.TransferText acImportDelim, "Import_Cartera", "*_txt_Cartera", "C:\PROCESOS\Corpbanca\pagos" & Año & Mes & Dia & ".txt", False, ""
DoCmd.RunSQL "UPDATE *_txt_Cartera SET [*_txt_Cartera].Fecha_Archivo = #" & CVDate(Format(fecha_ini, "dd/mm/yyyy")) & "# ;"

fecha_ini = fecha_ini + 1

Loop

End Function

1 respuesta

Respuesta

Veo que sí tienes la fecha, y que haces un Update para ponerla. Lo siento pero no entiendo cual es el problema.

Lo único que se me ocurre es que cuando haces un Update tienes que pasar la fecha en formato anglosajón, mm/dd/yyyy

Si es eso, ya lo tienes, sino, acláramelo un poco y te contesto, no parece nada complicado.

Ya lo soluciones tu que encerrar el nombre de la tabla en [] supongo que es por el * al inicio del nombre, ahora el problema es que pone los primeros doce días como mes e intentado dejándolo  mm/dd/yyyy pero sigue el problema,si me puedes ayudar con esto te lo agradezco mucho.

Tienes razón, no me había fijado en el *.

Se supone que CVDate convierte un Variant en Date. Si fecha_ini ya es un Date, no veo que sentido tiene convertir un date en un date.

No creo que haga falta la CVDate().

Ten en cuenta que la asignacion que haces para fecha_ini y para fecha_fin son, respectivamente, 9 de enero y 30 de septiembre (cuando VBA detecta que el número de mes es > 12, lo cambia de formato.

Creo que la cosa va por ahí.

De todos modos, ¿cómo planeas hacer la asignación inicial?. Es decir, entiendo que el código que has pasado es un ejemplo simplificado, ¿no?.

Prueba y me cuentas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas