Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

añadir imagen

Estas en el tema de añadir imagen en el foro de Bases de Datos General en Foros del Web. En un formulario de acces, yo quiero que al darle al botón1 me añada una imagen a un campo (que no se de que tipo ...
  #1 (permalink)  
Antiguo 22/05/2008, 03:17
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
añadir imagen

En un formulario de acces, yo quiero que al darle al botón1 me añada una imagen a un campo (que no se de que tipo tiene que ser) y si le doy al botón2 me añada una imagen distinta al mismo campo.
__________________
Cámara Oscura
Etheria
  #2 (permalink)  
Antiguo 22/05/2008, 03:33
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: añadir imagen

Aqui tienes un ejemplo de como hacerlo:

http://www.mvp-access.es/-marta-/web...6&orden=&tipo=
Un saludo
  #3 (permalink)  
Antiguo 22/05/2008, 03:48
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: añadir imagen

Si no me equivoco, el botón abre una ventana para buscar la imagen y después seleccionarla:

' Muestre el cuadro de diálogo Abrir archivo de Office para elegir un nombre de archivo
' para el registro del empleado actual. Si el usuario selecciona un archivo,
' muéstrelo en el control de imagen.
Dim fileName As String
Dim result As Integer
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Seleccione la imagen del empleado"
.Filters.Add "All Files", "*.*"
.Filters.Add "JPEGs", "*.jpg"
.Filters.Add "Bitmaps", "*.bmp"
.FilterIndex = 3
.AllowMultiSelect = False
.InitialFileName = CurrentProject.Path
result = .Show
If (result <> 0) Then
fileName = Trim(.SelectedItems.Item(1))
Me![ImagePath].Visible = True
Me![ImagePath].SetFocus
Me![ImagePath].Text = fileName
Me![Nombre].SetFocus
Me![ImagePath].Visible = False
End If
End With

Ahora bien, no me entero de nada. Cómo hago para que se vaya a un campo en concreto? y para que sea una imagen en concreto?
__________________
Cámara Oscura
Etheria
  #4 (permalink)  
Antiguo 22/05/2008, 08:59
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: añadir imagen

Bueno he estado revisando el código y lo he intentado implementar a lo que es mi base de datos. Para no hacerme mucho lío he puesto los mismos nombres exceptuando el campo que se llama firma en vez de Foto. El caso es que me da errores en esta parte:

Sub getFileName()
'Muestre el cuadro de diálogo Abrir archivo de Office para elegir un nombre de archivo para el registro. Si el usuario selecciona un archivo,
'muéstrelo en el control de imagen
Dim fileName As String
Dim result As Integer
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Selecciona una firma"
.Filters.Add "All Files", "*.*"
.Filters.Add "JPEGs", "*.jpg"
.Filters.Add "Bitmaps", "*.bmp"
.FilterIndex = 3
.AllowMultiSelect = False
.InitialFileName = CurrentProject.Path
result = .Show
If (result <> 0) Then
fileName = Trim(.SelectedItems.Item(1))
Me![ImagePath].Visible = True
Me![ImagePath].SetFocus
Me![ImagePath].Text = fileName
Me![ImagePath].Visible = False
End If
End With

End Sub

Me da error en la primera línea que he puesto como rojo y si por ejemplo le pongo ' para hacerlo comentario, me va marcando en amarillo las siguientes líneas.

El mensaje que me sale de error es el siguiente:

Se ha producido el erro '2110' en tiempo de ejecución:
Base de Clientes no puede mover el enfoque al control ImagePath

Alguna idea de cuál puede ser el fallo?
__________________
Cámara Oscura
Etheria
  #5 (permalink)  
Antiguo 22/05/2008, 09:27
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: añadir imagen

En tu caso, que tipo de control es ImagePath??? Es un cuadro de texto??

Un saludo
  #6 (permalink)  
Antiguo 23/05/2008, 00:57
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: añadir imagen

Es un cuadro de imagen como en el ejemplo >.<
__________________
Cámara Oscura
Etheria
  #7 (permalink)  
Antiguo 26/05/2008, 02:31
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: añadir imagen

bueno, al final lo he conseguido arreglar, pero me sale otro problema ahora. Veamos, en ese formulario hay un botón para mostrar el informe de ese registro en concreto. Ahora bien, el campo firma originalmente es un campo de texto donde se guarda la ruta de la imagen que inserto. Lo que yo quiero es que al darle al informe, el campo firma me salga la imagen y no la ruta. Alguna idea?
__________________
Cámara Oscura
Etheria
  #8 (permalink)  
Antiguo 26/05/2008, 02:33
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: añadir imagen

Un control imagen en el informe, y en su propiedad picture le cargas la ruta de la imagen, es decir, el contenido del campo firma. Esto has de hacerlo en el evento format de la seccion donde este el control imagen

un saludo
  #9 (permalink)  
Antiguo 26/05/2008, 02:44
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: añadir imagen

perdona taribo, pero no te he entendido nada (será porque es lunes?). Un control imagen en el informe?
__________________
Cámara Oscura
Etheria
  #10 (permalink)  
Antiguo 26/05/2008, 03:29
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: añadir imagen

Al final he puesto lo siguiente, pero me da error en lo que marco en rojo

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If Not IsNull(Me.firma) And Dir(Me.firma) Then
Me.imagenfirma.Picture = Me.firma
Else
Me.imagenfirma.Picture = ""
End If
End Sub
__________________
Cámara Oscura
Etheria

Última edición por Koudelka; 26/05/2008 a las 03:59
  #11 (permalink)  
Antiguo 26/05/2008, 04:41
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: añadir imagen

Prueba asi:

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If nz(Me.firma,"")<>"" And len(Dir(Me.firma))>0 Then
Me.imagenfirma.Picture = Me.firma
Else
Me.imagenfirma.Picture = ""
End If
End Sub

Un slaudo
  #12 (permalink)  
Antiguo 26/05/2008, 04:46
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: añadir imagen

vale, así sí que funciona.

volviendo al formulario, hay alguna forma de que antes de abrir la ventana para seleccionar la imagen a guardar, me pida una contraseña?
__________________
Cámara Oscura
Etheria
  #13 (permalink)  
Antiguo 26/05/2008, 05:30
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: añadir imagen

Por ejemplo:

dim Contraseña as string

contraseña=inputbox ("Introduzca la contraseña")

if contraseña<>LOQUESEA then
msgbox "No puede modificar"
else
'Lo que hacias antes
end if

Un saludo
  #14 (permalink)  
Antiguo 26/05/2008, 05:41
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: añadir imagen

otra pregunta y ya dejo este tema XD. Veamos, cuando yo hago click en el botón para agregar la imagen y después de meter bien la contraseña, cómo hago para que en vez de abrirme la ventana en el directorio en donde está la base de datos, me la abra por ejemplo en C:?

No se si será exactamente en esta línea que es´ta en sub getFileName (lo del principio vamos XD):

.InitialFileName = CurrentProject.path
__________________
Cámara Oscura
Etheria
  #15 (permalink)  
Antiguo 26/05/2008, 07:09
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: añadir imagen

Efectivamente, con CurrentProject.path obtienes el path de la base de datos, prueba haciendo: msgbox CurrentProject.path

en lugar de eso, pon la ruta que quieras entre comillas: "C:"

Un saludo
  #16 (permalink)  
Antiguo 26/05/2008, 08:34
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: añadir imagen

Gracias por la ayuda Taribo
__________________
Cámara Oscura
Etheria
  #17 (permalink)  
Antiguo 27/05/2008, 06:16
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: añadir imagen

Me volvió a surgir un problema con este asunto. Resulta que ahora he pasado los formularios a la tabla original (la que usaba era la mía de pruebas) y resulta que me da error en la línea que marco en rojo:

Sub getFileName()
' Muestre el cuadro de diálogo Abrir archivo de Office para elegir un nombre de archivo
' para el registro del empleado actual. Si el usuario selecciona un archivo,
' muéstrelo en el control de imagen.
Dim fileName As String
Dim result As Integer
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Seleccione la imagen"
.Filters.Add "Todos los archivos", "*.*"
.Filters.Add "JPEGs", "*.jpg"
.Filters.Add "Bitmaps", "*.bmp"
.FilterIndex = 2
.AllowMultiSelect = False
.InitialFileName = "C:"
result = .Show
If (result <> 0) Then
fileName = Trim(.SelectedItems.Item(1))
Me![ImagePath].Visible = True
Me![ImagePath].SetFocus
Me![ImagePath].Text = fileName
'Me![ImagePath].Visible = False
End If
End With
End Sub
__________________
Cámara Oscura
Etheria
  #18 (permalink)  
Antiguo 27/05/2008, 07:26
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: añadir imagen

Mira si las referencias de una y otra bd son las mismas.

Un saludo
  #19 (permalink)  
Antiguo 27/05/2008, 07:56
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: añadir imagen

como decirlo, las dos bases de datos tienen lo mismo (de hecho ese formulario ya existía), es sólo que para no jugar con los datos reales, hice una copia. En esa copia es en la que he estado trabajando. Las tablas, las relaciones y demás son iguales, la única diferencia que tienen son los registros guardados. Por eso me extraña que en una base de datos me funcione y en otra no, porque lo único que he hecho ha sido exportar el formulario.
__________________
Cámara Oscura
Etheria
  #20 (permalink)  
Antiguo 29/05/2008, 03:56
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: añadir imagen

El problema anterior ya lo solucioné, efectivamente eran de las referencias. El caso es que vuelvo a tener problemas en el siguiente código:

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If Nz(Me.firma, "") <> "" And Len(Dir(Me.firma)) > 0 Then
Me.imagenfirma.Picture = Me.firma
Else
Me.imagenfirma.Picture = ""
End If
End Sub

Si no añado nada al campo firma, me salta el error "13" diciendo que no coinciden los tipos. Hay alguna forma de que deje que ese campo pueda estar en blanco sin necesidad de añadir ninguna imagen?

EDIT:

Bueno ya lo he solucionado (aunque no me gusta el cómo) de la siguiente manera:

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If Nz(Me.firma, "") = "" Then
MsgBox "No has firmado el documento"
Else
If Nz(Me.firma, "") <> "" And Len(Dir(Me.firma)) > 0 Then
Me.imagenfirma.Picture = Me.firma
Else
Me.imagenfirma.Picture = ""
End If
End If
End Sub
__________________
Cámara Oscura
Etheria

Última edición por Koudelka; 29/05/2008 a las 04:28
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:36.