• User

    Problema intervallo date

    ciao a tutti, devo realizzare una interrogazione su db access che mi estragga i valori all'interno di due date. Ho scritto la seg. stringa:

    Dim mdb
    mdb = "../../Database/db.mdb"
    'creiamo l'oggetto Connection
    Dim conn
    Set conn = Server.CreateObject("ADODB.Connection")
    'apriamo la connessione
    conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath(mdb)
    'settiamo la nostra stringa SQL 
    Dim str_sql
    str_sql = "SELECT codice_articolo_carico,  Sum(quantita_carico) AS totale1 FROM magazzino WHERE (data between #"&dataInizio&"# And #"&dataFine&"#) GROUP BY articolo_carico"
    'creiamo l'oggetto RS 
    set rs = conn.execute(str_sql)
    DO WHILE NOT RS.EOF
    %>
                            <input type="text" name="quantita_carico" value="<%=rs("totale1")%>">
                            <%
    RS.MOVENEXT
    LOOP
    %>
    

    però mi da il seguente errore:

    Tipo di errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi nella data nell'espressione della query '(data between ## And ##)'.
    /test/magazzino/dati/intervallo_date/pagina1.asp, line 58

    Come posso fare a correggerlo?.


  • User

    ho modicficato come segue:

     <%
     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")) 
        
    Dim mdb
    mdb = "../../Database/db.mdb"
    'creiamo l'oggetto Connection
    Dim conn
    Set conn = Server.CreateObject("ADODB.Connection")
    'apriamo la connessione
    conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath(mdb)
    'settiamo la nostra stringa SQL 
    Dim str_sql
    str_sql = "SELECT articolo_carico,  Sum(quantita_carico) AS totale1 FROM magazzino WHERE (data between #"&dataInizio&"# And #"&dataFine&"#)"
    'creiamo l'oggetto RS 
    set rs = conn.execute(str_sql)
    DO WHILE NOT RS.EOF
    %>
                           <input type="text" name="quantita_carico" value="<%=rs("totale1")%>">
                           <%
    RS.MOVENEXT
    LOOP
    %>
    

    però mi da il seguente errore:

    Tipo di errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [Microsoft][Driver ODBC Microsoft Access] Impossibile eseguire una query che non include l'espressione "articolo_carico" specificata come parte di una funzione di aggregazione.
    /test/magazzino/dati/intervallo_date/pagina1.asp, line 68

    Chi mi può aiutare???.


  • Super User

    Ciao, la query che ahi fatto non va bene, prova ad aggiungere group by articolo_carico alla fine