118 messaggi dal 14 marzo 2001
ciao a tutti.

Spero stavolta di spiegarmi bene.

ho una tabella dove ho 2 campi di nome data1 e data2

devo estrarre il record <= di data1 e >= a data2

e cosi ho fatto:

<%
Set rec = Server.CreateObject("ADODB.Recordset")
strSql="SELECT * FROM periodi WHERE data1<=#"&dal&"# AND data2>=#"&al&"#"
rec.open strsql, conn

%>

bene


il campo data1 ha un valore 31/01/2005
il campo data2 ha un valore 16/02/2005

il form che inoltro ha i seguenti valori:
02/02/2005 = dal
04/02/2005 = al

la risposta è che non trova il record....

Perchè??

Grazie del vostro aiuto
593 messaggi dal 09 ottobre 2002
www.dotnetside.org
Se vuoi le data dal al devi modificare la query:

strSql="SELECT * FROM periodi WHERE data1 >= #"&dal&"# AND data2 <= #"&al&"#"

Ciao

P.S.: Un consiglio: è sempre preferibile passare i valori di date alle query nello standard ANSI SQL che è: aaaa/mm/gg
in tal modo si eviteranno eventuali problemi di ambiguità (scambio) fra mesi e giorni

Pochi post. Anzi, quasi quasi spengo
http://www.dotnetside.org/
118 messaggi dal 14 marzo 2001
vitosulla ha scritto:
Se vuoi le data dal al devi modificare la query:

strSql="SELECT * FROM periodi WHERE data1 >= #"&dal&"# AND data2 <= #"&al&"#"

quote]

mi da lo stesso errore:

Tipo di errore:
ADODB.Field (0x80020009)
Il record corrente corrisponde all'inizio o alla fine del file oppure è stato eliminato. Per eseguire l'operazione richiesta è necessario disporre di un record corrente.
/asp3/immissione.asp


Tipo di browser:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)

Pagina:
POST 45 bytes to /asp3/immissione.asp

POST Data:
dal=02%2F02%2F2005&al=04%2F02%2F2005&B1=Invia
102 messaggi dal 23 giugno 2004
Ciao agenti2,
l'errore probabilmente è dovuto al fatto che la query non trova nessun campo e ti restituisce un tabella vuota. Oppure esegui operazioni oltre il BOF o EOF. Prova a controllare meglio la query e, come ha già detto vitosulla, passa i valori cercando di rispettare il formato.
Se utilizzi Access con un copia e incolla è molto semplice verificare la query e i risultati, dopodichè vedi se con qualche Move superi i limiti BOF o EOF.

Buon lavoro

Ciao e Grazie
PIXEL
105 messaggi dal 17 febbraio 2005
ciao
non ho problemi a fare copia e incolla...
 a questo ci arrivo.

come posso formattare le date nel formato standard sql??

aaaa/mm/gg

??
Grazie
593 messaggi dal 09 ottobre 2002
www.dotnetside.org
dataSQL = Year(tuaData) & "/" & Month(tuaData) & "/" Day(tuaData)

Ciao

Pochi post. Anzi, quasi quasi spengo
http://www.dotnetside.org/
105 messaggi dal 17 febbraio 2005
scusami ancora vito...

ma questo impone di avere 3 form di cui uno per il giorno uno per il mese e uno per l'anno che poi verranno uniti in una stringa .. giusto??


dataSQL = Year(tuaData) & "/" & Month(tuaData) & "/" Day(tuaData)

ma io ho un form unico dove la data viene inserita tramite un javascript.

Non voglio creare tre form.

come fare??

perdona l'ignoranza.
593 messaggi dal 09 ottobre 2002
www.dotnetside.org
No!

Le funzioni interne VBS Year(), Month(), Day() servono a estrarre la corrispondente parte di data dalla stringa passata come argomento (nel tuo caso tuaData) che può essere stata valorizzata tramite richiamo della funzione Date(), Now() o, come nel tuo caso, recuperata da un modulo.

Perciò, nel tuo esempio, potresti attuare qualcosa di simile:
' supposto che tu recuperi il valore da un campo "Data" del tuo modulo:
 
tuaData = CDate(Request.Form("Data"))
 
 
' Recuperata la data la trasformi in ANSI SQL
 
dataSQL = Year(tuaData) & "/" & Month(tuaData) & "/" Day(tuaData)

Ciao

Pochi post. Anzi, quasi quasi spengo
http://www.dotnetside.org/

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.