Newsgroup: it.comp.appl.access
Titolo: S.O.S.: Query che a volte funziona, a volte no???????

Salve a tutti.
Roberto che di sicuro è uno tosto, mi ha postato sul NG la seguente Query:
SELECT [Tabella2].[Id], [Tabella2].[Giorno], [Tabella2].[Ora],
DCount("[Id]","Query2","[Id]=" & [Id] & "AND [Giorno]=" & "#" & [Giorno] &
"#" & "AND [Ora]<" & "#" & [Ora] & "#")+1 AS e
FROM Tabella2
ORDER BY [Tabella2].[Id], [Tabella2].[Giorno], [Tabella2].[Ora];
Ovvero una query che a parità di [Id](numerico) e [Giorno](Data/ora) mi
restituisse il conteggio crescente del campo[Ora]
Creo subito una Tabella2 ed inserisco i campi, successivamente creo la
Query2 ed inserisco l'istruzione SQL
Tutto sembra funzionare a meraviglia sia che inserisca i dati nella tabella
sia che li inserisca nella Query.
Purtroppo quando inserisco i dati veri nella Tabella il conteggio della
query mi da sempre 1.
Smanetto un po' con i dati e scopro che se inserisco:
Id            Giorno            Ora                OTTENGO:    e
1            01/01/00        11.00                                      1
1            01/01/00        13.00                                      2
1            01/02/00          9.00                                      1
1            01/02/00         14.00                                     1
Dove sta il problema?????
Grazie Carlo.


Ariecchime.
Il problema sta sulle date per le quali il giorno e il mese non sono
univocamente riconoscibili (01/02/00 per noi europei è il 1° febbraio, ma
per gli americani che hanno fatto Access, potrebbe anche essere il 2 di
gennaio); se provi ad adoperare come data 13/02/00 va di nuovo bene.
Questo problema è noto, ma me ne ero dimenticato; si risolve adoperando la
funzione format, solo che non sono riuscito ad inserirla nei criteri della
DCount.
In attesa che un altro volenteroso più capace di me ti dia la soluzione, ho
modificato la query convertendo il campo Giorno in una stringa nella quale
la data è contenuta nella forma aaaa mm gg.
La prima query, quella che non capivi, avrebbe invece funzionato.
Comunque la nuova query che ti propongo (e che questa volta ho provato) ha
il seguente codice SQL:
SELECT Tabella2.Id, Tabella2.Giorno, Tabella2.Ora,
DCount("[Id]","Query2","[Id]=" & [Id] & "AND [f]=" & Chr$(34) & [f] &
Chr$(34) & "AND [Ora]<" & "#" & [Ora] & "#")+1 AS e,
Right(Str(Year([Giorno])),4) & Str(Month([Giorno])) & Str(Day([Giorno])) AS
f
FROM Tabella2
ORDER BY Tabella2.Id, Tabella2.Giorno, Tabella2.Ora;
Come vedi anche questa queri si deve chiamare Query2.
Ciao
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------

 wrote in message
JMIH5.51512$Nz.14...@news.infostrada.it...


 wrote in message
8snoj3$grm$1...@lacerta.tiscalinet.it...


 Ciao Carlo
Troppo buono.
Nel frattempo però sono andato a scuola nel Sito Comune, ho trovato una FAQ
del Prof Federico Luciani intitolata "Problemi con le date nelle stringhe
SQL"; e lì c'era la risposta.
Quindi il codice SQL definitivo di Query2 è:
SELECT Tabella2.Id, Tabella2.Giorno, Tabella2.Ora,
DCount("[Id]","Query2","[Id]=" & [Id] & "AND [Giorno]=" & "#" &
Format$([Giorno],"mm/dd/yyyy") & "#" & "AND [Ora]<" & "#" & [Ora] & "#")+1
AS e
FROM Tabella2
ORDER BY Tabella2.Id, Tabella2.Giorno, Tabella2.Ora;
Ciao
--
Roberto
---------------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------