Importar Txt access con Vba.

Tengo una gran duda que no he podido resolver, necesito importar archivo txt con cierta configuración en access, pero el fichero txt contantemente cambia de directorio a si que: Tengo un formulario en el cual quisiera poder seleccionar la dirección del fichero he importarlo a una tabla.

Gracias si alguien tiene codigo o alguna forma de hacer esto, he intentado con este codigo pero no me ha funcionado ya que mi txt tiene títulos.

Private Sub Comando0_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("Cobranza1")
archivo = Environ("userprofile") & "\Documents\Cobranza\A Proceso BD Cobranza\Base Datos Criticos\Cobranza.txt"
Open archivo For Input As #1
Do While Not EOF(1)
'Line Input #1, linhadotxtLine Input #1, InputData
'    Debug.Print InputData
a = Split(InputData, vbTab)
rs.AddNew
    rs("CZA_CUENTA") = a(0)
    rs("CZA_FECHA") = a(l)
rs.Update
Loop
MsgBox "proceso terminado"
End Sub

1 respuesta

Respuesta
1

No voy a entrara en el proceso de importación, sólo en el de localización.

Antes de nada( muy importante) con la base abierta, abre el editor de VB y pulsa Herramientas-Referencias. Activa la casilla Microsoft Office 16.0 Object Library

Luego pega esta función ( es un "explorador" de windows para que localices el archivo a importar)

Public Function buscaArchivo() As String
Dim fDialog As Office.FileDialog
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
.AllowMultiSelect = False
.ButtonName = "Seleccionar"
.Title = "Seleccionar el archivo"
.InitialFileName = Application.CurrentProject.Path
.InitialView = msoFileDialogViewDetails
.Filters.Clear
.Filters.Add "All files", "*.*"
If .Show = True Then
buscaArchivo = .SelectedItems(1)
Else
MsgBox "Ha pulsado el botón <Cancelar>."
End If
End With
End Function

Luego, supongamos que en el formulario tienes un cuadro de texto llamado Ruta. En sus propiedades-eventos-al recibir el enfoque crea un procedimiento de evento y que te quede como

Private Sub Ruta_GotFocus()
Ruta = buscaArchivo()
End Sub

Así, cuando el cursor llegue a ese cuadro se abrirá el explorador para que localices ese archivo, luego pulsas Aceptar y en el cuadro de texto ya te aparece su ruta, y ya puedes seguir como

Docmd.transfer...........

Cuando pongo el cursor

Cuando selecciono uno y pulso Abrir

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas