Variant does not contain a container error

HI

This used to work and no when I am testing it with a variety of ID's it is giving me an error

If Not doc Is Nothing Then
            
If note.type(0) = "Vac" And  Month(note.StartDate(0)) > 6 Then
      doc.TotalDaysOffCalc = note.TotalDaysOff(0)
      doc.RemainingCalc = doc.TotalAH(0) - doc.TotalDaysOffCalc(0)
Else
If doc.CarriedOverAH(0)= note.NewDaysTotal(0) Then
doc.CarriedOverAH = doc.CarriedOverAH(0) - note.NewDaysTotal(0)
doc.TotalDaysOffCalc = note.TotalDaysOff(0)
doc.RemainingCalc = doc.TotalAH(0) - doc.TotalDaysOffCalc(0)
REM Goto SaveIt      ' Skip normal calc and save the doc
Else
If doc.CarriedOverAH(0) = 0 Then
doc.TotalDaysOffCalc = note.TotalDaysOff(0)
doc.RemainingCalc = doc.TotalAH(0) - doc.TotalDaysOffCalc(0)
                        End If
                  End If
            End If

Thanx

James

adspmoAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

HemanthaKumarCommented:
Turn on the debugger and see where this error is occuring.

basically, what the error means is that you are referencing a variant value where the variant itself is empty or doesnot exist. In your case it could be that the fields are not available on the document

~Hemanth
0
adspmoAuthor Commented:
I have a feeling this is an edit rights issue

On the Leave Tracking form I have an EditRights field
and the Approvers name is not listed
0
adspmoAuthor Commented:
Forgot to mention

this is the line
doc.TotalDaysOffCalc = note.TotalDaysOff(0)

James
     
0
JavaScript Best Practices

Save hours in development time and avoid common mistakes by learning the best practices to use for JavaScript.

p_parthaCommented:
Just add these lines :

on the beginning of the code:

On error goto errortrap:


after the code ends and before the end suhb:
have somethign like this

exit sub
errortrap:
msgbox "Error occurred on line number " & erl & " error is " & error
exit sub
0
p_parthaCommented:
This is to find out where the error occurs, so that we can give u a proper answer

Partha
0
HemanthaKumarCommented:
If you are having author access rights, then the error would meniton about insufficient rights. But it is code referencing a field value without that being on the document.

I believe it is note.TotalDaysOff(0) which is causing problem, where you are referencing the index value without the TotalDaysOff on the note document.

1. Check the spelling of the field being referenced.. is this field physically on the document or created via script ?
2. msg out the vaue like this Msgbox cstr(note.TotalDaysOff(0))


0
adspmoAuthor Commented:
WEll I added the message box and it came up with a valu once and after that it was variant blabla...

Here is formula forTotalDaysOff
Requested :=NewDaysTotal; "Another field that calculates only weekdays

Booked := @DbLookup( "" : "NoCache" ;""; "AvailHol" ; profile_key;"TotalDaysOffCalc");

Total :=Requested + Booked;

Total1:= HalfDayCalc + Booked;  HalfDayCalc is another field for half day holiday

@If(ApprovalStatus ="Draft";0;HalfDaySel ="";Total;HalfDayCalc != 1; Total1;Total)


0
adspmoAuthor Commented:
Well
When I look at the document properties box I see a
ServerError Entry not found in index

If I refresh the form alworks well

I guess we need to refresh the form

James
0
HemanthaKumarCommented:
Change this formula to more error proof

Requested :=NewDaysTotal; "Another field that calculates only weekdays

Booked := @DbLookup( "Notes" : "NoCache" ;@DBName; "AvailHol" ; profile_key;"TotalDaysOffCalc");

@if(@IsError(Booked); @Return(0); "");

Total :=Requested + Booked;

Total1:= HalfDayCalc + Booked;  HalfDayCalc is another field for half day holiday

@If(ApprovalStatus ="Draft";0;HalfDaySel ="";Total;HalfDayCalc != 1; Total1;Total)
0
adspmoAuthor Commented:
I still get the Server Error Entry.....

i did add

Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
      If Source.EditMode Then Call Source.Refresh
End Sub

It does not seem to work, I need to manually press F9

Any ideas

0
p_parthaCommented:
justa  suggestoin
Have the form property , automatically refresh fields enabled.


Partha
0
adspmoAuthor Commented:
That property is marked of and has always been
0
p_parthaCommented:
What is the datatype of field TotalDaysOff. If it is dialog list or list box, then u can enable refresh fields on keywords change

Partha
0
adspmoAuthor Commented:
It is a number field
0
p_parthaCommented:
It's confusing, what is the value whicih gets populated when u refresh


Partha
0
adspmoAuthor Commented:
It all depends on what the @If evaluates to either Total or Total1

There must be a way to force a refresh???

Requested :=NewDaysTotal;

Booked := @DbLookup( "" : "NoCache" ;""; "AvailHol" ; profile_key;"TotalDaysOffCalc");

@If(@IsError(Booked); @Return(0); "");

Total :=Requested + Booked;

Total1:= HalfDayCalc + Booked;

@If(ApprovalStatus ="Draft";0;HalfDaySel ="";Total;HalfDayCalc != 1; Total1;Total)
0
p_parthaCommented:

Requested :=NewDaysTotal;

Booked := @DbLookup( "" : "NoCache" ;""; "AvailHol" ; profile_key;"TotalDaysOffCalc");

@If(@IsError(Booked); @Return(0); "");

Total :=Requested + Booked;

Total1:= HalfDayCalc + Booked;

@If(ApprovalStatus ="Draft";0;HalfDaySel ="";Total;HalfDayCalc != 1; Total1;Total) ;
@command([viewrefreshfields]);

Partha
0
adspmoAuthor Commented:
Boy do I feel dumb.  One of the fields that the formula was referring to was after the field listed above ergo the formula had to be forced to refresh

Live and learn
0
ArunkumarCommented:
have a similar field with similar formula hidden on top of the form with a different name.  Use this name for reference.
0
adspmoAuthor Commented:
Boy do I feel dumb.  One of the fields that the formula was referring to was after the field listed above ergo the formula had to be forced to refresh

Live and learn
0
ArunkumarCommented:
now you have refreshed this page to get second comment of the same kind....
0
HemanthaKumarCommented:
What is the field type .. Computed ?

What is this profie_key ? And how is this document created ?

If this document is created by a script and approver opens it later, then use ComputeWithForm to calculcate all the formula for fields !!

0
qwaleteeCommented:
James, please do yourself and everyone here a favor.  Stop using doc" and "note" to represent the employee record and request record.  It ismeaaningless and confusing.  try requestDc and empDoc or something like that.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Lotus IBM

From novice to tech pro — start learning today.