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

    filtrare piu colonne con form

    Salve a tutti!

    Devo filtrare un acces database tramite una pag.asp

    Finche si tratta di filtrare tutti i record di una colonna va bene, la la questione si complica
    quando voglio filtrare più colonne presenti nella stessa tabella.

    Cioè trattandosi di una database che contiene informazioni sui libri,

    vorrei filtrare ad es.:

    Tutti i records di Tabella Where colonna1 LIKE a And colonna2 LIKE b AND .............

    ho provato con

    sqlstring3 = "SELECT * FROM tabella WHERE campo1 like a AND campo2 like b AND ORDER BY campo1 ASC "

    in cosa sbaglio?
    si possono usare piu WHERE all'interno di una query ?

    Aiutatemi please!!
    nella vita l'importante e' non prendersela......ma provare a farsela dare....

  2. #2
    Usa = al posto di LIKE
    a e b vanno tra apici singoli 'a' ... 'b'
    Per il resto la sintassi è corretta.

    A questo punto dipende da cosa vuoi ottenere...

  3. #3
    in realtà, nel post precedente ho semplificato il codice.....

    in effetti ho bisogno di filtrare le colonne in base alle scelte di un utente
    quindi tramite i campi di un form.

    questa la query che però mi da errore

    sqlstring3 = "SELECT * FROM " & tabella & " WHERE " & chiave & " like '" & words & "%' AND " & chiave2 & " like '" & words2 & "%' AND " & chiave3 & " like '" & words3 & "%' AND " & chiave4 & " like '" & words4 & "%' ORDER BY " & chiave & " ASC "


    forse è un errore di sintassi?
    nella vita l'importante e' non prendersela......ma provare a farsela dare....

  4. #4
    E l'errore che dice?
    Vediamo un po...
    codice:
    sqlstring3 = "SELECT * FROM " & tabella & " WHERE " & chiave & " like '" & words & "%' AND " & chiave2 & " like '" & words2 & "%' AND " & chiave3 & " like '" & words3 & "%' AND " & chiave4 & " like '" & words4 & "%' ORDER BY " & chiave & " ASC "
    response.write sqlstring3
    response.end

  5. #5
    allora..

    inserendo nel form della pagina la lettera "u" in ognuno dei 4 campi chiave mi restituisce

    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi (operatore mancante) nell'espressione della query 'genere like 'u%' AND like '%' AND like 'u%' AND like 'u%''.
    nella vita l'importante e' non prendersela......ma provare a farsela dare....

  6. #6
    Originariamente inviato da bronz
    allora..

    inserendo nel form della pagina la lettera "u" in ognuno dei 4 campi chiave mi restituisce

    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi (operatore mancante) nell'espressione della query 'genere like 'u%' AND like '%' AND like 'u%' AND like 'u%''.
    Mancano parti della query.
    Mostra tutta la pagina, please... così a rate non ci si capisce una ceppa.

  7. #7
    hai ragione
    nella vita l'importante e' non prendersela......ma provare a farsela dare....

  8. #8
    NOTA questo codice è processato da un semplice form con 4 campi input:

    autore
    editrice
    titolo
    genere

    Ecco il codice


    <%
    Response.Buffer=true


    autore = request.querystring ("autore")
    editrice = request.querystring ("edirice")
    titolo = request.querystring ("titolo")
    genere = request.querystring ("genere")
    testo= "testo"
    tabella = "libreria"
    nome_database = "db1.mdb"

    if autore <> "" then
    chiave = "autore"
    words = autore
    end if

    if editrice <> "" then
    chiave = "editrice"
    words2 = editrice
    end if

    if titolo <> "" then
    chiave = "titolo"
    words3 = titolo
    end if

    if genere <> "" then
    chiave = "genere"
    words4 = genere
    end if

    if chiave <> "" then

    Set Con = Server.CreateObject("ADODB.Connection")
    Con.ConnectionTimeout=40
    Con.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath( nome_database )
    Set rs=Server.CreateObject("ADODB.Recordset")


    'sqlstring3 = "SELECT * FROM " & tabella & " WHERE " & chiave & " like '" & words & "%' AND " & chiave2 & " like '" & words2 & "%' AND " & chiave3 & " like '" & words3 & "%' AND " & chiave4 & " like '" & words4 & "%' ORDER BY " & chiave & " ASC "

    Set rs = Con.execute(sqlstring3)

    do While NOT RS.EOF
    nome =RS(chiave)
    response.write("<tr><td>-<a style='color:navy' href="&nome&">")
    response.write(nome)
    response.write("</a></td></tr>")
    RS.movenext

    loop

    end if
    %>
    nella vita l'importante e' non prendersela......ma provare a farsela dare....

  9. #9
    'sqlstring3 = "SELECT * FROM " & tabella & " WHERE " & chiave & " like '" & words & "%' AND " & chiave2 & " like '" & words2 & "%' AND " & chiave3 & " like '" & words3 & "%' AND " & chiave4 & " like '" & words4 & "%' ORDER BY " & chiave & " ASC "

    response.write sqlstring3
    response.end

    Oggi guarda la tua query completa a video e vedi se manca qualcosa...

  10. #10
    comunque grazie per l'aiuto...

    ma non ho capito scusami....

    devo stampare a video la query con

    response.write sqlstring3
    response.end


    ?
    nella vita l'importante e' non prendersela......ma provare a farsela dare....

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.