Come bloccare l'editing di un record condizioanto al valore di un campo

di il
6 risposte

Come bloccare l'editing di un record condizioanto al valore di un campo

Ciao a tutti,
Ho un form legato alla tabella PRPExplosion che mostra la previsione mensile di produzione dei prossimi dodici mesi.

Per ogni record, identificato dal campo FEG, esistono 4 tipi di previsioni possibili nel campo "LayerType" ("CvtStagger"; "IndepDemand"; "Request GCRP"; "WIP Proj. Out").

Sto cercando il modo di consentire l'editing dei valori di previsione mensile solo se il record presenta nel campo "LayerType" il valore "IndepDemand", e di bloccarlo se "LayerType" assume uno fra I valori "CvtStagger", "Request GCRP", "WIP Proj. Out".

Ho provato a scrivere il codice seguente nelle proprieta' On Click e Before Update del campo

Me.NomeCampo.Enable = False
Me.NomeCampo.Locked = True

Ma sembra non funzionare.

Grazie per l'aiuto

6 Risposte

  • Re: Come bloccare l'editing di un record condizioanto al valore di un campo

    Io immagino che dopo i campi FEG e LayerTye, tu hai anche CampoX, CampoY e CampoZ (su questi ultimi 3 vorresti abilitare/disabilitare secondo come hai proposto). Io sfrutterei l'evento "Dopo aggiornamento" (AfterUpdate) su LayerType e scriverei questo:
    Private Sub LayerType_UfterUpdate()
    If Me!LayerType <> "IndepDemand" Then
        Me!CampoX.Enabled = False
        Me!CampoY.Enabled = False
        Me!CampoZ.Enabled = False
    End If
    End Sub
  • Re: Come bloccare l'editing di un record condizioanto al valore di un campo

    Grazie del suggerimento,
    purtroppo non funziona, continuo a poter scrivere nel campo.

    La tabella PRPExplosion, dalla quale il form ricava i dati, viene creata con il campo "LayerType" gia' compilato e quello non si deve piu' modificare. Modifico CampoX, CampoY, CampoZ etc. Speravo che anche il semplice transitare sul campo "LayerType" con il tasto di tabulazione venisse visto come un'azione di Update ma mi sono illuso.

    Da profano ho provato anche a scrivere Me!CampoX e Me.CampoX (perche' non conosco la differenza fra ! e .) ma nulla da fare.
  • Re: Come bloccare l'editing di un record condizioanto al valore di un campo

    maxgrana ha scritto:


    purtroppo non funziona, continuo a poter scrivere nel campo.
    Scrivilo sull'evento current della maschera

    maxgrana ha scritto:


    Da profano ho provato anche a scrivere Me!CampoX e Me.CampoX (perche' non conosco la differenza fra ! e .) ma nulla da fare.
    Infatti non è lì la differenza. In questo caso le due sintassi sono equivalenti.
  • Re: Come bloccare l'editing di un record condizioanto al valore di un campo

    Grazie anche a te,
    ma il campo si disabilita in tutti I record indipendentemente dal valore che assume "LayerType".
  • Re: Come bloccare l'editing di un record condizioanto al valore di un campo

    maxgrana ha scritto:


    Grazie anche a te,
    ma il campo si disabilita in tutti I record indipendentemente dal valore che assume "LayerType".
    
    Dim blnLayerType as Boolean
    blnLayerType  = (Me!LayerType = "IndepDemand")
    Me!CampoX.Enabled = blnLayerType 
    Me!CampoY.Enabled = blnLayerType
    Me!CampoZ.Enabled = blnLayerType
  • Re: Come bloccare l'editing di un record condizioanto al valore di un campo

    Grazieeeeeeeeeeee!!!!!!!!!!!!!!!!!!
Devi accedere o registrarti per scrivere nel forum
6 risposte