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 de xavi -ae soft-
1
1
xavi -ae soft-, 20años de experiencia en programacion Access a razon de 10 horas...
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.