• User

    Problema Intervallo date in asp.

    Ciao a tutti e un grosso saluto; sono nuovo del forum e volevo ringraziarvi tutti per l'aiuto che mi potrete dare su questo problema che ho.

    il problema è il seguente:

    ho una pagina asp dove richiamo con due select dinamiche la persona a cui voglio emettere la fattura e poi ho due campi testo uno chiamato dataInizio e l'altro dataFine dove inserisco l'intervallo di tempo in cui voglio che avvenga la fatturazione e poi passo questi valori ad una seconda pagina in cui li richiamo mediante una query.string e faccio l'interrogazione del db con una select. Però ho il seguente problema: quando visualizzo i dati, non mi da i valori richiesti nell'intervallo specificato ma, me li prende tutti....

    vi passo il codice così potete vedere di persona:

    fattura.asp:

    [Cut]

    grazie mille per tutto e a presto


  • User

    hai provato ad eseguire la query in access? (la query con between)
    Li ti da i risultati giusti?

    Se no hai provato a sostiture semplicemente con
    data >= #data# AND data <=#

    😉


  • User

    grazie per la risposta; no, non ho mai provato a farlo in access perchè non so come si fa. Mi puoi aiutare a farlo?


  • User

    ho provato a modificare come mi hai detto però mi da il seguente errore:

    str_sql = "SELECT articolo, Sum(quantita) AS totale1 FROM calcolo_fattura WHERE (data >=#"&dataInizio&"# AND data <= #"&dataFine"&#) AND nome_esercizio= '" &REQUEST("nome_esercizio")& "' GROUP BY articolo"

    Tipo di errore:
    Errore di compilazione di Microsoft VBScript (0x800A0401)
    Prevista fine istruzione
    /test/Lavanderia_Rivalta/fattura/pagina1.asp, line 289, column 129
    **str_sql = "SELECT articolo, Sum(quantita) AS totale1 FROM calcolo_fattura WHERE (data >=#"&dataInizio&"# AND data <= #"&dataFine"&#) AND nome_esercizio= '" &REQUEST("nome_esercizio")& "' GROUP BY articolo"
    **


  • Moderatore

    Ciao m_ferraris,
    benvenuto su l forum.
    Ho editato il tuo post, e ti invito a leggere il regolamento della sezione.

    Postando tutto il codice e oltre tutto senza usare una giusta formattazione non inviti gli utenti a risponderti. 😉
    Posta le linee che danno problemi.

    :ciauz:


  • User
    1. Errore di compilazione = sbagliato qualcosa nell'istruzione; questo:
    
    **... data <= #"&dataFine"&#) AND...**
    
    

    che dovrebbe essere

    
    **...** data <= #" & dataFine & "#) AND....
    
    

    Se funzia così, ok, altrimenti subito dopo una query nel codice con il between metti un response.write str_sql, ti ritroverai la query nella pagina HTML (magari senza un cancelletto, non ti preoccupare....;)) incollala in Access e vedi che ti restituisce....


  • User

    non funziona.... mi da sempre intervalli di dati sbagliati
    es gli dico: dal 01/10/2007 al 30/10/2007, mi mette anche dei valori del mese 09


  • Moderatore

    fai un response.write come ti ha detto hwlab123 e vediamo cosa riporta


  • User

    lo devo mettere così il response?

          <%
     Dim rsReport__MMColParam
    

    rsReport__MMColParam = "1"
    If (Request.QueryString("data") <> "") Then
    rsReport__MMColParam = Request.QueryString("data")
    End If
    %>
    <%
    dataInizio = month(Request.QueryString("dataInizio")) & "/" & day(Request.QueryString("dataInizio")) & "/" & year(Request.QueryString("dataInizio"))
    dataFine = month(Request.QueryString("dataFine")) & "/" & day(Request.QueryString("dataFine")) & "/" & year(Request.QueryString("dataFine"))

    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn & " DBQ=" & Server.MapPath("../Database/db.mdb")
    strConn=strConn & ";pwd=" & strCode
    Conn.Open strConn
    sql = "SELECT * FROM ddt_finale WHERE (data BETWEEN #"&dataInizio&"# And #"&dataFine&"#) AND nome_esercizio= '" &REQUEST("nome_esercizio")& "' ORDER BY esercizio ASC"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn ,3,3
    do while not(rs.eof)

    response.write str_sql

    %>

    non mi da nessun valore a video


  • Moderatore

    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn & " DBQ=" & Server.MapPath("../Database/db.mdb")
    strConn=strConn & ";pwd=" & strCode
    Conn.Open strConn
    sql = "SELECT * FROM ddt_finale WHERE (data BETWEEN #"&dataInizio&"# And #"&dataFine&"#) AND nome_esercizio= '" &REQUEST("nome_esercizio")& "' ORDER BY esercizio ASC"
    **
    Response.write sql
    Response.end**

    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn ,3,3
    do while not(rs.eof)


  • User

    grazie mille, il response mi da la seguente stringa:

    [CENTER]SELECT * FROM ddt_finale WHERE (data BETWEEN #10/1/2007# And/30/2007#) AND nome_esercizio= 'I Caffi S.R.L.' ORDER BY esercizio ASC[/CENTER]