Seleccionar por fecha en access

lorrich
14 de Abril del 2005
Necesito hacer una consulta en Access que me muestre los registros que en su campo fecha pertenezca a un mes y un año que tengo como variables.

No se como seria esa consulta. A ver si me podeis hechar una mano.

Un saludo y gracias.

telemaco
14 de Abril del 2005
Vamos a suponer que la fecha la sacas de un datapicker. El problema del access es que, aunque a ti te muestre la fecha con este formato "21/2/2005", en realidad está gurdando la fecha al revés, porq lo que hay que formatear si la quieres pasar entera: Format(datapicker.value,"yyyy/mm/dd"). En tu caso no es necesario, así que la consulta sería la siguiente...

Private sub Consultar_click()
'Suponiendo que ya tienes una conexión creada con tu BD
' con ADO a la que has llamado (en un alarde de originalidad)
' "conexion"
dim consulta as string
dim rs as new adodb.recordset

consulta = "select * from tutabla where year(fecha) = " & year(datapicker.value) & " and month(fecha) = " & month(datapicker.value)

set rs = conexion.execute(consulta)

'Así tendrás en el recordset 'rs' todos los registros que cumplan tu condición
end sub

Espero que esto te sirva

Max
14 de Abril del 2005
¿Por qué no trabajan con procedimientos almacenados en Access?

Es más seguro y más comodo.

lorrich
14 de Abril del 2005
A que te refieres con procedimientos almacenados en Access???

Max
14 de Abril del 2005
A ver no son exactamente "Stored Procedures", pero son consultas a las que les puedes pasar parametros y se quedan almacenadas en la base de datos y no no en el codigo de la aplicacion, con sus consiguientes ventajas.

lorrich
14 de Abril del 2005
Cuales serian esas ventajas???

Como haria para llamarlas desde VB???

Un saludo.

Max
14 de Abril del 2005
La escalabilidad te parece suficiente?.
La posibilidad de separar la capa de datos de la capa de aplicacion.

O por poner un ejemplo:

Imaginate que tienes una consulta con campos calculados que se rigen por reglas de negocio y que estas ultimas cambian.

Despues de estar funcionando tu aplicacion, tendrías que volver a generar el ejecutable, de esta otra forma, entrarias a la base de datos cambiarias la consulta y listo.

Para hacer este tipo de llamadas se hace igual que contra SQL Server.

Busca en la ayuda de VB Append Parameters y Commandtext.

gdamenov
14 de Abril del 2005
SELECT * FROM TuTabla WHERE YEAR(CampoFecha)=VariableAño AND MONTH(CampoFecha)=VariableMes