Version 1.1 First Published 27 July 2022 Approx 0.6 MB (zipped)
The idea for this article was based in a request by AccessForums.net member Deepak Gupta in this forum thread from January 2018:
How to Control the Number of Entries
Deepak asked for help in limiting the number of records allowed in a subform of a simple Billing database. Deepak wrote:
I have tblBill & tblBillDetails (Child Table). I am using frmBill & frmBillDetail(Sub form) for user to input data. Form frmBillDetail is showed in datasheet view.
I want to control that each entry of tblBill, can have maximum of 10 records for tblBillDetails.
As well as providing specific assistance for Deepak's database, I created an example app to demonstrate how this can be done with minimal code.
The app includes a form and subform based on related tables tblSale and tblSaleDetails with SaleID as the PK and FK fields respectively
The table relationship is an OUTER join so extra records can be added up to the record limit
Below record limit - Additional records can be added
At record limit - No more records allowed
The code limiting the records is in the Form_Current event of the subform
CODE:
Private Sub Form_Current()
If Me.Dirty Then Me.Dirty = False
If Nz(Me.SaleID,0) <> 0 Then
Me.AllowAdditions = DCount("*", "tblSaleDetails", "SaleID = " & Me.SaleID) < Nz(DLookup("MaxRecords", "tblRecordLimit"), 0)
End If
End Sub
The record limit value is stored in a table tblRecordLimit
In the example app, the record limit can be set on the main form - currently this is 5.
Alternatively just set your own fixed value (e.g. 10), remove the table & form controls and alter the above code to:
CODE:
Private Sub Form_Current()
If Me.Dirty Then Me.Dirty = False
If Nz(Me.SaleID,0) <> 0 Then
Me.AllowAdditions = DCount("*", "tblSaleDetails", "SaleID = " & Me.SaleID) < 10
End If
End Sub
NOTE:
Whichever approach is used, it is ESSENTIAL that end users are NOT allowed direct access to the tables otherwise they will still be able to add additional records
I have created a short video demonstrating how this works
The video is available on my YouTube channel at https://youtu.be/L1chhLzfNDI or you can click below:
Download
Click to download: Limit Records Example (zipped)
Feedback
Please use the E-Mail button in the contact form below to let me know whether you found this article useful or if you have any questions.
Please also consider making a donation towards the costs of maintaining this website. Thank you
Colin Riddington Mendip Data Systems Last Updated 27 July 2022
|
Return to Example Databases Page
|
Return to Top
|