Consulta en Access mediante dos fechas

Te pongo en situación. Tengo una tabla en la que registro a modo de base de datos una serie de columnas, cliente, email, fecha, oferta, etc. Quiero realizar una consulta que me coja los datos de esa tabla entre dos fechas, pero me gustaría que fuese a modo de formulario, es decir que me pida las fechas y haga la consulta. No se si es posible realizarlo.
Gracias de antemano.

1 respuesta

Respuesta
1
Si que es posible.
Crea un formulario continuo basado en una SQL sobre la tabla sin criterios. Imaginemos algo así:
SELECT Id, cliente, email, fecha, oferta FROM laTabla;
Se supone que tienes un campo Id único de tipo autonumérico.
Ahora añades dos cuadros de texto en el encabezado para poner las fechas (con su máscara de entrada, su formato y toda la pesca). Llamemosles txtFechaIni y txtFechaFin
Añade un botón para aplicar esos criterios (cmdAplicar) y, en el evento click, construyes una nueva SQL para el formulario:
' recuerda declarar las variables
strSelect = "SELECT Id, cliente, email, fecha, oferta "
strFrom = "FROM latabla "
' Empezamos una Where que se cumpla siempre
strWhere = "WHERE Id > 0 "
' evaluamos las fechas. Dado que puedes rellenar o no los campos, preparamos 3 condiciones: solo fecha inicio, solo fecha final o ambas
If IsDate(Me!txtFechaIni) And Not IsDate(Me!txtFechaFin) Then
  strWhere = strWhere & "AND fecha >= #" & Format(Me!txtFechaIni, "mm/dd/yyyy") & "# "
End If
If Not IsDate(Me!txtFechaIni) And IsDate(Me!txtFechaFin) Then
  strWhere = strWhere & "AND fecha <= #" & Format(Me!txtFechaFin, "mm/dd/yyyy") & "# "
End If
If IsDate(Me!txtFechaIni) And IsDate(Me!txtFechaFin) Then
  strWhere = strWhere & "AND fecha Between #" & Format(Me!txtFechaIni, "mm/dd/yyyy") & "# And #" & Format(Me!txtFechaFin, "mm/dd/yyyy") & "# "
End If
' Aqui es dónde podrias concatenar más criterios: vamos a suponer que tienes un cuadro combinado para seleccionar el cliente y este es un campo de texto
If Trim(Nz(Me!cboCliente, "")) <> "" Then
  strWhere = strWhere & "AND cliente = '" & Me!cboCliente & "' "
End If
' añade cuantos criterios quieras
' .....
strSQL = strSelect & strFrom & strWhere
Me.RecordSource = strSQL
Adáptalo a tus nombres de tablas, campos etc y prueba.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas