Access ¿Cómo imprimir el registro actual?

El formulario "Proyectos" tiene un botón para que me abra el Report "FichaProyecto" por el registro activo.

DoCmd.OpenReport "FichaProyecto",acViewPreview,,"SubProyecto = " & Nz(Me.SubProyecto,0)

El problema es que me da el error "3211" en tiempo de ejecución:El motor de la base de datos no pudo bloquear la tabla "Foto" porque actualmente la está utilizando otro usuario o proceso.

Este formulario "Proyectos" tiene un campo ruta que muestra la fotografía del proyecto, la misma que aparece en el informe.

¿Debería añadir al código de arriba DoCmd. Close acForm, "Foto", acSaveYes para cerrar la tabla foto?

1 respuesta

Respuesta
2

El código lo tienes bien. Mira, si tengo el formulario

y aprieto el botón, en el que he puesto exactamente lo mismo que tu(más o menos)

DoCmd.OpenReport "clientes1", acPreview, , "nombrecompañia='" & Me.NombreCompañia & "'"

Por cierto, en el informe, yo tengo puesto, en el evento Al dar formato de la sección Detalle

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
Imagen11.Picture = Ruta
End Sub

¡Gracias!  También tengo puesto el siguiente código y continua dando error. No te preocupes, he creado un formulario aparte que desde allí si que no me da error. Muchas gracias!

Dim vNom As Variant

vNom=Me.Nombre.Value

If IsNull (vNom) Then

Me.imgNombre.Picture =""

Else

Dim miRuta As String

miRuta= Application.CurrentProject.Path & "\Imagenes\" & vNom

Me.imgNombre.Picture=miRuta

End if

End Sub

Tus razones tendrás y no soy quien para discutirlas, pero no puedo evitar hacer un comentario. Si vas a hacer referencia a un control que está en el formulario activo ¿para qué definir una variable que sea igual a ese control? Lo puedes dejar simplemente como

If isnull([nombre]) then

imgnombre.picture=...

¡Gracias! Tienes razón, no había valorado o desconocía esta opción, muchas gracias! 

Icue, dado mis pocos conocimientos en Access, agradecería me indicarás en que parte del código o dónde debo poner esta instrucción. No sé bien si debe ir en el botón, o en el código que te he detallado arriba que va puesto tanto en el Informe como en el Formulario, gracias!

Si lo vas a poner en el informe, debes hacerlo en el evento Al dar formato de la sección donde esté el control Nombre.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas