Non visualizzare un pulsante sulla riga di un nuovo record

di Anonimizzato20088 il
4 risposte
Ho una maschera continua con tre campi e 152 record.
Al lato dei tre campi vi è un pulsante (cmdApriElencoVisite) che apre una maschera singola che dettaglia il contenuto del record scelto.
Il problema è che il pulsante mi appare anche sulla riga del nuovo record. Cosa che non vorrei che accadesse.
Per non visualizzarlo ho approntato questo codice:
Private Sub Form_Load()
If Me.NewRecord Then
cmdApriElencoVisite.Visible = False
Else
cmdApriElencoVisite.Visible = True
End If
End Sub
che però non funziona. Perché?
Enzo86

4 Risposte

  • Forse If vuole una sintassi completa. Prova così
    If Me.NewRecord = True Then
         cmdApriElencoVisite.Visible = False
    Else
         cmdApriElencoVisite.Visible = True
    End If
    Inoltre io non ci vedo l'evento "Su caricamento" (Load), magari "Su corrente" è meglio.

    P.S.: come da regolamento, ricorda di evidenziare il codice VBA e cliccare sul tasto Code per farlo apparire come l'ho postato io con i caratteri tipici monotype.
  • Facciamo attenzione sempre perchè le Maschere continue, lavorano così... quello che è nel CORPO, non è in realtà getibile RECORD PER RECORD, ma ha effetto su tutti i RECORDS visualizzati, non fa eccezione il NUOVO.

    Per questo motivo è da disincentivare l'utilizzo di Controlli NON ASSOCIATI nei Record(nel corpo), soprattutto Pulsanti, in quanto graficamente sono un macello...
    Si utilizza per questo la sezione PièDiPagina o Intestazione di Maschera per inserire i controlli come Button ecc... che devono essere gestiti su CURRENT... allora si che il tuo codice funziona.

    Chiaramente per aspetti grafici su Controlli TextBox si usa la F.C. che è applicabile benissimo invece anche sui singoli Records.
  • A proposito. Forse c'è stata una ulteriore omissione (Me!). Così dovrebbe essere più ortodosso. Lo riscrivo completo considerando l'evento Current
    Private Sub Form_Current()
    If Me.NewRecord = True Then
       Me!cmdApriElencoVisite.Visible = False
    Else
       Me!cmdApriElencoVisite.Visible = True
    End If
    End Sub
  • OsvaldoLaviosa, il codice purtroppo non funziona. Ha ragione Alex Sulle problematiche della gestione record per record delle maschere continue. Infatti se inverto il True e False il pulsante non viene visualizzato su nessun record, compreso Il NewRecord.
    A me, siccome nel caso specifico, fa comodo disporre del pulsante "dettagli" alla fine di ogni singolo record, o preferito per questo di tagliare la testa al toro e di non visualizzare la riga nuovo record, impostando ConsentiAggiunte su No.
    Grazie Enzo86
Devi accedere o registrarti per scrivere nel forum
4 risposte