Casella combinata e dati non in elenco

Anonimo
2011-02-21T14:14:07+00:00

Buongiorno a tutti,

ho un problema con la casella combinata.

Ho associato una casella combinata ad una query (da tabella tbl_schede) che contiene il nome delle schede e il codice corrispondente, colonna associata 1 e visualizzata 1.

Quindi in elenco ho tutti i nomi delle schede.

Nella nuova tabella (tbl_schede_lavorate) che contiene le schede che seleziono e altri dati che inserisco dal form, viene salvato il nome della scheda come testo.

Se seleziono le schede dall'elenco, tutto ok.

Ma se voglio inserire un nome di una scheda che non esiste, quando inizio a digitare le lettere mi fa scorrere le schede dell'elenco e non riesco a inserire nulla se non inizia con una lettera che non appartiene ad una scheda.

Esempio.

Voglio scrivere SALAME, digito: s, mi visualizza SCONTO, poi digito a mi visualizza AMARENA, invece dovrebbe permettermi di scrivere sa, mi scrive invece l che non corrisponde a nessuna scheda.

Come posso risolvere questo problema?

Ho provato a modificare i parametri nella sezioni Dati, ma niente.

Grazie Davide

Microsoft 365 e Office | Access | 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

3 risposte

Ordina per: Più utili
  1. Anonimo
    2011-02-21T15:48:31+00:00

    Mi dispiace, non riesco a seguirti,

    inizialmente parli di un problema con la combo. Poi dici che non hai problemi con la combo in quanto puoi scegliere i valori dall'elenco oppure inserendoli manualmente. Alla fine però mi dici che non riesci a digitare il valore che ti interessa nella combo.

    Altra cosa che mi sembra strana è quando dici che

    --

    Il mio problema è quando inserisco manualente una nuova voce, non mi lascia scrivere subito SALAME, ma premendo S compare SCONTO poi premo A e compare AMARENA, poi premo L, A, M ed E e nella casella combianta scrive solo LAME.

    --

    Ho fatto una prova con una tabella con 1 campo e 2 records contenenti rispettivamente Sconto e Amarena. Ho poi creato una maschera e al suo interno una combo avente origine la tabella. Digitando "S", compare "Sconto", poi digitando "a" (di seguito) non compare nulla. Ed è giusto così. Non capisco quindi come a te possa far vedere Amerena digitando la "a" dopo la "s" (ammesso che io abbia interpretato correttamente). Hai per caso abilitato qualche evento delle combo?

    David

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2011-02-21T15:27:23+00:00

    Ciao David,

    avevo trovato nel forum un thread che parlava di questo.

    Mi sono spiegato male, scusate, il contenuto della mia casella combinata, che posso scegliere dall'elenco o inserendo manualmente, va a inserirsi in una campo di testo di un'altra tabella, non quella delle schede.

    Non ho interesse a salvare la schede inserita a mano tra le schede dell'elenco per un uso futuro.

    Il mio problema è quando inserisco manualente una nuova voce, non mi lascia scrivere subito SALAME, ma premendo S compare SCONTO poi premo A e cmpare AMARENA, poi premo L, A, M ed E e nella casella combianta scrive solo LAME.

    Grazie

    Davide

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2011-02-21T14:58:19+00:00

    Ciao Davide,

    • verifica che la query sottostante la combo non sia in sola lettura (ovvero che ti consenta di editare i records)
    • successivamente verifica che la proprietà "solo in elenco" della combo sia impostata a NO
    • infine utilizza l'evento "Su non in elenco" per gestire il nuovo valore da inserire nella combo

    Di seguito l'esempio tratto dall'help di access che ti illustra come aggiungere il nuovo valore digitato nella combo "Colors":


    Private Sub Colors_NotInList(NewData As String, _

    Response As Integer)  
    

    Dim ctl As Control

    ' Return Control object that points to combo box.

    Set ctl = Me!Colors

    ' Prompt user to verify they wish to add new value.

    If MsgBox("Value is not in list. Add it?", _

     vbOKCancel) = vbOK Then  
    
    ' Set Response argument to indicate that data  
    
    ' is being added.  
    
    Response = acDataErrAdded  
    
    ' Add string in NewData argument to row source.  
    
    ctl.RowSource = ctl.RowSource & ";" & NewData  
    

    Else

    ' If user chooses Cancel, suppress error message

    ' and undo changes.

    Response = acDataErrContinue  
    
    ctl.Undo  
    

    End If

    End Sub


    David

    La risposta è stata utile?

    0 commenti Nessun commento