Casella Combinata - impedire inserimenti fuori lista

di il
24 risposte

24 Risposte - Pagina 2

  • Re: Casella Combinata - impedire inserimenti fuori lista

    fratac ha scritto:


    A peoposito.
    Nel vba metti anche option explicit, oltre che il compare database, altrimenti non ti avverte che non hai dichiarato le variabili.
    C'è ma per pubblicare un codice di prova ho copiato quello proposto da access
  • Re: Casella Combinata - impedire inserimenti fuori lista

    @Alex ha scritto:


    Perchè usare AfterUpdate... e non BeforeUpdate...?
    After non è annullabile, quindi l'evento è a modifica avvvenuta, il Before è annullabile... sostanzialmente è transazionale, ma se sono inibiti i valori NON in LISTA, come dovrebbe essere da richiesta, come sarà mai possibile si possa scatenare questo evento...? Si scatena il NotInList da gestire e mai l'After se si annulla.

    Secondo me vi state girando su voi stessi...!
    Non ho provato Before ma ho provato NotInList, dati i valori della lista S1, S2 Sn, se digito S parte l'elaborazione per il valore IN Lista di S1

    Faccio comunque una prova con Before anche se dall'esempio pubblicato mi sembra che con due righe ho risolto il problema.

  • Re: Casella Combinata - impedire inserimenti fuori lista

    Non c'è nessun segreto, il programma è un sistema di comande per un ristorante, i camerieri non devono perdere tempo con messaggi di errore e digitazioni sbagliate, più veloce e semplice possibile.
    a prova di idiota, col rispetto per la categoria.
    Per farVi capire con chi si ha a che fare, l'intenzione iniziale era quella di utilizzare dei monitor touch...Causa le unghie lunghe, le ragazze avevano difficoltà nell'utilizzare il touch, ho dovuto mettere mouse + tastiera.

    Quando mi hanno presentato l'anomalia del messaggio di errore per caratteri non compresi nella lista, ho risposto che è sufficiente non scrivere nulla nella combo ma SEMPLICEMENTE utilizzare i valori della tendina.
    Ecco. Ora è tutto molto più chiaro. Effettivamente anche per me è la soluzione più giusta, quella di far scegliere solo dalla tendina.
    Non ho provato Before ma ho provato NotInList, dati i valori della lista S1, S2 Sn, se digito S parte l'elaborazione per il valore IN Lista di S1

    Faccio comunque una prova con Before anche se dall'esempio pubblicato mi sembra che con due righe ho risolto il problema.
    L'ho testato anche io. Spostando il codice da te scritto da after a before. Sembra funzionare esattamente nella stessa maniera.
    Poi bisogna vedere cosa accade con gli utenti veri e propri, che di solito compiono azioni ben diverse da chi programma.
    C'è da dire che Alex ha ragione, perchè su before, puoi gestire anche l'annullamento di altri eventi in caso di problematiche dovute a questo sistema. Mentre su after, quello che è fatto è fatto. Una volta che il codice è partito, non hai modo di bloccarlo.

    A questo punto ti suggerisco una modifica. Aprire la tendina anche cliccando sulla combo e non solo sulla freccia.
    Ma... ora come ora, non saprei come procedere. Non ricordo se c'è un metodo della combobox da poter usare.
  • Re: Casella Combinata - impedire inserimenti fuori lista

    Fatto delle prove.
    Se vuoi aprire solo con un click, sull'evento mouse down o mouse up, usi il metodo Dropdown e si apre immediatamente la tendina.
    E penso che funzioni anche con il set focus.

    Impostando il drop down, praticamente puoi eliminare anche il codice in after (obefore) update e lasciare solo quello su change.
    Anche se ad ogni tentata digitazione si vede lo sfarfallio del refresch della tendina.

    Edit.

    Se metti il codice su before, con il dropdown attivato non funziona la ricerca.
    Funziona solo se hai codice su after, e se gestisci la variale di controllo sia su after che su change.
  • Re: Casella Combinata - impedire inserimenti fuori lista

    Devo eliminare la possibilità di scrivere direttamente nella casella combo...
    Su evento Keypress inserisci Keycode=0.
  • Re: Casella Combinata - impedire inserimenti fuori lista

    Mi correggo. volevo di evento KeyDown.
  • Re: Casella Combinata - impedire inserimenti fuori lista

    eddy1973 ha scritto:


    Mi correggo. volevo di evento KeyDown.
    Ecco, moh arriva lui, bello bello, dopo due giorni.... e ci fa fare una figurademm.....

    Ecco, vedi quello che succede a non pensare alle cose semplici.
    Tra parentesi non mi ricordavo proprio.

    Grazie.
    Comunque nulla toglie che l'accrocco a cui abbiamo pensato, non possa portare ad altri utilizzi.
    Ti ringrazio di nuovo.
    Dovrò ripassare tutta la parte dei Key e dei vecchi codici asci.

    Tra parentesi con il keydown si potrebbero creare anche delle scorciatoie veloci per richiamare i prodotti senza dover accedere alla tendina.
  • Re: Casella Combinata - impedire inserimenti fuori lista

    eddy1973 ha scritto:


    Su evento Keypress inserisci Keycode=0.
    In effetti è la soluzione più immediata

    Però lascio quella con Before piuttosto che After perchè esteticamente, a mio parere, migliore.

    ...E mi tengo il Keypress che sicuramente mi ritorna utile.

    Avendo scritto tutto il programma (due volte) come se fosse un tema è un miracolo che funzioni, man mano che ho tempo e arrivano segnalazioni mi preoccupo di dargli un senso di decenza.

    In realtà è già da tempo che sto valutando un porting in java per gli evidenti limiti estetici/funzionali di access
    ma non essendo un prodotto commercializzato ogni volta che mi prende la scimmia...La scimmia se ne va.

  • Re: Casella Combinata - impedire inserimenti fuori lista

    Ecco, moh arriva lui, bello bello, dopo due giorni....
    Mi dispiace ma non riuscivo ad accedere al forum.
  • Re: Casella Combinata - impedire inserimenti fuori lista

    eddy1973 ha scritto:


    Ecco, moh arriva lui, bello bello, dopo due giorni....
    Mi dispiace ma non riuscivo ad accedere al forum.
    Stavo scherzando.
    Anzi, come detto ti ringrazio, perchè mi hai fatto ricordare cose che non considero mai.
Devi accedere o registrarti per scrivere nel forum
24 risposte