Temas activadosTemas activados  Lista de Usuarios del ForoLista de Usuarios  CalendarioCalendario  Búsqueda en el ForoBúsqueda  AyudaAyuda
  RegistrarRegistrar  ConectarConectar
Página anterior             ** NORMAS DEL FORO **            Página siguiente
Access y VBA
 Foro de Access y VBA > Access y VBA > Access y VBA
Icono de mensaje Tema: Mostrar imagen según selección(Tema Cerrado Tema Cerrado) Enviar mensaje Enviar mensaje
Autor Mensaje
andressf
Habitual
Habitual
Avatar

Agregado: 12/Abril/2011
Lugar: Argentina
Estado: Desconectado
Mensajes: 89
bullet Tema: Mostrar imagen según selección
    Enviado: 04/Julio/2019 a las 21:31
Buenas como andan? de ante mano les agradezco por su tiempo.
Tengo un formulario llamado: f_Artic_vta que tiene un cuadro de texto independiente llamado [descrip_art] y un cuadro de lista lamado  [lista_Art] que es independiente, pero basado en la tabla t_Art hasta acá todo bien, pero le agregué un marco de objeto independiente llamado [imag_Art] para que cuando haga clik sobre el cuadro de lista en el valor sellecionado me muestre la imagen.
Tengo la tabla:
t_Art con los campos:

(Clav.Pral ) Cod_ba_Art = Texto corto

                  Descrip_art = Texto corto

                  imag_Art = Objeto OLE

En el cuadro de lista [lista_Art] en eventos al hacer click puse

Private Sub lista_Art_Click()

Me.imag_Art = DLookup("imag_Art", "t_Art", "'Cod_ba_Art='" & Me.lista_Art.Column(5))

End Sub

Me sale este error:



Se ha producido el error '3075 en tiempo e ejecución:
Error de sintaxis (falta operador) en la expresion de consulta "Cod_ba_Art='1111010.

IP IP conectada
jilo
Colaborador
Colaborador


Agregado: 19/Diciembre/2004
Lugar: TAFALLA
Estado: Desconectado
Mensajes: 637
bullet Enviado: 05/Julio/2019 a las 07:18
Hola,
Yo lo haria de otra manera.
Primero cambia el Objeto independiente a objeto imagen y en vez de gusrdsr un objeto OLE, habria que guardar la ruta de la imagen como texto.
Segundo te hace falta la ruta de las imagenes y yo las meteria en el campo imag_Art(Ruta completa con archivo y extension) o crearia un campo nuevo llamado RutaImagen, por ejemplo.
Entonces en el evento click del Listbox


Private Sub lista_Art_Click()
Dim Ruta As String
Ruta = DLookup("imag_Art" ó "RutaImagen", "t_Art", "'Cod_ba_Art='" & Me.lista_Art.Column(x))
If Len(ruta) = 0 Then
'
' Tendrias que usar/crearte una imagen como 'imagen general' para cuando no tengas la imagen
' poner esa.
Me.imag_Art.Picture = "TuRutaCompleta\ImagenGeneral.jpg"
Else
Me.imag_Art.Picture = ruta
End If
End Sub

Espero te sirva !!!!!!
Iñaki
IP IP conectada
Maverick2019
Habitual
Habitual


Agregado: 10/Junio/2019
Lugar: Madrid
Estado: Desconectado
Mensajes: 61
bullet Enviado: 05/Julio/2019 a las 10:07
Hola
¿Has cerrado las comillas después del código de artículo?

Salu2,
IP IP conectada
andressf
Habitual
Habitual
Avatar

Agregado: 12/Abril/2011
Lugar: Argentina
Estado: Desconectado
Mensajes: 89
bullet Enviado: 05/Julio/2019 a las 19:23
Buen día Jilo, muchas gracias por tu respuesta y por el consejo, probé como me dijiste y funcionó ahora lo que no me funciona es cuando no hay imagen, cree una imagen con el nombre imagen_general pero me sale el siguiente error:

Error 2220 en tiempo de ejecución
No puede abrir el archivo
C:\Imagen\1111007.jpg


Dim Ruta As String


Ruta = "C:\Imagen\" & Me.lista_Art.Column(5) & "" & ".jpg"

 If Len(Ruta) = 0 Then
         
              Me.Imagen_art.Picture = "C:\Imagen\imagen_general.jpg"
     
         
 Else
         
            Me.Imagen_art.Picture = Ruta

 End If


End Sub
IP IP conectada
prga
Moderador
Moderador


Agregado: 16/Noviembre/2004
Lugar: España
Estado: Desconectado
Mensajes: 2624
bullet Enviado: 06/Julio/2019 a las 10:24
Hola.
Con el último código expuesto, la longitud de la cadena Ruta nunca será cero, con esto el If siempre "va" al Else.
Mira en la ayuda del VBA la función Dir que casi seguro resolverá el problema.
Ya comentas.
Un saludo a todos
IP IP conectada
jilo
Colaborador
Colaborador


