Problema con sintassi di query

di
Anonimizzato15026
il
8 risposte

Problema con sintassi di query

Ho un database contenete le password di vari siti web.
Vorrei fare una query dove impostare solo alcune lettere del nominativo del sito web per selezionare il record relativo.
Ad es. per il sito web "IProgrammatori" vorrei poter scrivere "ip" oppure "ipr" e far apparire il record con il nominativo, la password e quant'altro..
Gradirei sapere come fare.
Grazie per l'aiuto

8 Risposte

  • Re: Problema con sintassi di query

    Ciao devi usare l'operatore "LIKE".
  • Re: Problema con sintassi di query

    Certo, l'operatore è "Like".
    Però non so la sintassi relativa alla variabile.
    Nella query ho inserito un campo "Raggruppamento" che ho chiamato Ricerca.
    Nel campo "Sito Web" nei criteri ho scritto "Like [Ricerca]". Quando lancio la query mi domanda la "Ricerca".
    Con questa sintassi,però, se non scrivo per intero il nome del sito web il risultato è zero.
    Ho creato un campo indice con l'iniziale del sito web e facendo una query con "like" su questo campo in effetto mi vengono fuori tutti i records che iniziano con quella lettera.
    Ma io cercavo una soluzione più elegante, dove alla fine mi vengano fuori solo uno o due records.
    Spero di essermi spiegato.
    Ringrazio per la risposta.
  • Re: Problema con sintassi di query

    Non si e' capito mica quello che stai chiedendo!

    A naso direi che stai sbagliando l'uso dell'operatore LIKE

    Se scrivi, ad esempio

    SELECT url FROM websites WHERE url LIKE 'googl'


    dove il nome della tabella e' "websites" e la colonna "url", per cercare tutti i siti che contengono la string "googl", NON FUNZIONA.


    Devi scrivere:

    SELECT url FROM websites WHERE url LIKE '%googl%'


    Ci sarebbe anche un'altra possibilita': l'uso dell'operatore CONTAINS e il supporto alla ricerca FullText, ma probabilmente e' pure eccessivo.
  • Re: Problema con sintassi di query

    Attenzione che il JOLLY nella sintassi SQL per Access è differente a seconda del DRIVER di utilizzo verso JET.

    Se si usa DAO come peraltro standard in Access-JET il Jolly è [*]
    Se si usa ADO tuttavia non consigliabile in Access(mdb o accdb) per il fatto che Nativamente Access usa DAO per il Databound, quindi si impone una conversione implicita del Recordset non funzionale, allora il Jolly è [%]

    Questo discorso non vale per i PROGETTI di Access (ADP) completamente svincolati da DAO.
  • Re: Problema con sintassi di query

    Grazie per le risposte. In effetti, con LIKE posso solo ottenere l'elenco di tutti i siti web che iniziano con la variabile Indice. A occhio, mi servirebbe un comando tipo CONTAINS o meglio ancora BEGINS WITH per ottenere una selezione più ristretta di records.
    Però non ho idea se esistono questi comandi e come usarli.
    Grazie ancora
  • Re: Problema con sintassi di query

    con LIKE posso solo ottenere l'elenco di tutti i siti web che iniziano con la variabile Indice.
    La variabile indice?

    Se concateni l'asteresco al valore che passi all'operatore "like", selezioni tutti i record il cui contenuto nella colonna in questione inizia per il valore che passi.
  • Re: Problema con sintassi di query

    Mi rendo conto che non mi sono spiegato molto bene e d'altro canto non vorrei abusare della vostra cortesia.
    Spiego quindi esattamente qual'è il mio problema.
    Il database si chiama "TUTTIACCOUNT"
    i CAMPI SONO:
    SERVIZIO (IL NOME DEGLI url)
    USER ID
    PASSWORD
    ESPR1 (l'indice degli URL; vale a dire AMAZON = a, IProgrammatori=i, ETC.)
    VARIE

    Con questa query:

    SELECT TuttiAccount.Servizio, TuttiAccount.[User Id], TuttiAccount.Password, TuttiAccount.Varie
    FROM TuttiAccount
    GROUP BY TuttiAccount.Servizio, TuttiAccount.[User Id], TuttiAccount.Password, TuttiAccount.Varie, TuttiAccount.Espr1
    HAVING (((TuttiAccount.Espr1)=[INDICE]))
    ORDER BY TuttiAccount.Servizio;

    quando lancio la query, mi appare un box "INDICE" nel quale digito ad es. "F" e vengono fuori tutti i records relativi agli URL che iniziano per F.
    E fin qui è tutto chiaro.
    Io vorrei un altro tipo di query dove digitando ad. es "FA" mi vengono fuori solo FACEBOOK e FAXATOR.
    Tutto qui.
    Spero che sia chiaro e che possiate darmi una mano.
    Grazie ancora.
  • Re: Problema con sintassi di query

    Se può interessarti, io per effettuare una ricerca simile ho fatto così:
    in una maschera ho inserito una casella di testo che ho chiamato ricerca1 e una casella di riepilogo chiamata ricerca2; sull'evento "su modifica" di ricerca1 ho inserito questo codice:
    Private Sub ricerca1_Change()
    Dim CaratteriDigitati As String
    
        CaratteriDigitati = Nz(Me!ricerca1.Text, "")
    
       Me!ricerca2.RowSource = "SELECT ucase(ragionesociale),ID,ucase(comunesedeamm) FROM datiditta " &_ "WHERE ragionesociale LIKE '" & CaratteriDigitati & "*'order by ragionesociale"
    
    End Sub
    inserisci la tua query al posto di quella sopra, penso così
    Me!ricerca2.RowSource = "SELECT TuttiAccount.Servizio, TuttiAccount.[User Id]," &_ "TuttiAccount.Password, TuttiAccount.Varie FROM TuttiAccount WHERE TuttiAccount.Servizio" &_          "LIKE '" & CaratteriDigitati & "*' ORDER BY TuttiAccount.Servizio"
    (sistema tu gli "a capo" del codice perchè non so se sono giusti)

    Lavori poi sul n° di colonne da visualizzare nella casella di riepilogo per visualizzare quello che vuoi
Devi accedere o registrarti per scrivere nel forum
8 risposte