A simple serial number is by far the "best practice" for uniquely identifying each record and for use as a primary key.
If you want this type of label for reporting purposes:
Define an auto-enter serial number field. (This field CANNOT be used as primary key as it will not be unique.)
Define a text field that auto-enters: Year ( get ( CurrentDate ) ) & "-" & SerialIDField
The catch here is that you need to include a script that checks the current date and uses Set Next Serial value to reset this serial number field back to one the first time the file is opened at the start of a new year.
On the other hand, if each record has a date created field and you define a relationship that self-joins all records of the same year:
Year (datecreatedfield) & "-" & (PrimaryKeyField - min(selfjoin:: PrimaryKeyField) + 1)
Though the result cannot be stored and computing the value may take longer than desirable if you have large numbers of records created each year.
Thank you! I thought as much--that I should stick with a simple serial number in order for it to be used as a primary key. This particular d.b. doesn't really need anything fancy, and it already has the publication-date field defined, so sorting and finding is straightforward. And we only have on the order of six or seven projects in any given year, so counting them will be simple enough.
Thanks for saving me more searching, head-scratching, and self-recrimination.