Visualizzazione dei risultati da 1 a 8 su 8

Discussione: errore ciclo con date

  1. #1
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427

    errore ciclo con date

    for k = #'"&request("data1")&"'# to #'"&request("data2")&"'# step 1


    errore:

    Errore di compilazione di Microsoft VBScript (0x800A03EA)
    Errore di sintassi
    /miosito/gestione/insert.asp, line 800, column 8
    for k = #'"&request("data1")&"'# to #'"&request("data2")&"'# step 1
    -------^


    ho provato anche con

    for k = "&request("data1")&" to "&request("data2")&" step 1

    e

    for k = #"&request("data1")&"# to #"&request("data2")&"# step 1


    sempre in errore...

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao agenti,

    il ciclo for funziona con variabili di tipo intero.
    non funziona da data a data
    non funziona da stringa a stringa
    il cancelletto è un carattere che puoi usare dentro una stringa, come codice VBScript non esiste

    credo che tu voglia fare un cliclo che va da un giorno di una data ad un altra... è così?
    data1 e data2 sono stringhe che rappresentano date... ma in che formato? gg/mm/aaaa?

  3. #3
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    facciamo che il formato delle date sia gg/mm/aaaa
    per fare il ciclo for potresti fare così
    codice:
    if Request("data1")<>"" and Request("data2")<>"" then
      aData1 = Split(Request("data1"),"/")
      aData2 = Split(Request("data2"),"/")
      data1 = DateSerial(aData1(2),aData1(1),aData1(0))
      data2 = DateSerial(aData2(2),aData2(1),aData2(0))
      giorni = DateDiff("d",data1,data2)
      for i=0 to giorni
        Response.Write data1 & "
    "
        data1=DateAdd("d",1,data1)
      next
    end if
    oppure potresti fare anche un altro tipo di ciclo
    codice:
    if Request("data1")<>"" and Request("data2")<>"" then
      aData1 = Split(Request("data1"),"/")
      aData2 = Split(Request("data2"),"/")
      data1 = DateSerial(aData1(2),aData1(1),aData1(0))
      data2 = DateSerial(aData2(2),aData2(1),aData2(0))	
      do while data1<=data2
        Response.Write data1 & "
    "
        data1=DateAdd("d",1,data1)
      loop
    end if

  4. #4
    Perchè metti il carattere cancelletto # prima e dopo la data?
    Mica stai trattando la data dentro una query SQL in Access...

  5. #5
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    for k = cdate(request("data1")) to cdate(request("data2")) step 1

    cosi va..

    grazie.

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Originariamente inviato da willybit
    non funziona da data a data
    ero convinto... lo davo per scontato...

    quindi step 1 significa step un giorno... e se uno volesse step un'ora?

    evabbe' non se finisce mai de scopri' cose nuove

  7. #7
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    se al posto di valore data1 ci fosse un valore "time" sicuramente aumenterebbe di un ora...

    ho un altro problema sempre in questo ciclo...

    =======================================
    =======================================
    for k = cdate(request("data1")) to cdate(request("data2")) step 1
    dayArray=split(request("day"),",")

    For i=0 to UBound(dayArray)
    response.write dayArray(i) & " " & weekday(k) & "
    "
    if cstr(dayArray(i))= cstr(weekday(k)) then
    'eseguo query
    SQL = "INSERT INTO"
    response.write sql & "
    "
    end if
    next

    next

    ho provato con 2 semplici date:

    dal 20/05/05 al 30/05/05


    il risultato a video è:

    1 6
    6 6
    1 7
    6 7
    1 1
    INSERT INTO
    6 1
    1 2
    6 2
    1 3
    6 3
    1 4
    6 4
    1 5
    6 5
    1 6
    6 6
    1 7
    6 7
    1 1
    INSERT INTO
    6 1
    1 2
    6 2

    coem vedete stranamente non effettua la query quando i valori 6 & 6 concidono.

    ovviamente i valori della prima colonna da sx sono
    A) il giorno richiesto per il controllo
    B) il giorno nel ciclo...

    per farvi capire meglio

    1 20/05/2005
    6 20/05/2005
    1 21/05/2005
    6 21/05/2005
    1 22/05/2005
    INSERT INTO
    6 22/05/2005
    1 23/05/2005
    6 23/05/2005
    1 24/05/2005
    6 24/05/2005
    1 25/05/2005
    6 25/05/2005
    1 26/05/2005
    6 26/05/2005
    1 27/05/2005
    6 27/05/2005
    1 28/05/2005
    6 28/05/2005
    1 29/05/2005
    INSERT INTO
    6 29/05/2005
    1 30/05/2005
    6 30/05/2005

    ovviamente sia il 22 che il 29 maggio hanno valore "1" = domenica
    e quindi sia tiva anche la query...

    ma dovrebbe succedere anche per il 20/05/05 valore "6" e il 27/05/05 valore "6" alias venerdi.
    invece no !!!!

  8. #8
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    up

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.