Almacenar dos rutas de imágenes...

Tengo una tabla.
Nombre, Foto 1, Foto 2

¿Cómo puedo hacer para cargar las dos rutas, usando un solo procedimiento...?

1 respuesta

Respuesta
2

Tienes que hacerlo en un formulario ya que las tablas no tienen código. Crea un formulario con esa tabla. En vista diseño del formulario 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 instalado)

Luego, vamos a suponer que los campos se llaman efectivamente Foto1 y Foto2. Puedes copiar en el editor

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 Foto1_GotFocus()
Foto1 = buscaArchivo()
End Sub
Private Sub Foto2_GotFocus()
Foto2 = buscaArchivo()
End Sub

Así, cuando pongas el cursor en el cuadro de texto Foto1, se abrirá un "explorador" para que localices la imagen que quieras y te guardará la ruta. Lo mismo te pasará en Foto2.

OK probé y me funciono excelente, pero existe algún método que pueda utilizar  con un botón, al hacer clic el cuadro de dialogo seleccione por ej los dos elementos y al abrir las rutas vayan al campo foto1 y foto2 .... que no sea necesario ir uno a uno ????? 

Hombre, lo ideal sería que las imágenes estuvieran todas en la misma carpeta. Si ese fuera el caso, en la función BuscaArchivo puedes poner que en vez de "abrirse" en Application. Currentprojecr. Path se abra en esa capeta.

Incluso, si en el campo Nombre tienes puesto, por ejemplo, Pepe y las imágenes son de la forma Pepe1.jpg(ó png, da igual), Pepe2.jpg, pepe3 se podría suprimir la función.

Pero, al no saberlo, vamos a suponer que el formulario tiene Nombre, Foto1, Foto2, Foto3. Puedes poner un botón de comando y en su evento Al hacer clic poner

Private Sub Comando9_Click()
Dim i As byte
For i = 1 To 3
Me.Controls("foto" & i) = buscaArchivo()
Next i
End Sub

Con lo que al pulsar el botón, se abre ese "explorador", seleccionas una imagen. Y te pasa al control Foto1 la ruta, seleccionas la foto2 y los mismo, etc.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas