View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
JE McGimpsey JE McGimpsey is offline
external usenet poster
 
Posts: 4,624
Default Algorithm for form numbers

Since you posted in the .programming group, I assumed you were looking
for a VBA solution.

An XL formula equivalent would be

=RIGHT(TEXT(TODAY(),"00000")&TEXT(MOD(NOW(),1)*864 00,"00000"),9)

though that introduces a possible problem if users are using different
date systems (i.e, 1900 vs. 1904), which could potentially cause
duplication after 4 years and 1 day.

In article ,
XP wrote:

Hi,

Using the following formula, exactly:

=RIGHT(CLng(Date)&CLng(Time*86400),9)

I get "#NAME" error...yet I don't see anything wrong...any ideas?



"JE McGimpsey" wrote:

I'd think that

Right(CLng(Date) & CLng(Time * 86400), 9)

ought to last you for a while, as long as nobody generates a form at
exactly the same second.

In article ,
XP wrote:

Using Office 2007 with Win XP;

I have a form designed in Excel for use by many different persons over a
LAN.

In the past I have used a formula like the following to generate a unique
form
number: =NOW()*10^7

This number is then formatted into a 12 digit value like: 3984-8374-2472
An auto open macro converts this formula to a value whenever a user opens
a
form and it works very well. We have not had any duplicate form numbers
generated because it is clocked down to such a small fraction of a
second.

The problem is, this new form being developed can have no more than 9
digits. If I alter my algorithm to say: =Now()*10^4
I find it very easy to generate two or even three forms having the same
form
number, which will not work, since each form must never repeat a number.

Is there a chance anyone out there can help me out with an algorithm that
will work? BTW, the form can also use alphabetic characters. I'd really
rather NOT rely upon a centralized counter file or incrementing MS-Access
table if possible.

Thanks much in advance for any help/suggestions.