Problema con DLookup y campo que no se actualiza.

Desde ya agradezco su ayuda.

Tengo un formulario en el cual con la función DLookup completo 3 campos mas.

EL código anda bien y es el siguiente:

Private Sub IdArt_AfterUpdate()

On Error GoTo Err_IdArt_AfterUpdate

Dim txtFiltro As String

txtFiltro = "IdArt= " & Me!IdArt

Me!Descrip = DLookup("Descr", "TArticulos", txtFiltro)
Me!PrecioU = DLookup("PrecioU", "TArticulos", txtFiltro)
Me!Nombre = DLookup("Imagen", "TArticulos", txtFiltro)
Salir_IdArt_AfterUpdate:
Exit Sub

Err_IdArt_AfterUpdate:
MsgBox Err.Description
Resume Salir_IdArt_AfterUpdate
SendKeys "{ENTER}", True
End Sub

Ahora bien cual es mi problema. El campo Nombre se completa sin problema con los datos del campo Imagen de la tabla Artículos.

Este campo Nombre almacena la ruta de una imagen que en el evento después de actualizar, me muestra la imagen en un campo de imagen llamado imgNombre.

El código es el mismo que hay en un ejemplo en la pagina de Neckkito (imagenes en formulario). Aprovecho para agradecer ya que me ha sido de gran ayuda.

Private Sub Nombre_AfterUpdate()

'Establecemos un control de errores
On Error GoTo sol_err
'Definimos las variables y asignamos valores
Dim vNom As String
vNom = Me.Nombre.Value
'Si no se ha escrito ningún valor sale del procedimiento
If IsNull(vNom) Then Exit Sub
'Creamos la variable para almacenar la ruta de la base de datos
Dim miRuta As String
miRuta = Application.CurrentProject.Path
'A miRuta le añadimos la carpeta donde tenemos las imágenes
miRuta = miRuta & "\Imagenes\"
'Finalmente, a miRuta le añadimos el nombre que hemos dado de alta
'en el formulario
miRuta = miRuta & vNom
'Asignamos la variable miRuta como origen del cuadro de imagen
Me.imgNombre.Picture = miRuta
'Definimos una salida al procedimiento si no se produce ningún error
'a través de la etiqueta Salgo
Salgo:
Exit Sub
'Definimos qué hacer en caso de producirse el error 2220 (no existe el
'archivo de imagen escrito).
sol_err:
If Err.Number = 2220 Then
MsgBox "La imagen especificada no existe", vbInformation, "AVISO"
'Borramos el nombre introducido
Me.Nombre.Value = Null
End If
Resume Salgo
End Sub

Este código funciona perfecto cuando escribo manualmente el campo nombre y luego le doy tab al teclado. Pero cuando utilizo la función DLookup solo lo actualiza si salgo del registro y vuelvo a entrar.

Espero puedan ayudarme .....

1 Respuesta

Respuesta
2

Lo único que tienes que hacer es añadir esta línea:

Nombre_AfterUpdate

Antes del "Exit Sub"

¡Gracias! 

Entiendo que te funcionó.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas