giorno_mese = date + 1 
anno - 365 ? 
devi fare: anno - 1 (e non - 365)
non mi sembra neppure logica - visto che ti serve il giorno - la scelta di dividere la data
in due distinti campi "giornomese" e "anno"
per trovare la data odierna basta fare:
codice:
dim dd as String
dim mm as String
dim yy as String
Text1.Text = Day(Date) ' rertituisce 24
Text2.Text = Month(Date) ' restituisce 1
Text3.Text = Year(Date) ' restituisce 2005
dd = Text1.Text 'giorno
mm = Text2.Text 'mese
yy = Text3.Text - 1 'anno corrente - 1 (2005 - 1 = 2004)
If Len(dd) = 1 Then dd = "0" & dd '24 è composto da 2 cifre: quindi niente aggiunta di zero
If Len(mm) = 1 Then mm = "0" & mm '(gennaio) "1" diventa "01" (aggiunge lo zero)
in questo caso (con 3 distinti campi) la query sarebbe stata la seguente:
SELECT * FROM tabella WHERE campo_giorno = dd AND campo_mese = mm AND campo_anno = yy;
(estrapola tutti i record risalenti allo stesso giorno e mese corrente, ma dello scorso anno: 24/01/2004)
N.B. con un campo unico (giorno-mese)
devi modificare/implementare il codice sopra nel seguente modo
codice:
dim ddmm as String
ddmm = dd & "/" & mm
SELECT * FROM tabella WHERE campo_giorno_mese = "ddmm" AND campo_anno = yy;
N.B. se i campi sul database sono di tipo numerico, i valori delle variabili non vanno passati tra doppi apici "", altrimenti (se sul database sono di tipo testo/stringa) vogliono i doppi apici. (nel mio esempio: anno è numerico e giorno_mese è di tipo testo/stringa)
la query ACCESS dell'esempio sopra, in VB6 diventerebbe così:
codice:
Set rs = cn.Execute("SELECT * FROM Tabella WHERE campo_giorno_mese = '" & ddmm & "' AND campo_anno = " & yy & "")