You could always do it in VB. In the On Enter event, put the following:
Code:
Dim nbrFieldsUsed As Integer
Dim nbrTotal as Double
nbrFieldsUsed = 0
nbrTotal = 0
If Not IsNull(Me!Dif1) Then
nbrFieldsUsed = nbrFieldsUsed + 1
nbrTotal = nbrTotal + Me!Dif1
End If
If Not IsNull(Me!Dif2) Then
nbrFieldsUsed = nbrFieldsUsed + 1
nbrTotal = nbrTotal + Me!Dif2
End If
If Not IsNull(Me!Dif3) Then
nbrFieldsUsed = nbrFieldsUsed + 1
nbrTotal = nbrTotal + Me!Dif3
End If
If Not IsNull(Me!Dif4) Then
nbrFieldsUsed = nbrFieldsUsed + 1
nbrTotal = nbrTotal + Me!Dif4
End If
If nbrFieldsUsed = 0 Then
Me!MyAverageField = 0
Else
Me!MyAverageField = nbrTotal / nbrFieldsUsed
End If
Just replace MyAverageField with the name of the Text Box that's supposed to hold your average.
Heck, if you want, you can even have the On Update event of each of the Dif fields point to this function too (so you get real-time average calculations!).