Subir varios archivos al mismo tiempo txt en access

Me pueden ayudar, quiero subir varios archivos txt al mismo tiempo mediante un código, selecciono en el cuadro de dialogo los archivos pero ya no se cargan.

Anexo el código:

Dim f As Office.FileDialog
Dim ruta As String
On Error Resume Next
Set f = Application.FileDialog(msoFileDialogFilePicker)
With f
.AllowMultiSelect = True
.Title = "Selecciona ruta"
.InitialFileName = "C:\Users\rodrigo.luna\Documents\" 'Application.CurrentProject.Path
.Filters.Clear
.Filters.Add " All Files", "*.txt"
If .Show = True Then
For Each it In fdialog.SelectedItems
DoCmd.TransferText acImportDelim, "V1", "V1", ruta, True
MsgBox " transferencia con exito", vbInformation
Next it

End If
End With

1 Respuesta

Respuesta
2

Tienes varios errores, de los que te habrías dado cuenta si no pusieras la linea "on error resume next"

El primero es que en el For, tienes que usar la variable f (para eso la crear y seteas) y no Filedialog.

El segundo es que en el TransferText tienes que usar el "it" del For, y no la variable ruta a la que en ningún momento le asignas un valor, y por tanto el código no tiene nada que importar a la tabla.

Otra cosa que me llama la atención, pero no sé si es error o realmente lo tienes así, es que uses una especificación de importación llama "V1", exactamente igual que la tabla a la que quieres importar...

En resumen, en teoría el código así te tendría que coger los txts seleccionados para importar:

Dim f As Office.FileDialog
Dim ruta As String
'On Error Resume Next  -> esto lo elimino para que te avise de los errores
Set f = Application.FileDialog(msoFileDialogFilePicker)
With f
.AllowMultiSelect = True
.Title = "Selecciona ruta"
.InitialFileName = "C:\Users\rodrigo.luna\Documents\" 'Application.CurrentProject.Path
.Filters.Clear
.Filters.Add " All Files", "*.txt"
If .Show = True Then
For Each it In f.SelectedItems
DoCmd.TransferText acImportDelim, "V1", "V1", it, True
MsgBox " transferencia con exito", vbInformation
Next it
End If
End With

Si la importación no te va, yo eliminaría el nombre de la especificación, quedando: 

DoCmd.TransferText acImportDelim, , "V1", it, True

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas