Vamos a ver si me explico. Lo primero de todo e importantísimo. Con la base abierta abre el editor de VB y pulsa Herramientas-Referencias y activa la casilla Microsoft Office XX.X Object Library
Lo de XX. X es por la versión del Office que tengas instalada.
Luego en un formulario le añades dos cuadros de texto( se podrán suprimir pero creo que es mejor que veas como funciona)
Cuando pongo el cursor en el cuadro de texto Texto0, se abre un "explorador" para que localice el archivo que me interesa
Puedes ver que el archivo está en la carpeta Borrar y le voy a decir que me copie Feliz.bmp en la carpeta BasesPracticas. Cuando lo selecciono
Es decir, me pasa al cuadro de texto la ruta a ese archivo. Le he puesto el cuadro de texto S para que veas como "recorta" el nombre del archivo y
Me ha copiado ese archivo en la carpeta antes citada.
Si luego pulso el botón
Se abre el archivo Feliz.bmp
El código que tienes que copiar en tu editor de Vb es
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
Private Sub Comando4_Click()
Application.FollowHyperlink Texto0
End Sub
Private Sub Texto0_Click()
Texto0 = buscaArchivo()
S = Mid([Texto0], InStrRev([Texto0], "\") + 1)
FileCopy Texto0.Value, "c:\users\cabarcos\documents\basespracticas\" & S.Value & ""
End Sub
Es decir, uso la función Filedialog( para eso es lo de activar la referencia)y le digo que texto0 sea igual a la función. Que S sea la parte derecha de la ruta hasta la barra /. Y que copie ese archivo en la carpeta de la segunda ruta y con el mismo nombre.