Compilazione campi di una maschera solo se vuoti

di
Anonimizzato12776
il
2 risposte

Compilazione campi di una maschera solo se vuoti

Buongiorno,
mi rivolgo a voi per chiedere un aiuto a riguardo del seguente problema:
si tratterebbe di consentire la modifica di alcuni campi di una maschera solo nel caso in cui questi siano vuoti.

Ovvero:
- Se il campo è vuoto posso riempirlo con dei dati
- Se il campo è già abitato da dati questi non posso essere modificarti.
Si tratterebbe solo di alcuni campi di una maschera, non di tutti.

Ho provato a inventarmi qualcusa nelle proprietà di questi campi, cercando di intervenire su eventi, before update.... ma non ne sono venuto fuori.
Avreste qualche idea alla mia portata da suggerirmi?

Grazie in anticipo

Francesco

Grazie mille!
Fra

2 Risposte

  • Re: Compilazione campi di una maschera solo se vuoti

    L?unico evento da usare è Current di Maschera... tuttavia nel caso in cui sia in visualizzazione CONTINUA non è il massimo pur funzionando...!
    
    Private Sub Form_Current()
       Me!NomeControlloSicuramenteAbilitato.SetFocus
       Me!NomeControllo1.Enabled=Len(Me!NomeControllo1.Value & vbNullstring)=0
       Me!NomeControllo2.Enabled=Len(Me!NomeControllo2.Value & vbNullstring)=0
       ' ecc...
    End Sub
  • Re: Compilazione campi di una maschera solo se vuoti

    In alternativa al VBA, io avrei pensato ad associare una macro che Blocca il controllo nel caso esso non fosse Null.
    1. Apri una macro in visualizzazione struttura
    2. Apri le colonne Nome macro e Condizioni
    3. Nel primo rigo Nome macro ci scrivi Campo1
    4. Accanto, a Condizioni, la seguente sintassi:
    [Maschere]![NomeMaschera]![Campo1] Is Not Null
    5. Accanto, in Azioni:
    ImpostaValore
         Elemento: [Maschere]![NomeMaschera]![Campo1].Locked
         Espressione: Vero
    6. Ripeti i punti 3./5. nei righi successivi analogamente per Campo2, Campo3, ecc...
    7. Salva la macro con nome Blocca
    8. Vai in visualizzazione struttura maschera e associa per ogni Campo la corrispettiva macro sull'evento "Su attivato". Cioè per il Campo1 associa la macro Blocca.Campo1, per il Campo2 la macro Blocca.Campo2, per il Campo3 la macro Blocca.Campo3.

    Almeno nella mia proposta, rimane il problema che, se per caso sbagli nel digitare, non puoi correggere. Allora occorre aggiungere un pulsante a cui associare un'altra macro Sblocca con le seguenti azioni:
    ImpostaValore
         Elemento: [Maschere]![NomeMaschera]![Campo1].Locked
         Espressione: Falso
    ImpostaValore
         Elemento: [Maschere]![NomeMaschera]![Campo1]
         Espressione: Null
    Questa soluzione appare molto più elaborata. Se quella di Alex ti soddisfa, sceglila.
Devi accedere o registrarti per scrivere nel forum
2 risposte