Ver Mensaje Individual
  #5 (permalink)  
Antiguo 26/12/2009, 10:09
manuel_alarcon
 
Fecha de Ingreso: diciembre-2009
Mensajes: 2
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Editar imágenes en formularios de Access

Hola, tengo un problema parecido. Tengo un campo en la base de datos que almacena una ruta relativa a la imagen, y la muestro en un formulario mediante un script, usando el campo de texto "ruta_imagen" como la ruta y el control de imagen "Picture", que está vacio, para mostrar la imagen como tal. me funciona de maravilla. Pero despues quise hacer click y que abriera la imagen, y buscando encontré esta discusión, y encontré más util abrirla en Paint, ya que se puede rayar la imagen para explicar cosas. Así que tomé el script dado aqui y lo apliqué, pero por alguna extraña razón trata de abrir "c:/documents.bmp" supongo que lo toma de la ruta (ruta_imagen), asi que probé poniendo una imagen con ese nombre en C. funciona! pero no puedo abrir la ruta que tengo almacenada,... aqui tengo el codigo para abrir la imagen:
------------------------------------------------------------------------------------------
Private Sub Form_Current()
On Error GoTo err_Form_Current

If Not Me!txtPicture = "" Or Not IsNull(Me!txtPicture) Then
Me!Picture.Picture = GetPathPart & Me!txtPicture
Else
Me!Picture.Picture = ""
End If

exit_Form_Current:
Exit Sub

err_Form_Current:
MsgBox Err.Description
Resume exit_Form_Current

End Sub

Private Sub Form_Open(Cancel As Integer)
On Error GoTo Err_Form_Open

If IsNull(Me!txtPicture) Or Me!txtPicture = "" Then
' do nothing
Else
Me!Picture.Picture = GetPathPart & Me!txtPicture
End If

Exit_Form_Open:
Exit Sub

Err_Form_Open:
MsgBox Err.Description
Resume Exit_Form_Open

End Sub

Private Function GetPathPart() As String
' Comments : Returns the path part of a string
' Parameters: strPath - string to parse
' Returns : path part
'
Dim db As DAO.Database
Dim strPath As String
Dim intCounter As Integer

Set db = CurrentDb
strPath = db.Name
db.Close
Set db = Nothing

For intCounter = Len(strPath) To 1 Step -1
If Mid$(strPath, intCounter, 1) = "\" Then
Exit For
End If
Next intCounter

GetPathPart = Left$(strPath, intCounter)

End Function
------------------------------------------------------------------------------------------

ahora, para abrir la imagen creé un boton vacio y le escribí este código:
--------------------------------------------------------------------------------------------------------
Private Sub Command97_Click()
Dim RetVal
RetVal = Shell("C:\WINDOWS\system32\mspaint.EXE " & Me!Picture.Picture, 3)
End Sub
--------------------------------------------------------------------------------------------------------

seguramente está tomando una parte incompleta de la ruta desde el control, pero no sé como pasarle los parametros completos....