This requires no pre-knowledge of a primary key and only assumes that when you load the form initially, it is already sorted. Any records newly inserted will get the next bigger number. However, if you requery and it causes the newly inserted rows to be re-sorted, they will be now given a new number that relates to their actual position within the set, which can be either good or bad, depending on your specific requirements.
Hi! I hope you help me with this. I have the almost same problem as #2. I have PassengerTable as table name, then I have the following fields: sequence (to follow what you have in your post), transaction_date, and transaction_ID. Basically I want the to have sequential numbering in the transaction_ID where month and date from transaction_date is shown. i also have a generate (Command27)button as trigger.Tried the code with few modifications, but it sequence doesnt populate, and doesnt show any, except for what i have in control for transaction_ID which is the “Format(transaction_date,”yyyy-mm”) & “-” & Format(sequence,”000″)” and this only shows the year and date, so instead of 2015-08-001 it shows 2015-08-.
By omitting the dbFailOnError parameter only for the DROP TABLE statement, we won’t get a runtime error about a table not existing but get runtime errors if we can’t create the table or insert data for some reasons. I’m also not a big fan of creating multiple saved queries that are meant to be logically grouped together – it gets quite cluttered when there are several saved queries in a navigation pane like that. Keeping it all in VBA makes it clearer that the intention is to execute those statements together.
An invoice number is simply a way to uniquely mark an invoice to help keep track of your business transactions. Consecutive or sequential invoice numbers help to ensure that each invoice is unique and each business transaction can be clearly and comprehensively organized and referenced – for accounting reasons as well as customer support. While a receipt is generally used as proof of payment and therefore documents a finalized sale, an invoice is a request for payment that includes more detailed payment or contact information in addition to pricing information for the goods or services rendered. Having a proper invoice numbering system helps you avoid duplicate payments that can amount to large losses for your company.
This will work OK for a small set of data, but the more data there is, the more intensive the subquery becomes, and it must be called repeatedly for each row. This is one of those rare cases where doing it in VBA is faster than doing it in SQL — after all, row numbering is fundamentally iterative, not set-based which just goes against the grain of what SQL was designed to do – solve a problem in a set-based fashion, non-iterative fashion.

The system that you choose for numbering your invoices should correspond to your most prominent needs to make it as easy as possible for invoices to be located for referencing, and the sequence number must always be last to help you keep track and avoid duplication. Lots of accounting software provides an invoice number generator to help with this task.


This will work OK for a small set of data, but the more data there is, the more intensive the subquery becomes, and it must be called repeatedly for each row. This is one of those rare cases where doing it in VBA is faster than doing it in SQL — after all, row numbering is fundamentally iterative, not set-based which just goes against the grain of what SQL was designed to do – solve a problem in a set-based fashion, non-iterative fashion.
To recap, you use a DMax function to return the highest number in the Sequence and increment it by 1. You assign the incremented number to a control on your form and then immediately save the record. If your identifier includes additional information from the record, you use an expression that concatenates that information with the sequence number to display the full identifier.
Note this works only because we create a brand new table, add an autonumber column to it as well any other columns we need then insert records into it. It’ll be contiguous – as long we don’t delete any records from the table. Unfortunately, creating a brand new table every time we run this will result in bloat of the Access file – if you can do it in a separate Access file, all the better so that you can compact it when you need to.
In this scenario we are assuming that there will be no more than 999 documents attached to a case. In Scenario 2 we assumed no more than 9999 inquires during a year. So you need to adjust the number of zeros when formatting Sequence for the anticipated number of records. Of course this can always be changed later. You also don’t need to format the sequence with leading zeros as the Format function does. As shown the expression returns something like: DCASD/CI123-025 for the 25th document in case CI123 for client DCASD. Without leading zeros it would be: DCASD/CI123-25. The advantage to the latter is that you don’t have to anticipate the number of records you might have in the sequence, but I’ve found many users prefer a more uniform number with the leading zeros.

As you can see, an idea of sequential numbering can be solved many different ways using different domains. This is typical in this field of work and precisely why it pays to not just consider how you can do it in one domain but also whether the domain is the right domain. We saw how we can easily leverage built-in features such as Transact-SQL’s ROW_NUMBER() or Access report’s Running Sum property. We also not only saw how we can craft our custom solutions in either VBA or SQL but we also see how we can use both together to create a solution that is better.
One other thought. It may not hurt to make option 1 a logical expresssion where it will update the number IF a number other than 0 already exists for it. This will prevent it from giving a new number if you go back, edit it and save it. I accomplished this by adding the following (roughly): If PONo=0 Then My.PONo…. (Expression and save command) Else (Save Command)
I need the first column of a Pages table to display a number for each row (not including the header row), with the sequence continuing as I add rows. If possible, I need those numbers to adjust when I delete or insert rows (as opposed to adding them at the end). Another way to say this would be, I need the first cell in each row to display a number corresponding to that row's place in the table.
The system that you choose for numbering your invoices should correspond to your most prominent needs to make it as easy as possible for invoices to be located for referencing, and the sequence number must always be last to help you keep track and avoid duplication. Lots of accounting software provides an invoice number generator to help with this task.
Both the Collection Point ID and Artifact ID fields are bound properly and display those exact names in the property sheet under both control source and name. On the save button I have on the form, when I click on the event tab and the on click option I have event procedure and I click the […] option to open up the code builder and this is what I currently have:
Hello, can anyone help me with making serial numbers in this way: When I purchase 10 chairs, I want to monitor all of it by having serial numbers each of those 10 and those 10 numbers should have the prefix “CHR-” if they are chairs. “TBL” if tables, the codes are associated with the item category. BTW, items have categories predefined by beforehand on the items by relationships. So when I will want to monitor these 10 chairs, I will only have to click the “generate control numbers” button and each of those purchased items get their own control numbers.
GREAT tip with lots of uses! Thank you. This will save me hours of work on some tickets I’m designing. However, I also need to set up table tents that have numbers on them. They’re 2-up, and are folded, so each number needs to appear twice on the same page. In short, I want a page with 1/1 and 2/2, and I’m getting 1/2 and 3/4. Am I missing an obvious fix? Thank you.
×