Access - Pasar consulta de formulario a Informe

 
Vista:
sin imagen de perfil
Val: 10
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Pasar consulta de formulario a Informe

Publicado por Erick Santiago (6 intervenciones) el 29/08/2019 22:03:27
Hola a todos:

Nuevamente recurro a ustedes con una duda que no he podido resolver.

Tengo un formulario para consulta con varios combobox que uso para filtrar. Pero en el filtrado utilizo instrucciones sql ya que necesitaba que un combo box vacío indique que debe mostrar todos los elementos de ese combo. Por ejemplo:
El combobox tipo Tiene Tipos A, B y C
Cuando el combo Tipo esta vacio, La consulta me envia todos los registros con los tipos A, B y C

consulta = " Select nombre, imputacion, mesFacturacion, montoFacturado, kwhConsumidos, kvarConsumidos "
consulta = consulta & " From SUB_CFE_CONSULTAS"
consulta = consulta & " Where cmbTipo = 100"

Con esto establezco el valor del recordSource de esta forma SUB_CFE_INGRESOS.Form.RecordSource = consulta

Mi problema es el siguiente:
Tengo declarada la variable consulta como un string y necesito pasar ese valor al recordSource de un informe.
Tambien declare una variable publica llamada consultaCargada

Lo intente con Docmd.OpenReport "Reporte",,,consultaCargada (Esto en el parametro openArgs)

Pero al abrir el informe, no me carga la consulta. Mando la variable a un msgbox antes de abrir el informe y la cadena esta cargada en la variable. Pero al abrir el informe mando otro msgbox y el valor de la variable esta en blanco.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 10
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Pasar consulta de formulario a Informe

Publicado por Erick Santiago (6 intervenciones) el 29/08/2019 23:57:17
Ya he resuelto el problema de la siguiente manera.

Solo declare una variable publica al inicio del codigo del formulario.
Asigne el valor de la consulta a la variable publica y en el evento al abrir el informe, asigno el valor de la variable publica al record source haciendo referencia al formulario que contiene la variable publica.

1
2
3
4
5
Private Sub Report_Open(Cancel As Integer)
 
Me.RecordSource = Forms!CFE_CONSULTAS.consultaCargada
 
End Sub

Comparto la manera en que solucione mi problema por si a alguien le sirve mas adelante o me dan una mejor opción.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pasar consulta de formulario a Informe

Publicado por Anonimo (3316 intervenciones) el 30/08/2019 01:29:56
Si en un subformulario tenemos un origen de datos:

1
SUB_CFE_INGRESOS.Form.RecordSource = consulta

Yo lo escribiria asi:

1
Me.SUB_CFE_INGRESOS.Form.RecordSource = consulta

Que es lo mismo pero a Access el 'Me' (que es la referencia al formulario) le ayuda a localizar el objeto mas eficientemente y ello se suele traducir en velocidad.

Se supone que en ese subformulario como origen de datos se tendrá esto:

1
Select nombre, imputacion, mesFacturacion, montoFacturado, kwhConsumidos, kvarConsumidos From SUB_CFE_CONSULTAS Where cmbTipo = 100

esta linea :

1
Docmd.OpenReport "Reporte",,,consultaCargada ' (Esto en el parametro openArgs) 

Se podria escribir asi:

1
Docmd.OpenReport "Reporte",,,Me.SUB_CFE_INGRESOS.Form.RecordSource

Y en el informe así:
1
2
3
Private Sub Report_Open(Cancel As Integer)
Me.RecordSource = Me.OpenArgs
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar