En vba como asigno a un informe una consulta a elegir entre tres de una bd access

Tengo una bd en access con 4 grupos de clientes, filtrados en 4 consultas, y para enviarles correo postal, he creado 4 informes de etiquetas postales. Mi pregunta es: ¿Con un solo informe, y mediante botones de opción, en vba puedo elegir el grupo, asignandole la consulta correspondiente a quien deseo enviar correo?

2 respuestas

Respuesta
2

Por darte una solución ajustada a lo que quieres (sin desmerecer la propuesta de Jacinto, por supuesto):

1º/ Creas un grupo de opciones, y le das a las opciones los valores 1,2,3 y 4 (vamos, los que trae por defecto). En sus etiquetas pones lo que quieras para que sepas a qué grupo es cada una.

2º/ En el evento "después de actualizar" del grupo de opciones (ojo, del grupo, no de cada botón), generas un código de este estilo (adaptado a tus nombres)

Private Sub NombreGrupoOpciones_AfterUpdate()

DoCmd.OpenReport "NombreInforme",acViewDesign,,,acHidden

Select Case Me.NombreGrupoOpciones

Case 1  'Para el primer grupo

Reports("NombreInforme").RecordSource="NombreConsultaGrupo1"

Case 2 'Para el segundo grupo

Reports("NombreInforme").RecordSource="NombreConsultaGrupo2"

Case 3

Reports("NombreInforme").RecordSource="NombreConsultaGrupo3"

Case 4

Reports("NombreInforme").RecordSource="NombreConsultaGrupo4"

End Select

DoCmd.Close acReport "NombreInforme",acSaveYes

DoCmd. OpenReport "NombreInforme" 'Con esto abres el informe con los datos del grupo seleccionado. Si quieres hacer otra cosa, cambia esta línea por la que sea

End Sub

Un saludo


¡Muchas Gracias! SVEINBJORN EL ROJO, anoche estuve probando la solución de Jacinto, y no era lo que estaba buscando. Esta tuya, se ajusta más a lo que tengo, pues como indico en la pregunta, parto de un grupo con botones de opción. Reitero: Muchísimas gracias

Respuesta
1

Puedes hacerlo de varias formas.

Yo emplearía un ComboBox, y en el Evento AfterUpdate, (Después de Actualizar), le pasaría los datos al informe.

Ejemplo:

FiltroValores = "IdGrupoClientes = " & Me.CboClientes.Column(0)

DoCmd. OpenReport "NombreDeTuInforme", acPreview,, FiltroValores

Esto es supoiendo un solo Dato, que sea IdGrupoClientes, y que el Combobox tiene 5 columnas de datos, y en la primera está IdGrupoClientes. Al Combo lo llamo >> Cbo. Clientes

Lógicamente el Combo, ha de tener como Origen de Fila, Datos Agrupados de los Grupos de Clientes que tu tienes. Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas