Link to home
Start Free TrialLog in
Avatar of varvoura
varvoura

asked on

Q_21884491.html - Still a problem

Hi all,

In the link above is the code for the postdrag event of the calendar to help me drag and drop a calendar entry. Now with that i had a type mistmatch error. The error was fixed by implementing the following code inside the script in the link above.

      tmpList =doc.testdates
      i=0
      Forall x In tmpList
            Redim Preserve oldList(i)
            oldList(i) = Format$(x, "Short Date")
            i = i + 1
      End Forall

However, with this code now, the list that I am placing in the newList is a string list.
Now I want to try to convert it to date list(array of dates) instead of having newlist populated in my date field on the document as text list because I'll have a lot of other problems with it later.

I tried using the same loop above on the newlist, before assigning that to doc.testdates

              tmpList1 =doc.testdatefield
      j=0
      Forall elements In tmpList1
            Redim Preserve newlist(j)
            newlist(j) = Cdat(j)
            j = j + 1
      End Forall

I get out of subscript error.

I try the following:

newlist = cDat(newList)
I know though that this doesn't work because I know to change the value from text to date on each elements of the oldlist array.

I also tried to use Evaluate with @texttotime on newList and still had problems with it.

My question:
What's the simplest, most efficient way to resolve this problem and at the same time convert the newList array to short dates(without time) before assigning the value back to the field on the document?

Thank you all in advance.


Avatar of Steve Knight
Steve Knight
Flag of United Kingdom of Great Britain and Northern Ireland image

How about:

tmpList1 =doc.testdatefield
redim newlist (ubound(tmplist1))
for j=1 to ubound(tmplist)
  newlist(j)=cdat(oldlist(j))
next j

Can't you do it all in one too?:

tmpList =doc.testdates
     i=0
     Forall x In tmpList
          Redim Preserve oldList(i)
          oldList(i) = cdat(Format$(x, "Short Date"))
          i = i + 1
     End Forall

Steve
ASKER CERTIFIED SOLUTION
Avatar of Steve Knight
Steve Knight
Flag of United Kingdom of Great Britain and Northern Ireland 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
Avatar of varvoura
varvoura

ASKER

It is so funny, when I look closely at your code, the first "j" bit, I tried it that way as well today. If i had access to this site in the day, I would've saved you the trouble.

Much much appreciated effort
No problem, again thanks for the points.

Steve