Link to home
Start Free TrialLog in
Avatar of Mohammad Alsolaiman
Mohammad AlsolaimanFlag for Saudi Arabia

asked on

Null value err encountered , Run-time error 2424


Hi:
Run-time error 2424
The expression you entered has a field, control, property name that
Microsoft Access can't find.
Would you See the photo please
How can I get rid of it please
Is it good code to put resume next in err handler of that err.number 2424?
Please help

1.png
Avatar of DatabaseMX (Joe Anderson - Former Microsoft Access MVP)
DatabaseMX (Joe Anderson - Former Microsoft Access MVP)
Flag of United States of America image

Possible spelling typo in

fnExtnesionExcessDays  ' does this exist or typo ?
Me.GuidanceID                 ' does this exist or typo ?
Me.GuidanceStartDate    ' does this exist or typo ?

mx
+ this to above post

Me.GuidanceEndDate ' does this exist or typo ?
Check *all* Control/Field names on the Error line ...

mx
Avatar of Mohammad Alsolaiman

ASKER

yes, all Controls/Fields are there and with the same names.
and if there are a values in these fields it works properly
Show the code for this function:

fnExtnesionExcessDays  

mx
ASKER CERTIFIED SOLUTION
Avatar of HainKurt
HainKurt
Flag of Canada image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Here is the code
Option Compare Database
'************* Code Start *************
Public Function HowManyWD(FromDate As Date, _
                            ToDate As Date, _
                            WD As Long)
   ' No error handling actually supplied
    HowManyWD = DateDiff("ww", FromDate, ToDate, WD) _
                                 - Int(WD = Weekday(FromDate))
End Function
'************* Code End *************
'   In the same way, someone can easily get the number of weekdays (excluding weekends) by subtracting number of Sundays and Saturdays:

'************* Code Start *************
Public Function HowManyWeekDay(FromDate As Date, _
                            ToDate As Date, _
                            Optional ToDateIsIncluded As Boolean = True)
    ' ToDateIsIncluded: this is to calculate the last date or not. it deppends on you
    HowManyWeekDay = DateDiff("d", FromDate, ToDate) - _
                    ToDateIsIncluded - _
                    HowManyWD(FromDate, ToDate, vbThursday) - _
                    HowManyWD(FromDate, ToDate, vbFriday)
End Function
'************* Code End *************
Public Function fnCalculating_future_past_date(dtStartDate As Date, ymdFlag As String, blFuturePastFlag As Boolean _
                                               , intValue As Integer)
 Select Case blFuturePastFlag
    Case True
       Select Case ymdFlag
          Case "y"
             fnCalculating_future_past_date = DateSerial(Year([dtStartDate]) + intValue, Month([dtStartDate]), Day([dtStartDate]))
          Case "m"
             fnCalculating_future_past_date = DateSerial(Year([dtStartDate]), Month([dtStartDate]) + intValue, Day([dtStartDate]))
          Case "d"
             fnCalculating_future_past_date = DateSerial(Year([dtStartDate]), Month([dtStartDate]), Day([dtStartDate]) + intValue)
       End Select
       
    Case False
       Select Case ymdFlag
          Case "y"
             fnCalculating_future_past_date = DateSerial(Year([dtStartDate]) - intValue, Month([dtStartDate]), Day([dtStartDate]))
          Case "m"
             fnCalculating_future_past_date = DateSerial(Year([dtStartDate]), Month([dtStartDate]) - intValue, Day([dtStartDate]))
          Case "d"
             fnCalculating_future_past_date = DateSerial(Year([dtStartDate]), Month([dtStartDate]), Day([dtStartDate]) - intValue)
       End Select
 End Select

End Function
Public Function fnExtensionExcessDays(intGuidanceID As Integer, _
                   dtGuidanceStartDate As Date, dtGuidanceEndDate As Date, _
                   intExcessType As Integer) As Integer
   
Dim dtMaxAchievementEndDate As Date

   dtMaxAchievementEndDate = Nz(DMax("[AchievementEndDate]", "tblAchievement", _
                  " [GuidanceID] = " & intGuidanceID & " AND [ExcessType] = " & intExcessType))
   If dtMaxAchievementEndDate > dtGuidanceEndDate Then
      fnExtensionExcessDays = HowManyWeekDay(dtGuidanceEndDate, dtMaxAchievementEndDate, True)
'      MsgBox dtMaxAchievementEndDate & "  " & dtGuidanceEndDate & "  " & fnExtensionExcessDays _
         & "   " & intExcessType
   End If
   
End Function

Open in new window

"Is it good code to put resume next in err handler of that err.number 2424?"
Not really.  Need to find problem.

This is on a Report, right ?

mx
Hain
i try

   Me.ExtensionDays.Text = Nz(fnExtensionExcessDays(Me.GuidanceID, Me.GuidanceStartDate, _
                          Me.GuidanceEndDate, 1), "1")
   Me.ExcessDays.Text = Nz(fnExtensionExcessDays(Me.GuidanceID, Me.GuidanceStartDate, _
                          Me.GuidanceEndDate, 2), "1")
but the same err message
yes , it is a report
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
what is happening if you replace that line with

1. Me.ExtensionDays = 0
2. Me.ExtensionDays = ""

3. Me.ExtensionDays.Value=""
4. Me.ExtensionDays.Value="0"

5. Me.ExtensionDays.Text = ""
6. Me.ExtensionDays.Text = "0"
i try all the all the solution, but still the same problem
Private Sub ¿¿¿¿¿_Format(Cancel As Integer, FormatCount As Integer)
   Me.txtExtensionDays.Value = Nz(fnExtensionExcessDays(Me.txtGuidanceID, Me.txtGuidanceStartDate, _
                          Me.txtGuidanceEndDate, 1), "1")
   Me.txtExcessDays.Value = Nz(fnExtensionExcessDays(Me.txtGuidanceID, Me.txtGuidanceStartDate, _
                          Me.txtGuidanceEndDate, 2), "1")
End Sub

Open in new window

Humm. Can you upload a version that exhibits this issue ... and explain exactly how to reproduce it ?

mx
I will in sha'allah
But it will tack some time because of the Arabic issues
sorry , no time to ubload the database, i can fegur out that the problem maybe becouse of no record found, so the value is null. i change my code to not to process when no record found.
it works
thank god
then thank you guys very much for trying help