27 messaggi dal 03 giugno 2010
www.biggigi.it
Cari amici, perdonatemi, ma ancora una volta ho unm muro di gomma da superare e chiedo gentilmente il vs aiuto.
Devo estrarre una serie di record tramite 2 condizioni:
la prima è l'id
la seconda è la data (i record devono essere solo quelli della settimana)
Mi spiego meglio, stò creando un db per le partite di calcio, al sabato o alla domenica si deveno caricare in automatico i nuovi incontri)



Ecco il mio codice:
Dim, idsquadra, oggi
idsquadra= (devo ancora farla cmq arriva dalla pagina parametro url)
oggi = oggi= Date()
apro il db e:
sql1 = "SELECT * FROM Partite WHERE id_partite=111 AND (Giorno1 >=#" &oggi& "# AND Giorno <= #"& DateAdd("d",7,oggi) &"#) ORDER BY Giorno1 ASC"
dove Giorno1 (contiene le date delle partite)

Potete notare che ho messo #, scusate la mia ignoranza ma era l'unico modo per far andare la pagina, nel codice che avevo trovare sarebbe stato '" ma mi dava l'errore (forse perchè non è testo ma il db è formattato per data)
Ora in questo modo non legge niente, se invece
Oggi=DateSerial(year(now), month(now), Day(now))
la pagina carica i dati, l'unico problema è che mi estrare i dati con una differenza di 7 giorni, per tutti i mesi che ho purtroppo.
Sembra che la variabile oggi non si associ con giorno1, cioè probabilmente i formati sono diversi, non riesco a capire, se qualcuno può darmi una mano.... GRAZIE

Gianluigi DI BELLA (grande passione per l'informatica)
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
fai un Response.Write(sql1) così puoi vedere a schermo quale query viene inviata al database.

Può darsi che una delle date venga scritta nel formato gg/mm/aaaa e questo può mandare in confusione il database perché magari la interpreta nel formato anglosassone mm/gg/aaaa.

gianluigi73 ha scritto:

Potete notare che ho messo #, scusate la mia ignoranza ma era l'unico modo per far andare la pagina, nel codice che avevo trovare sarebbe stato '"


Sì, ci va il carattere # perché questo è il qualificatore delle date in Access. L'esempio che hai trovato forse era per SQL Server che invece usa l'apice.

Nel frattempo, prova a risolvere usando le funzioni di Access per le date, in particolare la funzione Date(). Questo ti evita il problema di dover formattare giorno, mese e anno nell'ordine voluto da Access (<- di solito è meglio usare il formato internazionale aaaa/mm/gg).

Prova così:
sql1 = "SELECT * FROM Partite WHERE id_partite=111 AND (Giorno1 >= Date() AND Giorno1 <= DateAdd("d",7,Date()) ORDER BY Giorno1 ASC"


ciao,

Enjoy learning and just keep making
27 messaggi dal 03 giugno 2010
www.biggigi.it
Grazie.
Il problema era proprio nella codifica delle date
Session.LCID = 1033 ' codifica la data x access in modo internazzionale
estratto tutto e poi riconvertito x leggere in italiano
Session.LCID = 1040 ' una volta estratti i dati in modo corretto ricordifica la data x italia

Grazie ancora

Gianluigi DI BELLA (grande passione per l'informatica)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.