I am trying to find away to Create an auto number for our project numbering system. It is formated as PR01A2018. Pr Stays the same, The number changes as new projects the letter is the month (A = January, B = February, Ect) and the year as the date entered. Is this possible or am I wasting my time?
No, I do not use a month identifier as part of the ID.
Whether or not you use this custom ID as the linking primary/foreign key is a different question. Many here would suggest you should use autonumber as the (hidden) link and use the custom ID for users to reference.
I provided example code for a function that creates unique identifier. Modify as you see fit.
The real trick is figuring out what event to call the function from. There is risk that multiple users could generate the same number in which case will get error for whoever is not first to save record if you have the field set to not allow duplicates, as should be.
Other code calls the function to create the identifier and immediately commits record - because users have to see the SampleID right away - then opens that record for them to complete other data. I have never had the same number generated by multiple users. My code also allows for user to abort record creation and since the SampleID must be accounted for, code 'blanks' the record except for the SampleID field and the saved record is pulled up for next user to enter a new sample.
Alternatively, you can have users do data input and create the new SampleID after all input and commit record at that time.
To be fairly clear regarding the advice you are being given...
To link records or to track a specific record you will want to use an auto number primary key that cannot be edited. This avoids many issues related to users doing strange things.
If you want a short hand "Number" that end users can reference you will want to save that as a different field that is NOT used to link records or to uniquely identify a given record.
What you are looking or is "Sequential numbers in a given month". This is normally accomplished by having two fields in your record, AddDate (The date you create the record, you probably have one anyhow) and "Sequence". You then use DMax() to find the highest sequence number for a given month, often by having a query that lists all records by yyyymm and sequence.
You then put together the pieces you need to display your reference. In your case it becomes "PR" & FORMAT(YourSequenceNumber,"00") & SomeFunctionYouWriteToReturnLetterBasedOnMonthNumb er(Month(AddDate)) & FORMAT(YEAR(AddDate),"yyyy")