Solved

Error for DateAdd formula on blank date field

Posted on 2014-11-22
5
213 Views
Last Modified: 2014-11-22
=IIf(IsError(DateAdd("d",30,[Text44])),"",DateAdd("d",30,[Text44]))

When the above formula is evaluated for a Text44 textbox  with a "" value, I get an error as the output for the second text box.

What can I do make the formula output a blank value?

Thanks

Glen
0
Comment
Question by:GPSPOW
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
5 Comments
 
LVL 18

Assisted Solution

by:Simon
Simon earned 100 total points
ID: 40460035
The problem is that IIF evaluates both parts, even though it only returns a value for one of them.

This is a problem when using calculated controls. I tend to use event handlers that fire after controls are modified to set dependent fields. In this case I'd check that the value in Text44 is a date and only then calculate and populate the dependent field.
0
 
LVL 120

Assisted Solution

by:Rey Obrero (Capricorn1)
Rey Obrero (Capricorn1) earned 100 total points
ID: 40460041
try

= IIf([Text44] & "" = "", "", DateAdd("d", 30, [Text44]))
0
 
LVL 47

Accepted Solution

by:
Dale Fye (Access MVP) earned 300 total points
ID: 40460049
Or you could create a function:
Public Function DateAddPlus(Interval as string, Incr as Double, SomeDate as Variant) as Variant

    IF Len(Trim(SomeDate & " ")) = 0 Then
        DateAddPlus = ""
    Else
        DateAddPlus = DateAdd(Interval, Incr, SomeDate)
    End If

End Function

Open in new window

The advantage of using a function is that the function will be evaluated when you go to a new record and when you make a change in the the first date control.  The syntax you would use to call this function within your Control Source would be something like:

=DateAddPlus("d",30,[Forms]![YourFormName].[text44])
0
 

Author Closing Comment

by:GPSPOW
ID: 40460056
Thanks to all who gave me the good recommendations.

Glen
0
 
LVL 18

Expert Comment

by:Simon
ID: 40460057
I just knocked up a quick test. If the input date field is blank, a simple =DateAdd() calculated field stays blank until a valid date is entered into the input date field. My test used a bound date field to as the input date field. If using unbound fields, using an input mask or validation rule would prevent any non-date values being entered.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

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

It’s the first day of March, the weather is starting to warm up and the excitement of the upcoming St. Patrick’s Day holiday can be felt throughout the world.
AutoNumbers should increment automatically, without duplicates.  But sometimes something goes wrong, and the next AutoNumber value is a duplicate.  This article shows how to recover from this problem.
In Microsoft Access, learn how to “cascade” or have the displayed data of one combo control depend upon what’s entered in another. Base the dependent combo on a query for its row source: Add a reference to the first combo on the form as criteria i…
What’s inside an Access Desktop Database. Will look at the basic interface, Navigation Pane (Database Container), Tables, Queries, Forms, Report, Macro’s, and VBA code.

739 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