Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    restituire numero a caso

    sono sempre qui...

    vorrei sapere come posso avere un numero a caso compreso tra i miei id.


    Dim acaso
    Set acaso = dcnDB.Execute(SQL)
    Dim maxID, minID, rndID
    maxID = acaso("MaxID")
    minID = acaso("MinID")

    Randomize
    rndID = Int((maxID - minID + 1) * Rnd + minID)

    Function DiffADate()
    DiffADate = Abs (DateDiff("d", Now, now-"& rndID&"))
    End Function
    'Dim acaso
    SQL = "SELECT * FROM ricette WHERE ID="&DiffADate&" and categoriacod <> 17"


    dove sbaglio??????

    mi da questo errore:

    Tipo di errore:
    Microsoft JET Database Engine (0x80040E0C)
    Testo del comando non impostato per l'oggetto comando.
    /dia/cucina/cucina/index.asp, line 990

    la linea e questa: Set acaso = dcnDB.Execute(SQL)

  2. #2
    codice:
    <%
    'apri connessione
    sql = "SELECT MAX(id) AS idmaggiore FROM tbl"
    set rs = connessione.execute(sql)
    
    Randomize()
    estrai = int(rs("idmaggiore")*rnd())
    
    rs.close
    set rs = NOTHING
    
    sql = "SELECT TOP 1 ID FROM tbl WHERE ID>="&estrai&" ORDER BY ID"
    set rs = connessione.execute(sql)
    %>
    Non l'ho provato ma dovrebbe andare.

  3. #3
    ma modificando il codice che ho postato io non si riesce?? cioè vorrei anche sapere dove sbaglio altrimenti non imparo

  4. #4
    cambia questa:

    codice:
    rndID = Int((maxID - minID + 1) * Rnd + minID)
    con questa:

    codice:
    estrai = int(maxID*rnd())

  5. #5
    sempre il solito errore:

    ecco ilmio cod completo.

    Dim acaso
    Set acaso = dcnDB.Execute(SQL)
    Dim maxID, minID, estrai
    maxID = acaso("MaxID")
    minID = acaso("MinID")

    Randomize
    estrai = int(maxID*rnd())


    Function DiffADate()
    DiffADate = Abs (DateDiff("d", Now, now-"& estrai&"))
    End Function
    'Dim acaso
    SQL = "SELECT * FROM ricette WHERE ID="&DiffADate&" and categoriacod <> 17"

  6. #6
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    non so se in access funziona, ma potresti provare con una query inserendo TOP 1 e funzione RAND()... in questo modo ti ricavi un record a caso in modo veloce ed estrai il valore dell'id.
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  7. #7
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    rettifico:
    access non supporta la funzione RAND()
    Quì trovi un articolo se vuoi approfondire un po, ma la soluzione di supergeniux è validissima
    http://www.aspitalia.com/articoli/db/random.aspx?page=2
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  8. #8
    ho risolto però non mi ha dato il risultato che volevo

    praticamente vi spiego

    ho questo codice:

    Dim acaso
    Function DiffADate()
    DiffADate = Abs (DateDiff("d", Now, "20/06/2004"))
    End Function
    'Dim acaso
    SQL = "SELECT * FROM ricette WHERE ID="&DiffADate&" and categoriacod <> 17"
    Set acaso = dcnDB.Execute(SQL) %>

    questo codice mi fa vedere un record al giorno il problema è che se io metto solo solo 20 record nel mio db tra 20 giorni la pagina mi darà errore perchè non ci sarà nessun record da visualizzare ... non so come risolvere questo problema ho provato a mettere

    ("d", Now, now-1)) ma logicamente mi da sempre lo stesso risultato
    ho messo
    ("d", Now, now-numeroacaso)) numeroacaso è una variabile

    ma ogni volta che aggiorno mi cambia il recod non si come potrei fare... avevo già fatto un post del genere ma non ho avuto risp...

  9. #9
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    ricapitolando:
    tu vuoi che ogni giorno, uno stesso record venga selezionato. Al cambio del giorno, si passa alla selezione di un nuovo record diverso dal precedente... ma allora, non centra nulla con la selezione casuale di un record ad ogni apertura di pagina? tra un po mi incarto, meglio che non vado oltre :gren:
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  10. #10
    esatto ogni giorno in record diverso ... il numero a caso era una prova che volevo fare ...

    il codice sopra funzia ma se dovrei aggiornare continuamente la data 20/06/2004 a mano vorre qualcosa di automatico... non so come si potrebbe fare?

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.