Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
ciao Nicola,
la domanda era legata al datatype se associato o no...
Comunque...per rendere maggiormente fruibile il codice da tutte le forms e evitare ridondanze, crea due moduli di classe. ho bastao il tutto sugli esempi suggeriti in precedenza e non sul tuo db, credo sia facile per te adattarli.
uno chiamato clsControls:
Sub setCtrl(ByVal frm As Access.Form, ByVal bool As Boolean)
Dim ctl As Access.control
For Each ctl In frm.Controls
Select Case ctl.controlType
Case acCheckBox, acComboBox, acListBox, acTextBox, acOptionButton
If ctl.Name <> "checkLocks" Then
ctl.Locked = Not bool
End If
Case acSubform
'checkBondeded ctl.Form, bool
setCtrl ctl.Form, bool
End Select
Next
Set ctl = Nothing
End Sub
un altro chiamato clsWithEvents con questo codice:
Option Compare Database
Option Explicit
Private WithEvents frm As Access.Form
Private WithEvents chk As Access.CheckBox
Private p_frm As clsControls
'
Public Property Set Form(frmCalling As Access.Form)
Set frm = frmCalling
End Property
Public Property Set chekbox(chkCalling As Access.CheckBox)
Set chk = chkCalling
End Property
Private Sub chk_Click()
p_frm.setCtrl frm, chk.Value
End Sub
Private Sub Class_Initialize()
Set p_frm = New clsControls
End Sub
Private Sub Class_Terminate()
Set p_frm = Nothing
Set frm = Nothing
Set chk = Nothing
End Sub
Private Sub frm_Load()
p_frm.setCtrl frm, chk.Value
End Sub
nella maschera in cui hai bisogno di attivare la procedure istanzi le classi e guidi, per così dire gli eventi... :
Option Compare Database
Option Explicit
Private e_ctl As New clsWithEvents
'
Private Sub checkLocks_Click()
Me.checkLocks.OnClick = "[event procedure]"
End Sub
Private Sub Form_Close()
Me.OnClose = "[event procedure]"
Set e_ctl = Nothing
End Sub
Private Sub Form_Open(Cancel As Integer)
Set e_ctl.Form = Me
Set e_ctl.chekbox = Me.checkLocks
Me.OnLoad = "[event procedure]"
End Sub
in questo modo demandi alle classi tutto il lavoro, non generi codice ridondante e il codice nelle forms si riduce davvero a poche righe....
questo l'esempio : http://1drv.ms/1EvlB40 bloccoNicola5.accdb.
ciao, Sandro.