Visualizza maschera all'avvio

di
Anonimizzato8433
il
29 risposte

29 Risposte - Pagina 2

  • Re: Visualizza maschera all'avvio

    Philcattivocarattere ha scritto:


    mazda91 ha scritto:


    Ciao a tutti,
    come dicevo provo da tempo (senza riuscirvi e per mia - evidentemente - incapacità) a bloccare mediante pulsante (Si/No) le modifiche a un record. L'idea è che una volta inseriti tutti i campi l'utente con il flag su Pratica evasa impedisca la modifica di quel record ma passando a un altro che non abbia il flag (Pratica evasa) su Si possa effettuare delle modifiche. ..
    ...
    Ho abbozzato questo ma ho già visto che ha dei "difetti"
    Private Sub Form_Current()
    Dim blnConsenti As Boolean
    blnConsenti = Not Me.CampoStatoPratica
    Me.AllowAdditions = blnConsenti
    Me.AllowDeletions = blnConsenti
    Me.AllowEdits = blnConsenti
    End Sub
    Il primo difetto rilevato (proprio in questo momento, il codice l'avevo già improntato ieri, lasciando poi decantare le idee) è che una volta selezionato il CampoStatoPratica, il blocco si ottiene solo dopo aver cambiato record. Ho già qualche idea... come dicevo prima: procedere a passi, ma ci si arriva.

    Philcattivocarattere ha scritto:


    secondo, immenso, difetto: una volta bloccato tutto non si riesce più a sbloccare niente e non è poco. Quindi il blocco dovrebbe riguardare controlli specifici e non l'intera maschera.
    Aggiungendo un pulsante Sblocca con questo evento
    Private Sub Sblocca_Click()
    Me.AllowAdditions = Not Me.AllowAdditions
    Me.AllowDeletions = Not Me.AllowDeletions
    Me.AllowEdits = Not Me.AllowEdits
    End Sub
    il secondo difetto sparisce. Sto mettendo troppa carne (codice) al fuoco. Pausa di riflessione.
  • Re: Visualizza maschera all'avvio

    ByProgrammer ha scritto:


    metti il codice sullevento click di si np
    Su quello scrivo
    Private Sub PraticaChiusa_Click()
    Me.AllowAdditions = Not Me.PraticaChiusa
    Me.AllowDeletions = Not Me.PraticaChiusa
    Me.AllowEdits = Not Me.PraticaChiusa
    Me.Refresh
    End Sub
    così appena si modifica nella maschera il campo PraticaChiusa (che è boolean) il blocco è immediato (grazie al refresh), senza bisogno di passare ad un altro record. Ora faccio un messaggio riepilogativo.
  • Re: Visualizza maschera all'avvio

    Riassumendo: PraticaChiusa è il campo boolean, Sblocca è un pulsante non associato
    Private Sub Form_Current()
    Me.AllowAdditions = Not Me.PraticaChiusa
    Me.AllowDeletions = Not Me.PraticaChiusa
    Me.AllowEdits = Not Me.PraticaChiusa
    End Sub
    
    Private Sub Sblocca_Click()
    Me.AllowAdditions = Not Me.AllowAdditions
    Me.AllowDeletions = Not Me.AllowDeletions
    Me.AllowEdits = Not Me.AllowEdits
    End Sub
    
    Private Sub PraticaChiusa_Click()
    Me.AllowAdditions = Not Me.PraticaChiusa
    Me.AllowDeletions = Not Me.PraticaChiusa
    Me.AllowEdits = Not Me.PraticaChiusa
    Me.Refresh
    End Sub
    A questo punto non serve il ciclo sui singoli controlli, per decidere quali bloccare/sbloccare. Per completezza, la fonte del pulsante Sblocca è qui
    http://forum.masterdrive.it/access-79/blocca-sblocca-maschera-tramite-casella-controllo-65883/. Ora mi fermo davvero.
  • Re: Visualizza maschera all'avvio

    Rieccomi,
    intanto grazie delle vostre risorse messe a disposizione.
    Credo poter abbinare (ma non mi riesce) la condizione del pulsante booleano al blocca/sblocca modifica/aggiunta maschera. Secondo me dovrebbe essere possibile al flag (Si) del pulsante 'Pratica evasa' bloccare la modifica di tutti i campi di quel record (in totale sono 15) mentre se il pulsante è non flaggato si dovrebbe poter modificare il contenuto dei campi. Al passaggio a record Nuovo il flag dovrebbe settato su No così da poter inserire nuovo record. Sui record precedenti, conseguentemente, dovrebbe consentire modifiche solo se flag fosse su No.
    Spero di essere stato chiaro.
  • Re: Visualizza maschera all'avvio

    mazda91 ha scritto:


    ...Credo poter abbinare (ma non mi riesce) la condizione del pulsante booleano al blocca/sblocca modifica/aggiunta maschera...
    Nella mia proposta c'è la presenza di un pulsante "normale", non collegato al campo dello stato della pratica (perché c'è un campo che memorizza lo stato della pratica chiusa sì/no, vero? perché è logico che ci sia). In presenza di quel campo impostato a Sì, non è permessa alcuna modifica. La pressione del pulsante che ho chiamato Sblocca pur non modificando lo stato della pratica (che resta quindi su Sì) consente di modificare il record corrente.
    Prova quello che ho scritto, poi aggiustiamo il tiro dove serve (in base a quello che chiedi nell'ultimo post... dovresti già riuscire a fare parecchio, almeno nei miei test).
    Meglio ancora, sostituisci la parte del codice sull'evento click del pulsante Sblocca che avevo scritto ieri con questo
    Private Sub Sblocca_Click()
    Me.AllowAdditions = True
    Me.AllowDeletions = True
    Me.AllowEdits = True
    Me.Refresh
    End Sub
    così il pulsante non può bloccare una cosa sbloccata (cosa che invece avveniva, prima)
  • Re: Visualizza maschera all'avvio

    Ciao Philcattivocarattere ,
    ho usato il tuo codice e tutto funziona al meglio. Quindi grazie. Ora ti chiedo, visto, che così non è possibile passare a Nuovo Record perché tale procedura è bloccata pensi sia risolvibile e poi pensi sia possibile fare in modo che l'azione Sblocca venga attivata dalla deselezione del pulsante booleano. Così quando e flaggato blocca quando non lo è non blocca.
    Grazie
  • Re: Visualizza maschera all'avvio

    mazda91 ha scritto:


    Ciao Philcattivocarattere ,
    ho usato il tuo codice e tutto funziona al meglio. Quindi grazie. Ora ti chiedo, visto, che così non è possibile passare a Nuovo Record perché tale procedura è bloccata pensi sia risolvibile e poi pensi sia possibile fare in modo che l'azione Sblocca venga attivata dalla deselezione del pulsante booleano. Così quando e flaggato blocca quando non lo è non blocca.
    Grazie
    Nella foga di produrre codice e soluzioni mi sono dimenticato di "revocare" uno dei suggerimenti di partenza: le 3 proprietà della maschera Immissione dati, Consenti aggiunte e Consenti eliminazioni ora vanno impostate su Sì, poi ci pensa il resto del codice a gestire "i permessi". Riprova, se non era così, e fammi sapere.
    Riesci a postare anche un'immagine della maschera, così ho le idee più chiare e finalmente capisco cos'è il pulsante booleano?
  • Re: Visualizza maschera all'avvio

    Non mi riesce di allegare un file immagine mi appare il messaggio:

    "L’immagine deve essere larga almeno 0 pixel, alta almeno 0 pixel, al massimo larga 700 pixel e alta 2000 pixel. L’immagine proposta è larga 786 pixel ed alta 540 pixel."

    e non ne riesco a venire a capo. Ad ogni modo il pulsante booleano e semplicemente un pulsante, creato in tabella, del tipo Si/No e che poi mi trovo in maschera. Lo vorrei selezionare con flag quando la pratica e chiusa, finita o altrimenti lasciata senza flag così da tenere le pratiche aperte ben visibili e "lavorabili".
  • Re: Visualizza maschera all'avvio

    mazda91 ha scritto:


    ... Ad ogni modo il pulsante booleano e semplicemente un pulsante, creato in tabella, del tipo Si/No e che poi mi trovo in maschera. Lo vorrei selezionare con flag quando la pratica e chiusa, finita o altrimenti lasciata senza flag così da tenere le pratiche aperte ben visibili e "lavorabili".
    e questo già dovrebbe avvenire in base a quello che ti ho scritto.
  • Re: Visualizza maschera all'avvio

    mazda91 ha scritto:


    Non mi riesce di allegare un file immagine mi appare il messaggio:
    "L’immagine deve essere larga almeno 0 pixel, alta almeno 0 pixel, al massimo larga 700 pixel e alta 2000 pixel. L’immagine proposta è larga 786 pixel ed alta 540 pixel."
    Allora carico la "mia versione". Ho lasciato solo il campo PraticaChiusa perché è l'unico che interessa, qui. Gli altri li ho tolti dall'immagine per renderla più leggera.
    Allegati:
    Bozza di maschera
    Bozza di maschera
  • Re: Visualizza maschera all'avvio

    mazda91 ha scritto:


    ho una maschera che viene caricata all'apertura del db, vorrei fare in modo che all'apertura venisse aperta in modalità 'visualizza dati' ... come fare ?
    Che significa aprire in modalità "visualizza dati"?
    Le visualizzazioni possibili di una maschera sono "visualizzazione struttura", "visualizzazione foglio dati", "visualizzazione maschera". Quest'ultima dipende come la vedi, "maschera singola", "maschera continua", "foglio dati".
  • Re: Visualizza maschera all'avvio

    OsvaldoLaviosa ha scritto:


    mazda91 ha scritto:


    ho una maschera che viene caricata all'apertura del db, vorrei fare in modo che all'apertura venisse aperta in modalità 'visualizza dati' ... come fare ?
    Che significa aprire in modalità "visualizza dati"?
    Le visualizzazioni possibili di una maschera sono "visualizzazione struttura", "visualizzazione foglio dati", "visualizzazione maschera". Quest'ultima dipende come la vedi, "maschera singola", "maschera continua", "foglio dati".
    E' una lunga storia, che evolve in tutto il thread. Riassumendo credo che si possa dire:
    1) sola visualizzazione (senza possibilità di modifica e/o cancellazione) in base al lavore di un campo
    2) permettere queste azioni pur in presenza del blocco, su esplicita richiesta
    3) lasciare comunque la possibilità di inserire nuovi record.
    Almeno io ho impostato la soluzione così.
  • Re: Visualizza maschera all'avvio

    Eccoci ancora alle prese,
    confermo che quanto ha inteso Philcattivocarattere è corretto, cioè è quello che vorrei realizzare. Al momento (con il codice di Philcattivocarattere ) il flag della casella 'Pratica evasa' blocca qualunque modifica dei dati presenti nella maschera compreso il deflag di 'Pratica evasa'. Per ottenere le modifiche funiozna (perfettamente) il pulsante Sblocca. Vorrei fare in modo che l'azione del pulsante Sblocca fosse attivato, invece, dal deflag di 'Pratica evasa'.
    Grazie a tutti
  • Re: Visualizza maschera all'avvio

    mazda91 ha scritto:


    Eccoci ancora alle prese,
    confermo che quanto ha inteso Philcattivocarattere è corretto, cioè è quello che vorrei realizzare. Al momento (con il codice di Philcattivocarattere ) il flag della casella 'Pratica evasa' blocca qualunque modifica dei dati presenti nella maschera compreso il deflag di 'Pratica evasa'. Per ottenere le modifiche funiozna (perfettamente) il pulsante Sblocca. Vorrei fare in modo che l'azione del pulsante Sblocca fosse attivato, invece, dal deflag di 'Pratica evasa'.
    Grazie a tutti
    Ok, quindi niente pulsante separato per lo sblocco. La "mia" proposta la considero molto più comoda (perché si gestisce l'intera maschera e alcuni dei controlli su di essa presenti). Personalmente il pulsante "Sblocca" ma ovviamente è una scelta su come strutturare una maschera, che è tua, quindi "insindacabile".
    Sì può fare, sicuramente... ma a questo punto ripesco il "ciclo" sui controlli da assoggettare al blocco/sblocco. Suggerimento: cerca sul web "for each ctl in me.controls", qui e su altri forum, anche in italiano.
    Uno dei tanti (dai quali credo che prenderò spunto): http://forum.masterdrive.it/microsoft-office-access-vba-23/bloccare-caselle-testo-26283/ ma ho visto anche questo: http://www.iprogrammatori.it/forum-programmazione/access/blocca-record-corrente-t21287.html che... conosci!
  • Re: Visualizza maschera all'avvio

    Philcattivocarattere ha scritto:


    Riassumendo: PraticaChiusa è il campo boolean, Sblocca è un pulsante non associato
    Private Sub Form_Current()
    Me.AllowAdditions = Not Me.PraticaChiusa
    ...
    End Sub
    
    Private Sub Sblocca_Click()
    Me.AllowAdditions = True
    ...
    End Sub
    
    Private Sub PraticaChiusa_Click()
    Me.AllowAdditions = Not Me.PraticaChiusa
    ...
    Me.Refresh
    End Sub
    ...
    Perché bloccare anche l'inserimento di nuovi record? Per chi eventualmente prendesse spunto dal "mio" codice, le righe riferite alla proprietà AllowAdditions spariscono (e di default era già Sì, sulle proprietà della maschera)
Devi accedere o registrarti per scrivere nel forum
29 risposte