Condividi tramite

Access ComboBox: ricerca dati "tipo rubrica del cellulare"

Anonimo
2017-01-02T20:05:42+00:00

Buonasera,

mi è stato un po' difficile trovare un "Oggetto" che facesse capire la domanda, ma forse quello che ho trovato è sufficientemente chiaro.

Praticamente, il problema è questo: ho costruito per un mio amico/cliente un’applicazione Access (lui ha ancora la versione 2007) in cui c’è una casella combinata con i cognomi e nomi dei suoi clienti. Digitando il primo carattere del cognome, la combo si posiziona sul primo cognome corrispondente. Lui però mi dice: “Talvolta ricordo il nome della persona che ho di fronte e non trovo molto carino chiederle il suo cognome (sembrerebbe che non mi ricordo chi è! I commercianti sono sensibili a questi argomenti!). Potresti fare una ricerca del tipo rubrica telefonica del cellulare, per cui quando scrivo una lettera mi compaiono i cognomi/nomi che contengono la lettera stessa (o gruppo di lettere), come succede per la rubrica telefonica del cellulare?”.

Ci ho pensato un po’, ma non mi sono venute in mente soluzioni adeguate.

Grazie in anticipo per la consueta disponibilità

Ivo

Microsoft 365 e Office | Accesso | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

  1. Anonimo
    2017-01-03T11:19:10+00:00

    ciao Ivo53,

    prova una cosa del genere...

    tabella cliente di NorthWind, così' puoi facilmente replicare il tutto.

    Maschera con questi controlli

    comboBox cboCliente con questo rowSource :

    SELECT  Clienti.NomeSocietà, Clienti.Indirizzo FROM Clienti;

    ed espansione automatica a no

    una textBox txtindirizzo  non associata.

    su evento change della combo :

    Private Sub cboCliente_Change()

    Me.cboCliente.RowSource = getR(Me.cboCliente.Text)

    End Sub

    richiami la funzione getR che riassegna il rowSource della combo box in questo modo :

    Private Function getR(ByVal strstring As String) As String

    Dim strSql As String

    strSql = "select nomeSocietà, indirizzo from clienti where nomeSocietà like '*" & Replace(strstring, "'", "''") & "*'"

    getR = strSql

    End Function

    dopo aggiornamento della combo invoco :

    Private Sub cboCliente_AfterUpdate()

    Me.txtIndirizzo = Me.cboCliente.Column(1)

    End Sub

    supponi di cercare Centro comercial Moctezuma, di cui ricordi solo centro per esempio

    digiti centro, digiti invio, non visualizzi nulla nella textBox indirizzo, ma se clicchi nel menu a tendina trovi il cliente Centro comercial Moctezuma lo clicci e ti appare l'indirizzo.

    In pratica l'indirizzo serve come controprova della corretta digitazione del nome, se corretto visualizzi l'indirizzo e altrimenti null, o meglio, finchè il nome cercato non è corretto l'indirizzo non compare.

    Se nell'esempio precedente digiti solo centro nelle combo trovi tutti i clienti che hanno nella loro ragione sociale la parola centro, tra cui anche quello che stai cercando...e così' via per gli altri...

    HTH.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2017-01-08T12:13:08+00:00

    Grazie, Mimmo e Sandro.

    Ho optato per una text-box cui associo, nell'evento "su modifica", la "Requery" dei dati, visualizzati in una List-Box (anzichè una Combo-Box). La Query origine dei dati è - ovviamente - una "Query parametrica" con parametro "Like *text-box*", per cui nella List-Box compaiono solo i nominativi simili (*Like)*ai dati inseriti nella Text-Box.

    Ho quindi scartato la Combo, inizialmente usata proprio per facilitare l'individuazione del nominativo da cercare.

    La soluzione adottata mi sembra quella che meglio risponde alle esigenze del cliente.

    Grazie ancora e buon lavoro (e buon 2017!)

    Ivo

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2017-01-03T09:06:09+00:00

    Ciao Ivo,

    con la sola combo non puoi.

    potresti aggiungere una text-box per acquisire la stringa da cercare e un pulsante per applicare il filtro. A quel punto il row-source della combo deve filtrare con una Like il Cognome e Nome (con * prima e dopo la stringa da cercare).

    Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento