Salve a tutti, rieccomi con un altro problemino.
Ho letto diverse cose qui sul forum ma non ne vengo a capo.
Ho una Maschera che contiene una sottoMaschera. All'interno di questa sottoMaschera ho 4 campi (ma quelli che mi interessano sono solo 2: Pagato e NrRicevuta).
Quando clicco su Salva devo fare questo tipo di controllo:
If Pagato = Vero & NrRicevuta = “” Then
MsgBox "Inserire il numero della ricevuta!", vbExclamation, "Attenzione"
NrRicevuta.SetFocus
Else
DoCmd.RunCommand acCmdSaveRecord
Ok, ho visto che devo selezionare la Maschera Principale e la Sottomaschera ho fatto le seguenti prove come suggerito da Alex in
https://www.iprogrammatori.it/forum-programmazione/access/riferimento-campo-sottomaschera-scheda-t19320.html
Me!NomeSubForm!NomeControllo.Value
che da me sarebbe
if Me!Pagamenti!Pagato.Value = Vero & Me!Pagamenti!NrRicevuta.Value = "" Then
MsgBox "Inserire il numero della ricevuta!", vbExclamation, "Attenzione"
Me!Pagamenti!NrRicevuta.SetFocus
Else
DoCmd.RunCommand acCmdSaveRecord
Ma non funziona, nel senso che si attiva la msgbox ma riempendo il campo NrRicevuta continua ad uscire la msgbox e non mi fa salvare. Credo di aver capito che .Value non dovrebbe essere usato in quel modo su NrRicevuta.
Ho visto un altro suggerimento sempre di Alex su
https://www.iprogrammatori.it/forum-programmazione/access/valore-vuoto-una-textbox-t38466.html
per castare il campo testo con lettura della lunghezza caratteri ho provato
if Me!Pagamenti!Pagato.Value = Vero & Len(Me!Pagamenti!NrRicevuta.Value & vbNullstring)=0 Then
MsgBox "Inserire il numero della ricevuta!", vbExclamation, "Attenzione"
Me!Pagamenti!NrRicevuta.SetFocus
Else
DoCmd.RunCommand acCmdSaveRecord
Ma niente da fare. Per prova ho usato anche False esce sempre la msgbox, anche se il campo Pagato è su Falso e la Ricevuta è vuota. Ho provato diverse combinazioni in ogni caso.
Insomma non ne vengo a capo. Sto studiandomi un po' di VBA ma mi ci vuole troppo tempo per capire tutti gli incastri.
Qualcuno può dirmi qual è la giusta procedura? Grazie a tutti per l'aiuto