Pulsanti blocco e sblocco record.

di il
18 risposte

Pulsanti blocco e sblocco record.

Come posso creare due pulsanti per bloccare e sbloccare i campi di una maschera, per evitare di modificare il loro contenuto accidentalmente. Inoltre posso stabilire la sequenza e l'obbligatorieta' per la compilazione dei campi di una maschera. Grazie per chi vorrà' rispondere

18 Risposte

  • Re: Pulsanti blocco e sblocco record.

    Si può fare molto, ma occorre capire meglio quale sia la tua reale conoscenza del mezzo....
    Per il blocco|sblocco ci sono molti metodi, ognuno condizionato dalla gestione tecnica dell'interfaccia e dei dati, e questo impone anche vincoli di approccio.
    Pe il secondo la questione è pur fattibile ma più complessa da ottenere tecnicamente, ed anche qui, la tua preparazione ci condiziona molto nel livello di suggerimenti da darti....
  • Re: Pulsanti blocco e sblocco record.

    Se non prendo fischi per fiaschi, vuoi provare a prendere qualche spunto da queste due precedenti discussioni?
    http://www.iprogrammatori.it/forum-programmazione/access/sbloccare-controllo-specifico-maschera-bloccata-t16668.html
    http://www.iprogrammatori.it/forum-programmazione/access/permettere-impedire-modifiche-campo-tramite-pulsante-t16657.html
  • Re: Pulsanti blocco e sblocco record.

    Ti rispondo utilizzando qualche macro.

    kar61 ha scritto:


    Come posso creare due pulsanti per bloccare e sbloccare i campi di una maschera
    1. Crea una macro in visualizzazione struttura
    2. Apri la colonna Nome macro e scrivici dentro (al primo rigo) Blocca
    3. Sullo stesso rigo Azioni, scrivi ImpostaValore e nelle proprietà in basso:
    Elemento: [Maschere]![NomeMaschera]![NomeCampo1].[Locked]
    Espressione: Vero
    4. Nel rigo successivo, a Nome macro scrivi Sblocca
    5. Sullo stesso rigo Azioni, scrivi ImpostaValore e nelle proprietà in basso:
    Elemento: [Maschere]![NomeMaschera]![NomeCampo1].[Locked]
    Espressione: Falso
    Se hai più campi da bloccare/sbloccare, aggiungi tanti ImpostaValore per i relativi Campo2, Campo3 ecc...
    6. Salva la macro con nome BS (sarebbe Blocca/Sblocca)
    7. Vai in visualizzazione struttura maschera
    8. Aggiungi 2 Pulsanti di comando [Blocca] e [Sblocca] se non li avevi già creati
    9. Vai alle Proprietà dei pulsanti e associa rispettivamente, all'Evento "Su Clic", BS.Blocca e BS.Sblocca

    kar61 ha scritto:


    posso stabilire la sequenza e l'obbligatorieta' per la compilazione dei campi di una maschera
    Per la "Sequenza" occorre andare sulle Proprietà di ogni campo, "Ordine spostamento". Devi indicare un numero progressivo a partire da 0 per ogni campo. In questo modo, ogni volta che premi il tasto TAB, il cursore salterà ordinatamente i campi secondo l'ordine stabilito da te.

    "Obbligatorietà" non ho capito cosa vuoi dire. Al limite io ci vedo delle piccole etichette vicino ai campi obbligatori, un po' come si usa per i campi obbligatori da compilare nei form sul web.
  • Re: Pulsanti blocco e sblocco record.

    Grazie per la risposta, appena finisco di lavorare provo il tutto, anche se è la prima volta che utilizzerò tale procedura. Per quanto ai campi obbligatori intendevo che alcuni o tutti i campi di una maschera dovranno essere editati in modo da non lasciare incompleti i campi che ritengo necessari per le varie query che ho creato. Nel caso di dimenticanza di questi si dovrà visualizzare un messaggio di errore indicante i campi da compilare per l'archiviazione. Spero di essere stato più chiaro. Saluti kar61
  • Re: Pulsanti blocco e sblocco record.

    Non è ancora chiarissimo. Potresti fare qualche esempio pratico?
  • Re: Pulsanti blocco e sblocco record.

    Ho una maschera con dieci campi ricavati da una tabella. Di questi 8 vorrei che fossero compilati dando una cronologia da scelta, e nel caso uno di questi non venisse compilato, il programma rilasci era' un messaggio co il nome del campo.
  • Re: Pulsanti blocco e sblocco record.

    Come ti ho gia detto si può fare molto, tuttavia non hai risposto in merito alla tua autonomia e conoscenza di base, quindi nessuna risposta che faccia perdere tempo dandoti indicazioni che tu potresti non comprendere.
    Ovvio quindi che se necessiti di codice chiavi in mano non è il modo in cui il forum supporta le domande.
  • Re: Pulsanti blocco e sblocco record.

    Ho una accettabile dimistichezza per creare tabelle,maschere, query con funzioni di default, ma non conosco il linguaggio VBA o SQL, ecco perché' chiedevo aiuto per i codici. Scusate i se è' sembrato che volessi sfruttare il forum.
  • Re: Pulsanti blocco e sblocco record.

    kar61 ha scritto:


    Ho una maschera con dieci campi ricavati da una tabella. Di questi 8 vorrei che fossero compilati dando una cronologia da scelta, e nel caso uno di questi non venisse compilato, il programma rilascera' un messaggio con il nome del campo.
    Ci sarebbe da impostare per ognuno degli 8 campi, all'evento "Dopo aggiornamento" una macro con condizione per ogni campo obbligatorio.
    1. Crea una macro con 8 Nomi macro diversi (es. Campo1, Campo2,...) e altrettante condizioni con la seguente sintassi:
    [Maschere]![NomeMaschera]![NomeCampoCorrispondente] Is Null
    oppure
    [Maschere]![NomeMaschera]![NomeCampoCorrispondente] = ""
    almeno per i campi di tipo Testo, trova un po' tu la sintassi corretta.
    2. Ad ogni condizione così impostata associa l'azione FinestraMessaggio dove puoi impostare un messaggio personalizzato.
    3. Salva la macro con nome X.
    4. Ad ogni campo obbligatorio (es. Campo2), devi associare all'evento "Dopo aggiornamento" la macro X.Campo2.
  • Re: Pulsanti blocco e sblocco record.

    La premessa non è "Sfruttare" il forum, anche se è esplicito nel regolamento che serve avere una base e non si incentiva il codice chiavi in mano.
    Il problema è più complesso anche di quanto ti ha prospettato Osvaldo, che confonde la predisposizione di spostamento con il controllo infatti l'utente manualmente può spostarsi quindi scombussolare l'ordine passivo, il controllo di validazione poi si esegue SOLO Prima di Aggiornare e non dopo, soprattutto se deve essere vincolo perché solo le azioni Prima possono essere Annullate, sono fatte apposta per questo.
    L'azione fatta Dopo valida l'immissione e poi la modifica, il campo id counter viene incrementato inutilmente, e nel caso di multiutenza assurdo.
    Il blocco dei dati per protezione ha risvolti più ampi, a seconda di come si affronta.
    Se usi la proprietà Allowedits poi non lo sblocchi con un button, essendo che l'azione della proprietà ha effetto sui comandi.
    Se invece crei un ciclo che sfrutta la proprietà looked, servono alcuni accorgimenti, come usare la proprietà Tag per definire quali sono da bloccare e quali no.
    Per la questione sequenza di compilazione si deve sempre sfruttare un ciclo, leggendo la proprietà controlindex, ma questo lo reputo un po assurdo con ulteriori complicazioni.
    Ora qual'é il problema, è che ti ho dato tutti gli elementi tecnici per capire come procedere, ma se non hai basi, come tu stesso hai detto, il tutto è incomprensibile, quindi il prossimo passo cosa fai...?
    La mia idea è che la mia risposta sarà stata una perdita di tempo per entrambi.
    Se invece mi sbaglio e ci proponi i tuoi tentativi pur con errori, ma con evidente la volontà di crescere, avrai il Massimo del supporto.
  • Re: Pulsanti blocco e sblocco record.

    OsvaldoLaviosa ha scritto:


    Ti rispondo utilizzando qualche macro.

    kar61 ha scritto:


    Come posso creare due pulsanti per bloccare e sbloccare i campi di una maschera
    1. Crea una macro in visualizzazione struttura
    2. Apri la colonna Nome macro e scrivici dentro (al primo rigo) Blocca
    3. Sullo stesso rigo Azioni, scrivi ImpostaValore e nelle proprietà in basso:
    Elemento: [Maschere]![NomeMaschera]![NomeCampo1].[Locked]
    Espressione: Vero
    4. Nel rigo successivo, a Nome macro scrivi Sblocca
    5. Sullo stesso rigo Azioni, scrivi ImpostaValore e nelle proprietà in basso:
    Elemento: [Maschere]![NomeMaschera]![NomeCampo1].[Locked]
    Espressione: Falso
    Se hai più campi da bloccare/sbloccare, aggiungi tanti ImpostaValore per i relativi Campo2, Campo3 ecc...
    6. Salva la macro con nome BS (sarebbe Blocca/Sblocca)
    7. Vai in visualizzazione struttura maschera
    8. Aggiungi 2 Pulsanti di comando [Blocca] e [Sblocca] se non li avevi già creati
    9. Vai alle Proprietà dei pulsanti e associa rispettivamente, all'Evento "Su Clic", BS.Blocca e BS.Sblocca

    kar61 ha scritto:


    posso stabilire la sequenza e l'obbligatorieta' per la compilazione dei campi di una maschera
    Per la "Sequenza" occorre andare sulle Proprietà di ogni campo, "Ordine spostamento". Devi indicare un numero progressivo a partire da 0 per ogni campo. In questo modo, ogni volta che premi il tasto TAB, il cursore salterà ordinatamente i campi secondo l'ordine stabilito da te.

    "Obbligatorietà" non ho capito cosa vuoi dire. Al limite io ci vedo delle piccole etichette vicino ai campi obbligatori, un po' come si usa per i campi obbligatori da compilare nei form sul web.
    Ciao Osvaldo, anche io avrei bisogno di aiuto.
    ho creato la macro che hai descritto, però a differenza vorrei bloccare più campi con un unico tasto blocca/slocca.
    Come faccio?
    Grazie
  • Re: Pulsanti blocco e sblocco record.

    Riscrivo tutta la procedura per non sbagliare:
    1. Crea una macro in visualizzazione struttura e apri la colonna Condizioni
    2. Nel rigo1 Condizioni, scrivi:
    [Maschere]![NomeMaschera]![NomeCampo1].[Locked]=False
    3. Sullo stesso rigo Azioni, scrivi:
    ImpostaValore
    Elemento: [Maschere]![NomeMaschera]![NomeCampo1].[Locked]
    Espressione: Vero
    4. Nel rigo2 Condizioni scrivi ... (3 puntini)
    5. Sullo stesso rigo Azioni, scrivi ArrestaMacro
    6. Nel rigo3 Condizioni, scrivi:
    [Maschere]![NomeMaschera]![NomeCampo1].[Locked]=True
    7. Sullo stesso rigo Azioni, scrivi:
    Elemento: [Maschere]![NomeMaschera]![NomeCampo1].[Locked]
    Espressione: Falso
    Se hai più campi da bloccare/sbloccare, aggiungi tanti ImpostaValore per i relativi Campo2, Campo3 ecc...scrivendo sempre 3 puntini lungo la prima sezione di ImpostaValore fino a ArrestaMacro. Idem devi fare lungo la seconda sezione di ImpostaValore...(nella seconda sezione non è necessario terminare con ArrestaMacro)
    6. Salva la macro con nome BS (sarebbe Blocca/Sblocca)
    7. Vai in visualizzazione struttura maschera, vai alle Proprietà del pulsante e associa rispettivamente, all'Evento "Su Clic", BS
  • Re: Pulsanti blocco e sblocco record.

    Ciao,innanzitutto ti ringrazio per la celere risposta
    Ho fatto quello che mi hai detto ma non ho ottenuto il risultato sperato.
    (cioè cliccando sul tasto mi consente di bloccare soltanto il primo campo ma non gli altri).
    Adesso ti spiego meglio quello che intendo fare:
    Sto impostando un questionario e vorrei che alla prima domanda presente nella maschera mi si rispondesse con due tasti di opzione "uno sul SI e uno sul NO"
    Se l'utente clicca sul tasto SI allora mi potrà compilare i campi successivi, se invece mi clicca sul NO vorrei che i campi successivi si bloccassero in automatico.

    Ho provato a farlo su un campo e ci riesco ma non so come bloccare più campi con solo due tasti SI/NO.
    Sono sicuro che con il tuo aiuto ci riuscirò

    Vicio
  • Re: Pulsanti blocco e sblocco record.

    vicio ha scritto:


    due tasti di opzione "uno sul SI e uno sul NO"
    Cosa intendi per 2 tasti di opzione? Stai parlando di un "gruppo di opzioni" con 2 opzioni aventi il look con i pulsanti? Figurano come una casella di controllo? Puoi spiegare esattamente questo piccolo ma importante aspetto?
Devi accedere o registrarti per scrivere nel forum
18 risposte