¿Cómo puedo abrir un informe de un buscador que tengo?

Tengo un programa de un buscador, pero solo me lo abre con formulario, mando los códigos

Public Sub AbreFormAgenda(Modo As Byte, Optional Filtro As String)
DoCmd.OpenForm "FAgenda", acDesign, , , , acHidden
If Modo = 1 Then
Forms("FAgenda").cmdAñadir.Visible = True
Else
Forms("FAgenda").cmdAñadir.Visible = False
End If
DoCmd.Close acForm, "FAgenda", acSaveYes
Select Case Modo
Case 1
DoCmd.OpenForm "FAgenda", , , , acFormAdd
Case 2
DoCmd.OpenForm "FAgenda"
Case 3
DoCmd.OpenForm "FAgenda", , , Filtro, acFormReadOnly
End Select
End Sub

Seria para abrir un informe, ¿cómo lo cambio?

Respuesta
2

Como autor del ejemplo del que has sacado ese código, y suponiendo que tu informe se llama "RAgenda", y que tienes el botón "cmdVer" con el código del ejemplo para abrir el formulario filtrado, has de añadir otro botón con el mismo código, cambiando la línea:

Call AbreFormAgenda(3, miSeleccion)

Por esta otra:

DoCmd. OpenReport "RAgenda", acViewPreview,, miSeleccion

Lógicamente si nunca vas a aabrir un formulario sino un informe, puedes hacer el cambio de código en el propio botón cmdVer.

¡Gracias! 

¿Tengo qué ponerlo tal cual? DoCmd. OpenReport "RAgenda", acViewPreview,, miSeleccion

¿Dónde lo pondría?

Gracias

Como te decía, tienes que poner el mismo código que hay en el botón "cmdVer" del ejemplo (o el que tu tengas ya modificado) pero cambiando la línea "Call AbreFormAgenda(3, miSeleccion)" por esa otra.

También tienes que cambiar "RAgenda" por el nombre del informe que quieras abrir, si no se llama así.

Ya esta, lo he abierto, pero me sale el informe pero cuando pongo el cliente que busco me salen todos el listado de todos los clientes

Si me puedes escribirlo, si puede ser,

Gracias

A ver, en el formulario "FBuscador", pones un nuevo botón para abrir el informe (que supondré se llama "RAgenda") con este código:

'Declaramos las variables
Dim ctlList As Control
Dim Opcion As Variant
Dim miSeleccion As String
'Iniciamos la estructura del filtro
miSeleccion = "[ID] IN ("
Set ctlList = Me.lstPersonas
'Cogemos los valores seleccionados en el cuadro de lista, y los añadimos al filtro
For Each Opcion In ctlList.ItemsSelected
miSeleccion = miSeleccion & ctlList.ItemData(Opcion) & ","
Next Opcion
'Si la longitud del filtro es 9, es que no seleccionamos ninguna opcion
If Len(miSeleccion) = 9 Then
MsgBox "No has seleccionado ninguna persona", vbInformation, "AVISO"
Exit Sub
End If
'Quitamos la última coma (,) del filtro
miSeleccion = Left(miSeleccion, Len(miSeleccion) - 1) & ")"
'Abrimos el informe con los datos del filtro
DoCmd. OpenReport "RAgenda", acViewPreview,, miSeleccion
DoCmd. Close acForm, Me. Name

Y ya estaría, te tiene que funcionar perfectamente.

He usado el código proporcionado en el ejemplo, lógicamente si lo has modificado, tendrás que usar tu código cambiando lo que te indicaba...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas