Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 15 su 15
  1. #11
    Pardon,
    lavorando su SQL Server ho immaginato che la GetDate() esistesse anche su Access.
    Invece credo che lì vada usata la Date().
    Quindi:
    codice:
    query = "SELECT * FROM tbl_sostanze WHERE datediff(m, data, Date() ) <=6"
    In pratica la datediff calcola la differenza di tempo tra due date.
    Il primo parametro è l'elemento da tenere di conto (y=anno, m=mese, d=giorno, h=ora, n=minuto, s=secondo) per calcolare la differenza.
    Poi gli passi la data attuale e la data del record.

    Viene fatta la differenza in mesi. Se questa differenza è maggiore di 6 allora il record va escluso altrimenti si tiene.

    Documentazione DateDiff

    Non lavoro più su Access da un bel pò, quindi spero che le funzioni indicate siano presenti anche lì.

  2. #12
    SI infatti adesso mi dice:

    Parametri insufficienti, previsto 1

    L'errore getdate() non c'è più.

    boh in questo script c'è qualkosa che non mi quadra. Vi posto il codice modificato:

    codice:
    <%
    
    seimesifa = dateAdd("m",-6,date())
    
    'estrazione di record casuali
    Conn.Open strConn
    Set rsreviews = Server.CreateObject("ADODB.Recordset")
    query = "SELECT * FROM tbl_sostanze WHERE [data] > #" & seimesifa & "#"
    'response.write query
    'response.End()
    
    rsreviews.Open query,Conn,3,3
    if not rsreviews.EOF then
      N = 1 'numero di record casuali da visualizzare
      Randomize
      max = rsreviews.RecordCount-1
      redim arr(max)
      'popolo l'array da 0 al numero di record 
      for i=0 to max
    	arr(i)=i
      next
      'mischio i numeri in modo casuale
      for i=0 to max
        casuale = Int((max)*Rnd)
    	temp = arr(i)
    	arr(i) = arr(casuale)
    	arr(casuale) = temp
      next
      'visualizzo gli N record casuali
      for i=0 to N-1
        rsreviews.Move arr(i)
    %>
    <table width="130" border="0" align="center" cellpadding="0" cellspacing="0" >
              <tr>
                <td align="center" height="2"><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#39563e"></font><%response.write (rsreviews("data") & " " & seimesifa)%></td>
              </tr>
              <tr>
                <td width="130" height="130" align="center" valign="middle" background="../image/barre/cornice_02.gif" >
                  
    ">[img]<%= rsreviews([/img]" width="100" border="0" align="absmiddle" />
    </td>
              </tr>
    </table>
    
        <%
        rsreviews.MoveFirst 
      next
    end if
    rsreviews.Close
    set rsreviews = Nothing
    conn.Close
    set conn = Nothing
    %>
    Se nella stringa che stampa la data di 6 mesi fà cambio il parametro dei mesi e metto che so -5 o -4 mesi fa i recordcount sono sempre 80 mentre se metto -1 diventa 0.

    Siccome settimanalmente vengono inserite recensioni, è impossibile che sia reale. HO controllato il db e le date sono inserite correttamente.

  3. #13
    tu usi

    query = "SELECT * FROM tbl_sostanze WHERE [data] > #" & seimesifa & "#"

    *subito* dopo la composizione della stringa SQL metti

    Response.Write "maGGica SQL...: " & query
    Response.Flush

    poi posta quello che viene a video

    potresti anche provare la stringa direttamente dentro access e vedere...

  4. #14
    Io fossi in te mi concentrerei sul filtro tramite istruzioni SQL.

    Basta un'istruzione e risolvi tutto.

    Purtroppo su Access non so cosa funzioni e cosa no.

    Comunque prova a mettere il primo parametro della datediff tra apici o virgolette. E ad usare Now() invece di Date() (nel caso ti desse problemi).
    codice:
    ... WHERE datediff('m',data,Now())<=6
    Documentazione per Access

    Riprova con queste modifiche; io sfortunatamente non conosco bene la sintassi.

  5. #15
    Eccolo dov'era!!!
    Ci si era fissati sul date() invece era da andare su now()

    codice:
    query = "SELECT * FROM tbl_sostanze WHERE datediff('m',data,Now())<=6"
    Adesso sembra che funzioni correttamente.
    Grazie a tutti

    Mems
    Pictor
    optime

    Siete stati preziosi tutti e tre. Grazie di nuovo e buon lavoro!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.