Puedes modificar este código que utilizo en el evento click de un botón de comando llamado BtnAcPEMAR.
On Error GoTo Err_BtnAcPEMAR_Click
Dim RutaFichero As String
'Cargo el fichero con los datos que se van a agregar
RutaFichero = EscogeFichero_Con_WizHook
If Len(RutaFichero) <> 0 Then
'Cargo los datos del fichero
ElArchivo = Trim(RutaFichero)
DoCmd.TransferSpreadsheet acImport, , "TuTabla", ElArchivo, True
MsgBox "Archivo Importado con éxito desde: " & ElArchivo, vbInformation, "Importar"
End If
Exit_BtnAcPEMAR_Click:
Exit Sub
Err_BtnAcPEMAR_Click:
MsgBox Err.Description
Resume Exit_BtnAcPEMAR_Click
Y esta es la función EscogeFichero_Con_WizHook que debes poner en un módulo nuevo, sobre la cual no está demás decir que debemos respetar la autoría.
'Este codigo y en general todo lo que se recoge en este ejemplo
'tiene autoría. Debes preservar los créditos que indico en él si le vas
'a utilizar de forma parcial o total en tus aplicaciones.
'Deberás conservar estos comentarios en toda su extensión.
'Autor: Juan M. Afán de Ribera
'Enero de 2004, Barcelona
'**************************************************************************************
'Utilizando el objeto Indocumentado Wizhook de Access:
'Seguramente, la más ingeniosa, gracias a la labor de investigación de Juan M.Afan
'sobre el objeto indocumentado WizHook. Access 2000 o superior
'Aqui utilizo este objeto para seleccionar fichero a copiar
'**************************************************************************************
Function EscogeFichero_Con_WizHook() As String
'© Juan M. Afán de Ribera
Dim wzhwndOwner As Long
Dim wzAppName As String
Dim wzDlgTitle As String
Dim wzOpenTitle As String
Dim wzFile As String
Dim wzInitialDir As String
Dim wzFilter As String
Dim wzFilterIndex As Long
Dim wzView As Long
Dim wzflags As Long
Dim wzfOpen As Boolean
Dim ret As Long
WizHook.Key = 51488399
wzhwndOwner = 0&
wzAppName = ""
wzDlgTitle = "Escoja un Archivo"
wzOpenTitle = "Abrir Fichero"
wzFile = String(255, Chr(0))
wzInitialDir = "C:\"
wzFilter = "Todos los Archivos" _
& "(*.*)"
wzFilterIndex = 1
wzView = 1
wzflags = 64
wzfOpen = True
ret = WizHook.GetFileName(wzhwndOwner, _
wzAppName, wzDlgTitle, wzOpenTitle, wzFile, _
wzInitialDir, wzFilter, wzFilterIndex, _
wzView, wzflags, wzfOpen)
' Si no se ha pulsado el botón Cancelar (-302)
If ret <> -302 Then
EscogeFichero_Con_WizHook = wzFile
Else
EscogeFichero_Con_WizHook = ""
End If
End Function
Saludos
Hola, yo tengo una Bd Access 2010 y quiero automatizar la importación de Datos desde un archivo txt .csv a una tabla existente en mi Bd.Lo tengo hecho con una importación guardada, la pega es que el archivo a importar puede tener cualquier_nombre. Csv por lo que en la importación guardada me faltaría que me pidiese cada vez el nombre del archivo (cosa que no hace). - Luisval Valverde Pinillos