Solved

Null value err encountered , Run-time error 2424

Posted on 2011-03-16
16
573 Views
Last Modified: 2012-05-11

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
0
Comment
Question by:Mohammad Alsolaiman
  • 7
  • 6
  • 3
16 Comments
 
LVL 75
ID: 35151172
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
0
 
LVL 51

Expert Comment

by:HainKurt
ID: 35151339
+ this to above post

Me.GuidanceEndDate ' does this exist or typo ?
0
 
LVL 75
ID: 35151381
Check *all* Control/Field names on the Error line ...

mx
0
 

Author Comment

by:Mohammad Alsolaiman
ID: 35151510
yes, all Controls/Fields are there and with the same names.
and if there are a values in these fields it works properly
0
 
LVL 75
ID: 35151528
Show the code for this function:

fnExtnesionExcessDays  

mx
0
 
LVL 51

Accepted Solution

by:
HainKurt earned 250 total points
ID: 35151545
try this:

Me.ExtensionDays.value=Nz(fn(....), "1")

or

Me.ExtensionDays.text=Nz(fn(....), "1")

where "1" is dafault value if the function returns null (?)
0
 

Author Comment

by:Mohammad Alsolaiman
ID: 35151579
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

0
 
LVL 75
ID: 35151656
"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
0
Backup Your Microsoft Windows Server®

Backup all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

 

Author Comment

by:Mohammad Alsolaiman
ID: 35151690
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
0
 

Author Comment

by:Mohammad Alsolaiman
ID: 35151705
yes , it is a report
0
 
LVL 75

Assisted Solution

by:DatabaseMX (Joe Anderson - Access MVP)
DatabaseMX (Joe Anderson - Access MVP) earned 250 total points
ID: 35151758
On a report, it's Important when ... referring to a Control on the report in code that ... the Name of the control is *different* than the Control Source.  So for example:

If GuidanceIDis the Control Source for a Text box, then give the Name of the text box something like

txtGuidanceID

and in the Function call, use this instead:

   Me.ExtensionDays.Text = Nz(fnExtensionExcessDays(Me.txtGuidanceID, Me.GuidanceStartDate, _
                          Me.GuidanceEndDate, 1), 1)


... and so on for all the Controls being referenced in code.

Make this change and report back ...

mx
0
 
LVL 51

Expert Comment

by:HainKurt
ID: 35152107
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"
0
 

Author Comment

by:Mohammad Alsolaiman
ID: 35153626
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

0
 
LVL 75
ID: 35153705
Humm. Can you upload a version that exhibits this issue ... and explain exactly how to reproduce it ?

mx
0
 

Author Comment

by:Mohammad Alsolaiman
ID: 35153802
I will in sha'allah
But it will tack some time because of the Arabic issues
0
 

Author Closing Comment

by:Mohammad Alsolaiman
ID: 35407157
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
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In the article entitled Working with Objects – Part 1 (http://www.experts-exchange.com/Microsoft/Development/MS_Access/A_4942-Working-with-Objects-Part-1.html), you learned the basics of working with objects, properties, methods, and events. In Work…
Overview: This article:       (a) explains one principle method to cross-reference invoice items in Quickbooks®       (b) explores the reasons one might need to cross-reference invoice items       (c) provides a sample process for creating a M…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now