Agregado: 19/Diciembre/2004
Lugar: TAFALLA
Estado: Desconectado
Mensajes: 637
bullet Enviado: 06/Julio/2019 a las 12:36
Hola,
Prga tiene razon.Yo lo use porque usaba como busqueda Dlookup y puede que devuelva error si no existe ese registro. Te quedaria asi
Private Sub lista_Art_Click()
Dim Ruta as string
Ruta  = nz(DLookup("imag_Art" ó "RutaImagen", "t_Art", "'Cod_ba_Art='" & Me.lista_Art.Column(x)),"")
 If Len(ruta) = 0 Then
          Me.imag_Art.Picture = "C:\Imagen\imagen_general.jpg"
 Else
          Me.imag_Art.Picture = ruta
 End If
End Sub
Espero te sirva !!!!!!
Iñaki
IP IP conectada
andressf
Habitual
Habitual
Avatar

Agregado: 12/Abril/2011
Lugar: Argentina
Estado: Desconectado
Mensajes: 89
bullet Enviado: 08/Julio/2019 a las 01:12
Hola prga, gracias por responder, pero disculpame no entiendo que me queres decir. Busque en la ayuda pero no me sale nada con la función Dir, tengo office 365.
IP IP conectada
andressf
Habitual
Habitual
Avatar

Agregado: 12/Abril/2011
Lugar: Argentina
Estado: Desconectado
Mensajes: 89
bullet Enviado: 08/Julio/2019 a las 01:47
Hola jilo, probé, probé y me sigue dando error.


_________________________________________________________________________
Dim Ruta As String

Ruta = Nz(DLookup("C:\Imagen\", "t_Art", "'Cod_ba_Art='" & Me.lista_Art.Column(5)), "")

 If Len(Ruta) = 0 Then
          Me.Imagen_art.Picture = "C:\Imagen\imagen_general.jpg"
 Else
          Me.Imagen_art.Picture = Ruta
 End If

_______________________________________________________________________
Probé también así:


El error es cuando me tiene que mostrar la imagen_general
Error 2220 en tiempo de ejecución
No puede abrir el archivo
C:\Imagen\1111007.jpg



Dim Ruta As String
Dim vacio As String

Ruta = "C:\Imagen\" & Me.lista_Art.Column(5) & "" & ".jpg"

Vacio = Nz("C:\Imagen\" & Me.lista_Art.Column(5) & "" & "imagen_general.jpg") ' agregué esta linea

 If Len(Ruta) = 0 Then
 'También probé con Null en lugar de 0        
         
Me.Imagen_art.Picture = vacio
         
 Else
          Me.Imagen_art.Picture = Ruta
 End If

Espero puedan ayudarme...











IP IP conectada
xavi
Administrador
Administrador
Avatar
Terrassa-BCN

Agregado: 10/Mayo/2005
Lugar: Catalunya ||||
Estado: Desconectado
Mensajes: 12080
bullet Enviado: 08/Julio/2019 a las 09:24
Como te dijo prga, deberias buscar información sobre la función Dir de Access. Una búsqueda con las palabras "dir access vba" devuelve un monton de links, todos ellos con información válida.


If Len(Dir(Ruta, vbArchive)) = 0 Then
Xavi, un minyó de Terrassa

Mi web
IP IP conectada
andressf
Habitual
Habitual
Avatar

Agregado: 12/Abril/2011
Lugar: Argentina
Estado: Desconectado
Mensajes: 89
bullet Enviado: 11/Julio/2019 a las 17:50
Bueno, después de quemarme el craneo y buscar por todos lados he llegado!!.
Gracias y se puede cerrar.

Private Sub lista_Art_AfterUpdate()

Dim Archivo As String
Archivo = Dir("C:\Imagen\" & Me.lista_Art.Column(5) & "" & ".jpg")

If Archivo <> "" Then
    ' el fichero existe
    Me.Imagen_art.Picture = "C:\Imagen\" & Me.lista_Art.Column(5) & "" & ".jpg"
Else
    ' el fichero no existe
    'MsgBox "Imagen Inexistente", vbInformation, "AVISO"
    Me.Imagen_art.Picture = ("C:\Imagen\0000.jpg")
End If




Editado por andressf - 14/Julio/2019 a las 01:36
IP IP conectada
Foro de Access y VBA > Access y VBA > Access y VBA
Enviar mensaje
Versión para imprimir Versión para imprimir

Seleccione Foro
no puedes enviar nuevos Temas al Foro
no puedes responder a los Temas de este Foro
no puedes borrar los mensajes en este Foro
no puedes editar los mensajes de este Foro
no puedes crear encuesta en este Foro
no puedes votar en encuesta en este Foro

Bulletin Board Software by Web Wiz Forums version 8.06
Copyright ©2001-2006 Web Wiz Guide
NORMAS DEL FORO