Cambiar en hipervínculo c:\ por nombre del equipo

Diseñé un formulario con un botón que selecciona un hipervínculo par poder abrir archivos jpg asociados a un registro.

Al pinchar el botón, el hipervínculo escribe en un campo de la tabla C:\FichasYExpedientes\Expedientes\08-26559-14.jpg, pero necesito que en lugar de C, me escriba el nombre genérico de mi equipo, por ejemplo "Equipo5"

2 Respuestas

Respuesta
2

Lo puedes hacer más sencillo:

1º/ La función buscaArchivoExp la dejas tal cual la tienes.

2º/ En el código del tu botón, donde haces la llamada a la función, cambias el buscaArchivoExp por esto:

Replace(buscaArchivoExp,"C:","\\" & Environ("ComputerName") & ":")

Lo que hace la función Replace es reemplazar una cadena de caracteres por otra, en tu caso el "C:" por dos barras (\\), el nombre del equipo (Environ("computername")), y los dos puntos (:)

Es decir, si la ruta al archivo se la asignas a un cuadro de texto txtRuta, te quedaría, en vez de:

Me.txtRuta=buscaArchivoExp

así:

Me.txtRuta=Replace(buscaArchivoExp,"C:","\\" & Environ("ComputerName")& ":")

Y si lo asignas a la tabla directamente con una SQL, en vez de por ejemplo:

CurrentDb.Execute "INSERT INTO Tabla (Ruta) VALUES('" & buscaArchivoExp & "')"

quedaría:

CurrentDb.Execute "INSERT INTO Tabla (Ruta) VALUES('" & Replace(buscaArchivoExp,"C:","\\" & Environ("ComputerName")& ":")& "')"

¡Gracias!

Sveinbjorn

Muy agradecido por tu ayuda.

Funcionó perfecto.

Un saludo afectuoso para todo el grupo de expertos. Los he seguido hace años y he aprendido mucho gracias a Uds., pero aun me considero un novato.

Respuesta
2

¿Has probado a usar, por ejemplo

Texto14 = "c:\users\.....\documents\borrar\" & Environ("computername")

Icue:

Muy agradecido por tu pronta respuesta

Tengo la siguiente función de busqueda:

.Public Function buscaArchivoExp() 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
buscaArchivoExp = .SelectedItems(1)
Else
MsgBox "Ha pulsado el botón <Cancelar>"
End If


End With
End Function

¿En que parte iría la línea que me sugieres?

Mi idea es que al pinchar en el botón "Seleccionar Archivo", en la tabla que gurada la ruta me escriba algo como esto \\Equipo5\FichasYExpedientes\<nombrearchivo>.jpg

Actualmente al pinchar escribe:C:\FichasYExpedientes\<nombrearchivo>.jpg

Esto obedece a que mi ordenador se está usando como servidor, y obviamente al pinchar el botón para abrir el archivo en la ruta "C:\FichasYExpedientes\<nombrearchivo>.jpg", asume que "C" es del equipo en que se ejecuta la la opción y logicamente no encuentra el archivo, por lo que requiero que me escriba el nombre de MI equipo y no "C".

Ojalá pudieras ayudarme.

Nuevamente muy agradecido por tu respuesta

Vamos a ver si me explico, la función la tengo como buscaarchivo().

Primero te lo detallo por pasos y luego en un sólo paso

Si pulso el botón señalado

Al pulsar el botón primero obtiene la cadena. Luego en Foto2 le quita la C del principio y luego en foto3 le "añade" por delante en nombre del equipo. En este caso el código del botón es

Foto1 = buscaArchivo()
Foto2 = Mid([Foto1], 2, Len([Foto1]) - 1)
Foto3 = Environ("computername") & Foto2

Por el contrario, en un sólo paso. Si pulso el botón de la derecha

En este caso, el código del botón es la "unión" de todo

Foto4 = Environ("computername") & Mid(buscaArchivo(), 2, Len(buscaArchivo()) - 1)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas