[Access2013] Filtrare dinamicamente combo digitando

di il
8 risposte

[Access2013] Filtrare dinamicamente combo digitando

So che digitando in una ComboBox viene evidenziata la prima voce corrispondente alle lettere immesse.
Ma rimangono anche tutte le altre voci. Vorrei che nella tendina venissero mostrate solo le voci che contengono i caratteri immessi. Come si fa?

8 Risposte

  • Re: [Access2013] Filtrare dinamicamente combo digitando

    Su change devi andare a filtrare la RowSource componendo un criterio usando LIKE ' & Digitato & *'

    Leggi la proprietà TEXT.
  • Re: [Access2013] Filtrare dinamicamente combo digitando

    Non funziona.
    In Cbo_Change modifico RowSource aggiungendo LIKE Me.Cbo.Text ma ha due effetti collaterali: la tendina viene chiusa e quando la riapro è vuota, anche se ho digitato valori corrispondenti ad item.
    Ho pensato occorresse aggiungere Requery ma ottengo Errore di run-time 2118: è necessario salvare il campo corrente prima di eseguire l'azione RieseguiQuery.
  • Re: [Access2013] Filtrare dinamicamente combo digitando

    Che si richiuda la tendina è normale, ma si può riaprire.
    Non serve il requery.
    Funziona se lo fai giusto, come tutte le cose.

    Ora se non pubblichi il codice che hai scritto... non riusciamo a capire dove sbagli.
  • Re: [Access2013] Filtrare dinamicamente combo digitando

    AP314 ha scritto:


    Non funziona.
    In Cbo_Change modifico RowSource aggiungendo LIKE Me.Cbo.Text ...
    Hai aggiunto, come suggerito da Alex, '*' alla fine?
    Ovvero : LIKE ' & Digitato & *'
  • Re: [Access2013] Filtrare dinamicamente combo digitando

    Ho fatto
    Me.Cbo.RowSource = "SELECT ID, Cognome &"", ""& Nome as CN, Nome, Cognome FROM Persone WHERE CN LIKE ""*" & Me.Cbo.Text & "*"" ORDER BY Cognome, Nome;"
    e anche Me.Cbo.RowSource = "SELECT ID, Cognome &', '& Nome as CN, Nome, Cognome FROM Persone WHERE CN LIKE '*" & Me.Cbo.Text & "*' ORDER BY Cognome, Nome;"
    il risultato è quello: tendina vuota. Se cerco di modificare un valore già esistente e digito caratteri che lo compongono, l'autocompletamento me lo ripropone, ma sempre con tendina vuota. Se parto da un valore vuoto o digito altri caratteri in un valore già pieno la tendina rimane vuota.
    La larghezza colonne è: 0cm;0,002cm;2cm;2cm
    Un altro Cbo che non è composto invece funziona correttamente. Ora suppongo che essere un campo composto sia importante, scusate.
  • Re: [Access2013] Filtrare dinamicamente combo digitando

    CN che ricavi come ALIAS dell'aggregazione è valido SOLO come elenco campi, nella WHERE non puoi far riferimento all'ALIAS ma devi mettere [Cognome &', '& Nome LIKE ...]
  • Re: [Access2013] Filtrare dinamicamente combo digitando

    Grazie.
  • Re: [Access2013] Filtrare dinamicamente combo digitando

    AP314 ha scritto:


    ...Ora suppongo che essere un campo composto sia importante,
    Campo composto? cos'è questa brutta cosa?
Devi accedere o registrarti per scrivere nel forum
8 risposte