Julio: Al salirme ésta pregunta sugerida, te cito ua solución que haría.
Siendo un poco ordenado y Nombrando los Controles como Pct1,... PctN y el Acumulado por ejemplo >> SumPorcent
Declaras una variable a nivel de Formulario >> Después del Option Compare...
Option Compare Database
Option Explicit
Dim Ctrl As Access.Control
En el Form_Load del Formulario, pones >>
Private Sub Form_Load()
'Añado al evento OnLostFocus a todos los controles
For Each Ctrl In Me.Controls
If Ctrl.ControlType = acTextBox And Left(Ctrl.Name, 3) = "Pct" Then
Ctrl.OnLostFocus = "=SumaLosPorcentajes()"
End If
Next Ctrl
End Sub
Y para que te haga los Cálculos>>
Public Function SumaLosPorcentajes()
SumaLosPorcentajes = 0
On Error GoTo SumaLosPorcentajes_TratamientoErrores
'Sumo los TextBoxes cuyo Nombre Comience por "Pct"
For Each Ctrl In Me.Controls
If Ctrl.ControlType = acTextBox And Left(Ctrl.Name, 3) = "Pct" Then
SumaLosPorcentajes = SumaLosPorcentajes + Nz(Ctrl.Value, 0)
End If
Next Ctrl
Me.SumPorcent = SumaLosPorcentajes
MsgBox "La suma de los valores de Porcentajes es >> " & SumaLosPorcentajes
'Opcionalmente aquí podemos poner un código que sea
If SumaLosPorcentajes > 100 Then
'Aqui lo que querramos que haga si pasa de 100
Else
'Aquí no hacer nada o programar lo que necesitemos
End If
SumaLosPorcentajes_Salir:
On Error GoTo 0
Exit Function
SumaLosPorcentajes_TratamientoErrores:
MsgBox "Error " & Err & " en Funcion.: SumaLosPorcentajes de Documento VBA: Xxxxxxxxxx (" & Err.Description & ")", vbCritical + vbOKOnly, "ATENCION"
Resume SumaLosPorcentajes_Salir
End Function
Mis saludos >> Jacinto