Obtaining Name of Current Index Key Field

Last reviewed: June 27, 1995
Article ID: Q98353
The information in this article applies to:
  • Microsoft FoxPro for Windows, versions 2.5 and 2.5a
  • Microsoft FoxPro for MS-DOS, versions 2.0, 2.5, and 2.5a

Using SYS(21) to obtain the current index key field returns a number, not a field name, because SYS(21) returns a character string containing the current key's number position in the index file.

To return the current index key expression, the string returned by SYS(21) must be converted to a numeric value using the VAL() function, then passed to the KEY() function. For example, the following code displays "CNO", which is the index expression for the index tag cust_num:

   USE CUSTOMER            && CUSTOMER.DBF contains the field 'CNO'.
   DELETE TAG ALL          && Removes any current tags from the index.
   INDEX ON CNO TAG CUST_NUM ADDITIVE
   SET ORDER TO CUST_NUM
   x=KEY(VAL(SYS(21)))
   ? x

REFERENCES

"Commands & Functions," version 2.0 "Language Reference," version 2.5


Additional reference words: FoxDos FoxWin 2.00 2.50 2.50a
KBCategory: kbprg
KBSubcategory: FxprgGeneral


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: June 27, 1995
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.