Who is Participating?

Darrin, here is an example using a recordset, in this case I am only using a disconnected ado recordset but you could use anything. Again the / character is not displayed unless pressed twice, pressing any non-numeric key is treated as the end of the shortcut sequence and the shortcut is inserted followed by the non-numeric keypress.

Here is an example of this, it doesn't show the / character as you type, simply inserts the corresponding text when you press the next character. To display a / character simply type it twice as it is in the collection.

Your code seems the best at this stage - I have increased the points to 100 - now can you show me ... using an existing recordset with two fields the first field is a integer (shct) - ie "1" to "999" (limited to a number upto 999) - the second is the description (desc) - ie \1 converts to the description "today"

Sorry for the confusion but you have done it in a manner which I nevr really thought of - ingenious actually <s>

rd707, it already does that, you just press the / key twice and it is displayed, the original version did it because // was an item in the collection. The modified version does it slightly differently but it still works.

you have to reference the MS scripting runtime to get the
dictionary object. then place your table data in the dictornary object only character after \ will be
used
if item is not found nothing happens (e.g. 1\2)

On error resume next would be fine, unfortunately the collection object unlike the dictionary object has no method for determining whether an element exists. However you do it you have to test for the element and handle the error. In this situation, an invalid shortcut should probably be ignored so on error resume next just before the "text1.seltext =" line would be effective and as good a solution as you will get. You could perhaps consider using the dictionary object instead and its .Exists property but if you are using a recordset then the second method should be better for you anyway.

Now this was fantastic <!> - Many thanks guys for the input - anyone searching on the title will get some decent answers out of this - I know I did <!>

TimeCottee: Many thanks to you ... you've been a great help

Now one final thing ... do you use ADO all the time instead of DAO ? I have a new program ahead of me and I usually write in C or C++ (no or very little MFC) - I see you do a lot in VB and maybe can point out whats a better choice for the time being ...?

For the last year or so I have been using ADO exclusively. Whilst rd707 is correct in saying that DAO works better with access in some respects, the flexibility of ADO for me makes it a better choice. Generally speaking I only use Access for prototyping, I then move onto SQL server for which ADO is a much better solution. If I use DAO for one and ADO for another it is two lots of technology I have to remember and also have to recode when migrating so I find it much better to put up with the slightly slower response of ADO against access and only use the one methodology. There is in fact only one thing that cannot be achieved using ADO and JRO against an access database and that is to set/change the database password in code.

YOu mension there is a speed problem - is that a *real* problem because this database will hold a lot of records (in excess of 1 million new entries per year) - its for a law office that is looking for a program to manage its documents ... and matters (no financial transactions)

I looked at ADO and RDO because perhaps in the future a webb application could deal with the satellite offices (they have one main offce and 7 smaller ones outside of a 100klm radius)

DAO does not readily seem to be adaptable to the webb stuff wereas the others seem to do ok (in MSDN anyway)