Datos de formulario a informe

Hola Sofocles, soy Jorvava, que sigo con mi base de datos para una pequeña biblioteca. El caso es que cuando alguien retira un libro o lo devuelve tiene que ir al formulario que he creado, donde hay un Grupo de Opciones con la opción Ocupado y NoOcupado. Si lo va a coger y marca Ocupado se activa un Cuadro Combinado donde se despliegan los nombres de todos aquellos que pueden coger los libros y tiene que seleccionar su nombre. Bien lo que he hecho es un informe que me permita ver todos los libros de un vistazo con su Titulo, Tema y Estado, y es aquí, en Estado, donde quiero que aparezca "No Ocupado" si el libro no lo tiene nadie, o el nombre de quien ha cogido el libro si este esta Ocupado. El caso es que lo único que he conseguido hasta ahora es que aparezca: 1 ó 2, en función de si el libro esta ocupado o no, y en lógica concordancia con el Grupo de Opciones.
¿Cómo puedo conseguir que el campo Apellido (que es el campo que introduce el usuario que saca un libro en el desplegable Ocupado) pase a aparecer en la columna Estado de mi informe, y que cuando el libro no esta ocupado aparezca también No Ocupado?. Un saludo.

1 Respuesta

Respuesta
1
Utiliza el método dlookup para buscar información de registros en otras tablas, diferentes a las que empleas como origen de datos del informe.
Si Dlookup devuelve un valor existente, este lo muestras y ya esta, si devuelve nulo, puedes mostrar ocupado.
Esto último se implemente utilizando la excepción IF.
If Isnull(Dlookup(....)) then
[Campo]="No Ocupado"
Else
[Campo]=Dllokup(...)
End If
Tengo algunas dudas sobre como aplicar lo que me has dicho.
Bien, todo el bloque de la expresión Dlookup lo introduzco en el Informe donde que¡Ero que aparezca el libro con su estado, en el apartado Propiedades>eventos>al activar>creación de evento>generador de código, todo esto en el modo diseño del informe en cuestión.
¿Es aquí donde tengo que introducirlo?
Y como segunda cuestión, ¿qué tengo que poner en los puntos suspensivos? Yo lo que he puesto ha sido el campo "Apellidos", pero ¿debería hacer referencia al nombre del formulario donde esta, en este caso "Agregar/eliminar libro"?
Un saludo.
Para obtener el resultado de ocupado/no ocupado... en el informe, debes colocar la secuencia de VBA que te mostré en la anterior pregunta, en el evento al dar formato del detalle del informe.
Allí debes, igualmente, crear un campo independiente, donde aparecerá el resultado del código.
A continuación debes repasar el código para dejarlo de la siguiente forma:
If Isnull(Dlookup("NombreCampo","NombreTabla","NombreCampo='" & Criteriodebusqueda & "'")) then
[CampoIndependiente]="No Ocupado"
Else
[CampoIndependiente]=Dllokup(("NombreCampo","NombreTabla","NombreCampo='" & Criteriodebusqueda & "'")
End If
El criterio de búsqueda debe contener en nombrecampo, el nombre del campo por el que deseamos buscar, y en los criterios, debemos colocar la igualdad que queremos localizar, que pudiera ser en tu caso:
Forms! [Agregar/eliminar libro].[Nombredealguncampo]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas