View Full Version : Query di access
zhenodgl
13-11-2007, 17:19
Ciao a tutti,
ho creato un piccolo database con access.
Ho aggiunti alcuni pulsanti per la ricerca fra record.
Vorrei però inserire una query che mi estrapoli i record con data (data di richiesta nel mio caso) corrispondente alla prima quindicina di un mese (che voglio che la query mi chieda di inserire).
Ho provato con questo:
Year([Data richiesta]) = Year(Date()) and Month([Data richiesta]) = Month([Inserisci numero mese:]) and Day([Data richiesta]) = Day <= 15
ma niente...
oppure con questa ( questa è stata pura fantasia mia):
>#1/([Inserisci numero mese:])/2007# AND <#15/([Inserisci numero mese:])/2007#
ma niente...
qualcuno sa darmi una mano?
grazie ciao
Ciao a tutti,
ho creato un piccolo database con access.
Ho aggiunti alcuni pulsanti per la ricerca fra record.
Vorrei però inserire una query che mi estrapoli i record con data (data di richiesta nel mio caso) corrispondente alla prima quindicina di un mese (che voglio che la query mi chieda di inserire).
Ho provato con questo:
Year([Data richiesta]) = Year(Date()) and Month([Data richiesta]) = Month([Inserisci numero mese:]) and Day([Data richiesta]) = Day <= 15
ma niente...
oppure con questa ( questa è stata pura fantasia mia):
>#1/([Inserisci numero mese:])/2007# AND <#15/([Inserisci numero mese:])/2007#
ma niente...
qualcuno sa darmi una mano?
grazie ciao
Anzitutto un consiglio : MAI chiamare i campi ( le colonne ) di un DB con nomi che contengono spazi. Creano solo confusione e spesso anche errori...
Assumendo che la tabella si chiami "T_Prova" ( nel mio esempio ) e il campo data "data_richiesta", molto semplicemente :
Day(T_Prova.data_richiesta)<=15 AND Month(T_Prova.data_richiesta)=[Immettere Numero Mese]
Da mettere come Criterio sotto il campo "data_richiesta". ;)
zhenodgl
14-11-2007, 14:43
Ok grazie provo e poi ti dico:D
zhenodgl
14-11-2007, 15:48
PERFETTO!!!!!!!!!!! grazie mille MARCO
e se volessi selezionare con una richiesta o i primi 15 giorni o i secondi???
PERFETTO!!!!!!!!!!! grazie mille MARCO
e se volessi selezionare con una richiesta o i primi 15 giorni o i secondi???
Una strada relativamente semplice ed immediata può essere questa :
1. Devi aggiungere un campo alla Query :
In Visualizzazione Struttura portati su uno "Slot" ( io li chiamo Slot... ) vuoto, e inserisci quanto segue :
- Campo -> ps: IIf(Day([data_richiesta])<=15;"p";"s")
- Tabella -> VUOTO
- Ordinamento -> VUOTO
- Mostra -> Decidi tu. Non è necessario che il campo sia mostrato nel risultato della Query...
- Criteri -> =[Immettere p o s]
2. A questo punto per l'altro criterio ( che va sotto "data_richiesta" ) basterà :
Month([data_richiesta])=[Immettere Numero Mese]
Ora verrà chiesto il numero-mese e di inserire "p" o "s" a seconda che si vogliano i Primi o Secondi 15 gg...
Prova. ;)
zhenodgl
16-11-2007, 08:16
Grazie Marco, funziona alla grande.
Ma fammi capire, è quel IIF che determina che si verifichi l'epressione (<=15) o il suo contrario a seconda dell'immissine del primo o secondo parametro?
Immagino tu "mastichi" parecchio di programmazione, per questo è cosi facile per te, ma per me, se ho bisogno, ho cercato in un paio di libri, ma ci sono funzioni semplicissime, dove posso trovare qualcosa in piu? Hai qualche link da darmi o qualche libro da consigliarmi?
grazie ancora
Grazie Marco, funziona alla grande.
Ma fammi capire, è quel IIF che determina che si verifichi l'epressione (<=15) o il suo contrario a seconda dell'immissine del primo o secondo parametro?
Esatto. IIF funziona così :
- IIF( Condizione Da Verificare ; Azione Se Condizione=Vera ; Azione Se Condizione=Falsa )
La doppia "I" per distinzione con If di VBA ( IIf NON è un costrutto Visual Basic, ma una funzione "speciale" di Access ).
Immagino tu "mastichi" parecchio di programmazione, per questo è cosi facile per te, ma per me, se ho bisogno, ho cercato in un paio di libri, ma ci sono funzioni semplicissime, dove posso trovare qualcosa in piu? Hai qualche link da darmi o qualche libro da consigliarmi?
grazie ancora
Se vuoi imparare, a parer mio, considera da subito che un manuale-tipo da 1000 pagine, ad esempio, su Access, avrà forse 200 pagine realmente utili a scopi pratici.
Il migliore manuale del mondo è sempre il web.
Sulla carta troverai grandi dissertazioni sui "massimi sistemi", ma alla fine non saprai cosa fartene...
Parlando di Office che come vedi, anche in questo forum, viene messo nelle "Utility" e non negli IDE di sviluppo, cosa che invece é a tutti gli effetti, ho contribuito a thread zeppi di codice, stupendomi del fatto che nessun Mod abbia deciso di spostarli in Programmazione.
In Italia Excel o Access purtroppo sono considerati strumenti "for dummies", spesso da gente che non è buona di fare "2+2"... :rolleyes:
C'è questa moda, così com'è di moda odiare la Microsoft e Bill Gates, o definire geniale l'ennesima bruttura di casa Apple...
In America scrivono fior di manuali da 1200 pagine sul VBA...
Vai sul sito di John Walkenbach, tanto per fare un nome fra molti :
http://j-walk.com/ss/
Se trovi qualche suo manuale ( anche online... ;) ), magari tradotto in ITA ( improbabile, ma possibile ), te lo consiglio ad occhi chiusi.
Se sei proprio alle prime armi con Office e vuoi imparare, ti consiglio caldamente di cominciare con una release seria "per sviluppatori", ossia categoricamente OFFICE 2003, e poi passi anche al 2007.
Gli unici manuali cartacei italiani che mi sento di consigliarti sono "I MITI INFORMATICA" di Mondadori, MA SOLO quando costano 12 € ! :D
E' un prezzo onesto per quel ( poco ) che offrono...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.