Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    178

    Problema visualizzazione dati in intervallo tra due date

    Ciao a tutti, ho creato un form dove inserisco data di inizio e data di fine e poi lo mando ad una seconda pagina dove dovrebbe visualizzami i dati all'interno del db presenti tra le due date inserite.

    Questo è il codice che ho scritto:

    <%
    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 sai dare una mano nel sistemarlo?. Grazie mille

  2. #2
    Manca un costrutto fondamentale alla query:

    codice:
    str_sql = "SELECT articolo_carico, Sum(quantita_carico) AS totale1 
                    FROM magazzino 
                  WHERE (data between #"&dataInizio&"# And #"&dataFine&"#) 
               GROUP BY articolo_carico "
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  3. #3
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    codice:
    str_sql = "SELECT articolo_carico, Sum(quantita_carico) AS totale1 FROM magazzino WHERE (data between #"&dataInizio&"# And #"&dataFine&"#) GROUP BY articolo_carico"
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    178
    grazie mille per l'aiuto, ora non mi da più quell'errore ma bensì:

    Tipo di errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
    [Microsoft][Driver ODBC Microsoft Access] Parametri insufficienti. Previsto 1.
    /test/magazzino/dati/intervallo_date/pagina1.asp, line 69

    che vuole dire?.

    I campi delle tabelle del db sono popolati...

  5. #5
    Prova a stampare la query così:

    codice:
    str_sql = "SELECT articolo_carico, Sum(quantita_carico) AS totale1 FROM magazzino WHERE ([data] between #"&dataInizio&"# And #"&dataFine&"#) GROUP BY articolo_carico"
    response.write(str_sql)
    response.end
    e poi provala direttamente sul DB Access e caso mai postala qui.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    178
    scusatemi, sono un idiota io.... ho due date: una data_carico e una data_scarico del magazzino.... quindi apportando la seguente modifica funziona:

    sql = "SELECT codice_articolo_carico FROM magazzino WHERE (data_carico BETWEEN #"&dataInizio&"# And #"&dataFine&"#) GROUP BY codice_articolo_carico"

    grazie mille, siete stati gentilissimi.

    Ho però un'altra domanda:

    se nel form di ingresso voglio solo mettere la scelta dall'anno che lo ricavo da una select dinamica come posso fare a fare la sql di interrogazione?. per la select non ho problemi perchè sono capace a farla però con le date mi sto cimentando solo ora....

    mi spiego vorrei far uscire una tendina dove prendo solo gli anni (2008 .... 1990),

    come faccio a fare la select che metta giò 01/01/aaaa a 31/12/aaaa?.

    grazie

  7. #7
    Se selezioni solo l'anno, allora puoi farem al submit della form:

    codice:
    Anno = trim(request.form("nome_campo_anno"))
    
    DataInizio = "01/01/" & Anno
    E' un esempio, adattalo alle tue esigenze.

    Giorno e mese se li vuoi rendere pure variabili lavora con la stessa logica: recuperi le variabili e poi le concateni in una da passare poi alla query.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    178
    grazie ancora....

  9. #9
    Prego.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.