Abrir informe a través de cuadro combinado

Vamos a ver tengo una base de datos en la cual tengo números de oficinas las cuales pertenecen a varias territoriales. Tengo un formulario en el cual quiero seleccionar una de las territorialeses y pulsando un botón me abra el informe de dicha territorial, ahora mismo como no se hacerlo tengo un botón por cada informe y la verdad que ahora mismo son pocas territoriales, no tengo idea de programación lo poco que he realizado ha sido por ayuda de esta página, te agradecería muchísimo de que me ayudaras con esta base de datos

1 respuesta

Respuesta
1
Te voy a explicar cómo hacer lo que me pides poco a poco. De todas maneras ya te aviso que si te pierdes me lo comentas e intentaré ser más "explícito" ;)
1.- Haz un informe normal, con todos los campos que quieras ver. Evidentemente en el informe habrá el campo que te recoge el valor de las territoriales. Para que puedas seguir la explicación al informe yo lo llamaré RTerritoriales, y al campo que te recoge las territoriales lo llamaré [valorTerritorial]. Después tú debes cambiar estos nombres por los que tú tengas en tu BD.
2.- En el formulario añades un cuadro combinado que te recoja los valores de las territoriales (doy por supuesto que esto sí sabes hacerlo). Sacas las propiedades de ese combo y
->Pestaña Otras->Nombre-> Le pones de nombre cboTerritorial
->Pestaña Eventos->Después de actualizar-> Te pones en la parte blanca de la derecha y verás que te aparece un pequeño botón de puntos suspensivos. Haces click sobre él y te aparecerá otra pantalla donde le tienes que decir que quieres generar código.
3.- Se te abrirá el editor de VB, con dos líneas por defecto (Private Sub... y End Sub). Ahora tienes que escribir el código, pero como desconozco qué tipo de campo es [valorTerritorial] te pongo dos códigos. Tú debes elegir uno u otro en función de si
a) [valorTerritorial] Es un campo de tipo numérico
El código es:
---
Private Sub cboTerritorial_AfterUpdate()
Dim vTerr As Variant
vTerr = Me.cboTerritorial.Value
If IsNull(vTerr) Then Exit Sub
DoCmd.OpenReport "RTerritoriales", acViewPreview, , "[valorTerritorial] =" & vTerr
End Sub
---
b) [valorTerritorial] es un campo de tipo texto
El código es:
---
Private Sub cboTerritorial_AfterUpdate()
Dim vTerr As Variant
vTerr = Me.cboTerritorial.Value
If IsNull(vTerr) Then Exit Sub
DoCmd.OpenReport "RTerritoriales", acViewPreview, , "[valorTerritorial] ='" & vTerr & "'"
End Sub
---
Cuidado con este código con las comillas simples y dobles. Lo mejor es hacer un copy-paste!
Y ya está. Recuerda que debes cambiar RTerritoriales por el nombre de tu informe, y [valorTerritorial] por el nombre de tu campo (déjalo entre corchetes).
Ya me dirás como te ha ido.
Esta muy bien, muchísimas gracias pero ahora con este formulario me sale otro problema, que es el siguiente, te comento, nosotros recibimos tareas de trabajo de todas las oficinas de españa, bien, entonces yo voy introduciendo en un formulario las tareas que van entrando pero al final del día quiero ver de cada territorial cuantas oficinas no me han mandado tareas es decir que si de la zona sur tengo 120 oficinas y me entran 80 tareas, en el informe o no se donde tenga que hacer algún calculo de las oficinas totales que hay y las que me han entrado para hacer las tareas, me entiendes lo que te digo. Entonces yo hacia un informe por cada territorial que había y en el pie del informe ponía un total de oficinas dependiendo de la territorial que estuviera y un cuadro de texto que me calculaba cuantas oficinas habían entrado y restando con el total de oficinas de la territorial me calculara las oficinas que no habían mandado la tarea.
Si sabes como puedo hacer lo mismo pero con un solo informe y con lo que me has explicado me harías un rey
Muchas gracias por tu paciencia, Un saludo.
Es un poco difícil darte una solución "a distancia" a lo que me consultas sin saber cómo tienes estructurada la BD.
Si te parece bien, ¿podrías enviarme una copia de tu BD comprimida en zip? Puedes borrar los registros para enviarme la BD sin información si lo crees conveniente.
Así le podré echar un vistazo e intentar solventar tu problema.
Mi correo es [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas