Come rendere invisibile un campo al verificarsi di un dato evento

Anonimo
2023-08-21T08:42:39+00:00

Buongiorno a tutti.

Non riesco a risolvere questo problema:

ho una maschera mClientiInserisci in cui è presente un campo IDClienteTipo.

Questo campo è una casella combinata che fa riferimento ad una tabella tClienteTipo in cui ci sono soltanto due record:

  1. TipoCLiente uguale D, 2) TipoCLiente uguale P.

Nella maschera mClientiInserisci c'è un altro campo PIVA. Avrei bisogno che, scegliendo dalla casella combinata nel campo IDClienteTipo nella maschera mClientiInserisci il valore P, il campo PIVA diventi non visibile.

Ho provato ad inserire nell'evento "dopo aggiornamento" del campo IDClienteTipo il seguente codice:

Private Sub IDClienteTipo_AfterUpdate()

*If Me.IDClienteTipo = "P" Then* 

    *Me.PIVA.Visible = False* 

*Else* 

    *Me.PIVA.Visible = True* 

*End If* 

End Sub

ma non sortisce alcun effetto (in pratica, sia scegliendo D che P, il campo PIVA continua ad essere visibile).

Ringrazio anticipatamente quanti di voi potranno aiutarmi.

Max

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2023-08-21T14:03:53+00:00

ciao Max2510,

su after update della combo box che ti permette di selezionare il tipo cliente prova ad invocare :

With Me 

 .PIVA.Visible = CBool(Me.IDClienteTipo.Column(1) = "D") 

End With 

supponendo che l'origine riga sia la tabella di cui ci hai parlato, ed essa sia costituita da due colonne, la seconda mostra il valore D o P.

Personalizza il nome dei controlli ove necessario, ovviamente...

HTH.

ciao, Sandro.

La risposta è stata utile?

0 commenti Nessun commento

5 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2023-08-21T13:53:01+00:00

    Buonasera Karl,

    allora, inserendo nel campo IDClienteTipo della maschera mClientiInserisci il codice MsgBox Me!IDClienteTipo, come prima riga nel codice AfterUpdate, scegliendo TipoCliente uguale D, compare questa finestra:

    scegliendo TipoCLiente uguale P, compare quest'altra finestra:

    Qui lo snapshot della scheda Dati della finestra delle proprietà del campo IDClienteTipo nella maschera mClientiInserisci

    mentre qui lo snapshot della scheda Ricerca delle proprietà del campo TipoCliente della Tabella tClienteTipo:

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2023-08-21T11:34:00+00:00

    Salve,

    Come prima riga nel codice AfterUpdate prova

    MsgBox Me!IDClienteTipo

    Se non ti mostri il valore che aspetti, controlla due proprietà della casella:

    L'Origine Riga. Puoi anche postare la stringa SQL qui.

    Qual'è la Colonna Associata della casella?

    Servus
    Karl
    ****************
    Access Bug Trackers
    Access News
    Access DevCon
    Access-Entwickler-Konferenz AEK

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2023-08-21T10:15:23+00:00

    Grazie Sandro,

    ho controllato e non ci sono errori.

    Però è presente questo codice:

    Private Sub PIVA_BeforeUpdate(Cancel As Integer)

    *Dim db As DAO.Database* 
    
    *Dim rs As DAO.Recordset* 
    
    *Dim strPIVA As String* 
    
    *' Imposta il riferimento al database corrente* 
    
    *Set db = CurrentDb* 
    
    *' Ottieni il valore inserito nel campo "PIVA"* 
    
    *strPIVA = Me.PIVA.Value* 
    
    *' Controlla se il valore esiste già nella tabella dei Clienti* 
    
    *Set rs = db.OpenRecordset("SELECT COUNT(\*) AS CountPIVA FROM tClienti WHERE PIVA = '" & strPIVA & "'")* 
    
    *' Verifica se il la Partita IVA esiste già* 
    
    *If rs("CountPIVA") > 0 Then* 
    
        *' Apre la maschera "mAvvisoPartitaIVAEsistente" per avvertire l'utente* 
    
        *DoCmd.OpenForm "mAvvisoPartitaIVAEsistente"* 
    
        *Cancel = True* 
    
        *Me.PIVA.Undo* 
    
    *End If* 
    

    End Sub

    Secondo te, potrebbe essere questa istruzione che interferisce?

    Grazie

    P.S.

    Ho provato ad eliminare il codice precedente, ma non funziona ugualmente.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2023-08-21T09:35:08+00:00

    Ciao Max,

    per rendere invisibile un campo al verificarsi di un dato evento, puoi utilizzare il seguente codice VBA nell'evento "dopo aggiornamento" del campo IDClienteTipo:

    
    Private Sub IDClienteTipo\_AfterUpdate()
    
        If Me.IDClienteTipo = "P" Then
    
            Me.PIVA.Visible = False
    
        Else
    
            Me.PIVA.Visible = True
    
        End If
    
    End Sub
    
    

    Assicurati che il nome del campo PIVA sia corretto e che non ci siano errori di battitura. Inoltre, verifica che il controllo PIVA sia effettivamente un campo e non un'etichetta o un altro tipo di controllo. Se il problema persiste, prova a controllare se ci sono altri eventi o regole di validazione che potrebbero interferire con il codice VBA.

    Se il problema sarà risolto, per favore, clicca su Utile e contrassegna come Risposta la mia risposta nella quale ti consiglio di disinstallare HP Support Assistant poiché verrà evidenziata e sarà utile anche per altri utenti.

    Grazie della collaborazione

    Sandro

    La risposta è stata utile?

    0 commenti Nessun commento