Seleccionar un dato de un cuadro de lista en access y en base al dato que selecciono mostrar una imagen.

Tengo realizado un buscador, y en el buscador quiere que al encontrar el resultado LUEGO de seleccionarlo en el cuadro de lista aparezca automaticamente una foto (VINCULADA) que esta almacenada en una consulta .
-------------------------------------------------------------------------------------------------------------------------------------------------------------------

Option Compare Database

Private Sub cmbCampo_Click()
Me.txtBusqueda = Null
Me.txtBusqueda.SetFocus
Me.Lista.RowSource = "SELECT Id,nombre,apellido,dni, profesional, apto, fecha, foto FROM Personas"
End Sub

Private Sub Lista_Click()

If IsNull(Me.Lista) Then
MsgBox "Seleccione un resultado para visualizar la imagen"
Else

Dim VALOR As String
VALOR = Me.Lista.Column(8)

Me.ImageFrame.Picture = LoadPicture(VALOR)
End If

'VALOR = Lista.List(Lista.ListIndex, 7)
' Me.ImageFrame.Picture = LoadPicture(VALOR)

End Sub

Private Sub txtBusqueda_AfterUpdate()
Dim Consulta As String

If Not IsNull(Me.cmbCampo) Then
Consulta = "SELECT Id,nombre,apellido,dni, profesional, apto, fecha, foto"
Consulta = Consulta & " FROM Personas "
Consulta = Consulta & " WHERE " & Me.cmbCampo & " Like '*" & Me.txtBusqueda & "*'"
Me.Lista.RowSource = Consulta

End If
End Sub

Private Sub txtBusqueda_Change()
If IsNull(Me.cmbCampo) Then
MsgBox "Seleccione un campo", vbInformation, "Aviso"
Me.txtBusqueda = Null
Me.cmbCampo.SetFocus
Else
Me.Lista.SetFocus
Me.txtBusqueda.SetFocus
Me.txtBusqueda.SelStart = 100
End If
End Sub

----------------------------------------------------------------------------------------------------------------------------------------------------------------

Lo subrayado en negrita, es donde esta el problema. Se que en la columna 8 (contando desde el 0 al 8) serian 9 lugares, es de donde quiero extraer la ruta de la foto (almacenada en un campo llamado foto).

1 respuesta

Respuesta

Chico, me vas a perdonar, pero ya que para el origen de la fila del cuadro de lista no vas a usar ningún criterio sería más sencillo que la instrucción se la pusieras directamente en el origen de la fila del cuadro de lista. Por otro lado, en VB la columna 8 se llama

Valor =listaX.column(7) ya que en VB la primera columna es 0.

Además no es necesario poner, todos esos campos, lo único que tendrías que decirle en el evento después de actualizar del cuadro de lista

foto=dlookup(....

Además, no hace falta que el foco vaya a otro control y luego vaya al cuadro de lista, basta con usar

Docmd. Cancelevent

Quiero decir con esto que te sobra el 90% del código.

Si quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a [email protected] y te mando un ejemplo. Si lo haces, en el asunto del mensaje pon tu alias Gabii ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas