Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    ordinamento dopo un filtro

    ciao a tutti. oggi mi trovo a aver bisogno di un piccolo suggerimento. ho una pagina che effettua delle ricerche su un db access e visualizza i dati in una tabella.

    ho creato delle form per inserire i parametri da ricercare:

    codice:
     
    <FORM action="visualizzavds2.asp" method=POST>
    <TABLE>
    <TBODY>
    <TR>
    <TD>
    
    <font face="Verdana" size="2" color="#FF0000">ID:
    </font><font face="Verdana" size="2">
    <input type="text" name="id" size="10">
    </font></TD>
    
    <TD>
    <font face="Verdana" size="2" color="#FF0000">Anno:
    </font><font face="Verdana" size="2">
    <input type="text" name="anno" size="10">
    </font></TD>
    
    
    <TD>
    <font face="Verdana" size="2" color="#FF0000">Verificatore:
    </font><font face="Verdana" size="2">
    <input type="text" name="verificatore" size="15">
    </font></TD>
    </TR>
    
    </font>
    </TD>
    </tr>
    
    <TR align=middle>
    <TD align=right>
     </TD>
     <tr>
    <TD align=center colspan="3"><font face="Verdana" color="#000000" size="1">
    <INPUT type=submit value="Ricerca"><INPUT type=reset value="Cancella"></font></TD></TR>
    </TBODY></TABLE>
    </FORM>
    poi nella query vado ad aggiungere tutti questi parametri se sono inseriti:

    codice:
    Dim id, anno, verificatore 
    id = request.form("id")
    anno = request.form ("anno")
    verificatore =request.form ("verificatore") 
    
    
    Dim SQL ' Creo la query SQL
    sql="SELECT * FROM VDS_Generale AS A inner JOIN VDS_dettaglio AS B ON A.ID = B.ID_vds where b.azione is not null and 1=1 "
    
    'alla query aggiungo gli and relativi ai valori inseriti nelle form. se sono tutti vuoti mi visualizza tutti i valori, se sono pieni mi aggiunge solo quelli
    
    if id <> "" then 
    sql = sql & "AND id = "&id
    end if
    
    if anno <> "" then 
    sql = sql & "AND anno = "&anno
    end if
    
    if verificatore <> "" then 
    sql = sql & "AND verificatore ='"&verificatore&"' "
    end if
    e fin qui va tutto alla perfezione. se volessi che i risultati mi venissero dati in ordine rispetto all'ID come devo fare?
    ho provato a scrivere nella query

    codice:
     
    
    SELECT * FROM VDS_Generale AS A inner JOIN VDS_dettaglio AS B ON A.ID = B.ID_vds where b.azione is not null and 1=1 order by a.id
    ma il sistema si incavola perchè poi deve aggiungere dei "pezzi" di query.

    ho provato ad agiungerlo dopo gli IF ma fa altrettanto..dove sbaglio?

    grazie a tutti
    Alessandrot

  2. #2
    che errore ti restituisce?
    fatti stampare a video la query che tenta di eseguire

  3. #3
    in pratica, la query che mi restituisce si blocca al momento dell'order by.

    se lo metto nella query iniziale mi restituisce:

    codice:
     
    SELECT * FROM VDS_Generale AS A inner JOIN VDS_dettaglio AS B ON A.ID = B.ID_vds where b.azione is not null and 1=1 order by a.id
    mentre se piazzo l'order by dopo uno degli if la query mi si blocca a quel punto. ad esempio ho provato a scrivere

    codice:
     
    Dim SQL ' Creo la query SQL
    sql="SELECT * FROM VDS_Generale AS A inner JOIN VDS_dettaglio AS B ON A.ID = B.ID_vds where b.azione is not null and 1=1 "
    
    'alla query aggiungo gli and relativi ai valori inseriti nelle form. se sono tutti vuoti mi visualizza tutti i valori, se sono pieni mi aggiunge solo quelli
    
    if id <> "" then 
    sql = sql & "AND id = "&id  order by a.id 
    end if
    
    if anno <> "" then 
    sql = sql & "AND anno = "&anno
    end if
    
    if verificatore <> "" then 
    sql = sql & "AND verificatore ='"&verificatore&"' "
    end if
    e la query si blocca a quel punto. quindi pensavo ci fosse la possibilità di inserire un altro if alla fine che permette di fare l'ordinamento oppure ipotizavo ci fosse un codice "particolare" che permette di ordinare i dati..però è un pò che ci ragiono e non mi è venuta in mente nessuna idea..

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non ho ben capito... ma l'ORDER BY va alla fine quindi dopo aver fatto tutti gli IF / END IF scrivi:

    sql = sql & " order by a.id"

    Roby

  5. #5
    io ho fatto come mi hai detto tu..

    ho messo tutti gli if - then - end if e alla fine ho messo sql = sql & " order by a.id". ora i dati mi vengono ordinati ma nel momento in cui effettuo una ricerca inserendo un valore in uno dei campi della form...mi da errore! mah...evidentemente non gli piace più di tanto come ho strutturato la pagina

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Bisognerebbe vedere che errore ti da non trovi?
    Non abbiamo la palla di vetro...

    Roby

  7. #7
    apposto ho risolto

    in pratica quando scrivevo la if - then - else per un campo di tipo numkerico come ad esempio

    codice:
     if anno <> "" then 
    sql = sql & "AND anno = "&anno
    end if
    avrei dovuto scrivere (sql = sql & "AND anno = "&anno ) aggiungendo alla fine &" altrimenti la query si bloccava

    grazie a tutti per la pazienza

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.