Como crear Consulta de selección Access

Tengo una base de datos con un campo que contiene un número correlativo, como puedo crear en una consulta un parámetro para sacar un informe entre dos números dados, por ejemplo desde el 100 al 156, el problema es que nunca son los mismos rangos de números.

1 Respuesta

Respuesta
1

Lo puede hacer en la consulta o al imprimir pero para ser más exacto en la respuesta sería conveniente saber el nombre del campo que contiene el rango y si puede el nombre de los campos del formulario donde fija el rango, por ejemplo, Desde y Hasta. No le preparo ahora el ejemplo porque estoy respondiendo desde mi móvil pero mañana le complemento.

Preparé este ejemplo para imprimir el rango mediante una consulta y utilizando Wehere en la llamada del reporte:

TABLA

Hago una consulta sobre el campo idpedido para tomar el rango, con base en los campos del formulario que he llamado: ctlDesde y ctlHasta.

FORMULARIO

Observe que para facilitar la explicación utilizo 2 botones (puede hacerlo con un Grupo de opciones). El formulario contiene el rango Desde y Hasta, estos valores los necesita la consulta y el informe sin consulta.

DISEÑO CONSULTA

La consulta se llama qryPedidos y requiere del formulario frmPedidos. Observe como en Criterios se crea el criterio, si lo hace con el asistente el formulario pedidos debe estar abierto.

DISEÑO DE LOS REPORTES

Hay 2 reportes, uno utiliza la consulta y el otro, utiliza el where.

Reporte con la consulta:

Reporte con la tabla y filtra con where.

Resultado de cualquiera de los reportes:

Observe que reporte solo muestra el rango del idpedido comprendidos entre 30 y 50.

CÓDIGO  BOTONES DEL FORMULARIO

Botón por consulta

Private Sub btnRptConsulta_Click()
 If IsNull(Me.ctlDesde) Or IsNull(Me.ctlHasta) Then
    Exit Sub
 ElseIf Me.ctlDesde > Me.ctlHasta Then
    MsgBox "Verifique el rango", vbInformation, "Reporte"
    Me.ctlDesde.SetFocus
    Exit Sub
 End If
  DoCmd.OpenReport "rptPedidos_con_consulta", acViewPreview
End Sub

Botón por Where:

Private Sub btnReportePorFiltro_Click()
 If IsNull(Me.ctlDesde) Or IsNull(Me.ctlHasta) Then
    Exit Sub
 ElseIf Me.ctlDesde > Me.ctlHasta Then
    MsgBox "Verifique el rango", vbInformation, "Reporte"
    Me.ctlDesde.SetFocus
    Exit Sub
 End If
 DoCmd.OpenReport "rptPedidos_por_filtro", acViewPreview, , "idpedido Between " & Me.ctlDesde & " AND " & Me.ctlHasta
End Sub

¿Cuál sistema es mejor?. Si tiene una tabla con muchos registros es mejor por consulta, toda vez, que únicamente se cargan los registros necesarios. En el sistema del filtrar el reporte se debe cargar toda la tabla.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas