Uploaded August 2026 | Updated September 2026, 2 weeks ago
In this lesson, we will explain how BOF and EOF work in DAO recordsets and why both values must be True to confirm an empty recordset. We will walk through how current-record position changes with MoveNext and MovePrevious, why EOF alone does not mean no records were returned, and how to safely test and process recordsets after opening them. We will also discuss RecordCount behavior and a few navigation considerations after deleting records.
Scott from Lansing, Michigan (a Platinum Member) asks I'm checking whether a customer recordset returned anything before I loop thru the results. Sometimes my code says there are no records even though I know it found customers, especially after I've moved through the list. Why does that happen, and what's the reliable way to tell if the query really returned nothing?
Silver Members & up get access to an Extended Cut of this video. In the extended cut, we will build a recordset explorer with buttons to move first, previous, next, and last. We will create a reusable HasRecords function, test recordset navigation behavior, and use a form-level recordset variable to keep the recordset open while working with an unbound form.
MEMBERS-ONLY EXTENDED CUT VIDEO:
youtu.be/Q-zi63_WNeI
CHAPTERS:
00:00 Introduction
02:13 Understanding Recordset Boundaries
09:01 Prerequisites
10:05 DAO Recordset Demonstration
12:31 Testing for an Empty Recordset
14:38 Navigating Before the First Record
16:22 Safely Exiting and Closing Recordsets
19:33 Practical BOF, EOF, and RecordCount Tips
21:16 Conclusion
BECOME A MEMBER:
YouTube: youtube.com/channel/UCl7-jJie4ifOVK87FINIuDg/join
or My Site: 599cd.com/THMember
LEARN MORE:
BOF EOF: 599cd.com/BOFEOF
PREREQUISITES:
Intro to VBA: 599cd.com/IntroVBA
Status Box: 599cd.com/Status
Recordsets: 599cd.com/Recordset
While Wend Loop: 599cd.com/While
SQL with Access: 599cd.com/SQLwithAccess
LINKS:
Do Records Exist?: 599cd.com/DoRecordsExist
RecordCount: 599cd.com/RecordCount
Immediate: 599cd.com/Immediate
Recordset Clone: 599cd.com/RecordsetClone
No Data: 599cd.com/NoData
RECOMMENDED COURSES:
Access Developer 18: 599cd.com/ACD18
FREE TEMPLATE DOWNLOADS:
TechHelp Free Templates: 599cd.com/THFree
Blank Template: 599cd.com/Blank
Contact Management: 599cd.com/Contacts
Order Entry & Invoicing: 599cd.com/Invoicing
More Access Templates: 599cd.com/AccessTemplates
DIAMOND SPONSORS:
More info on our Sponsors: 599cd.com/DiamondSponsors
ADDITIONAL RESOURCES:
FREE Access Beginner Level 1: 599cd.com/Free1
How to Use Access in 30 Minutes: 599cd.com/30Minutes
$1 Access Level 2: 599cd.com/1Dollar
Donate to my Tip Jar: 599cd.com/TipJar
Merch Store! Get your swag here: 599cd.com/Merch
Get on my Mailing List: 599cd.com/YTML
Contact Me: 599cd.com/Contact
TechHelp: 599cd.com/TechHelp
Consulting Help: 599cd.com/DevNet
Twitter: twitter.com/LearningAccess
en.wikipedia.org/wiki/Microsoft_Access
products.office.com/en-us/access
microsoft.com/en-us/microsoft-365/blog/access
KEYWORDS:
TechHelp, Access 2016, Access 2019, Access 2021, Access 2024, Access 365, Microsoft Access, MS Access, MS Access Tutorial, #msaccess, #microsoftaccess, #help, #howto, #tutorial, #learn, #lesson, #training, #database, DAO recordset BOF EOF, empty recordset check, VBA recordset navigation, DAO MoveNext MovePrevious, CurrentDb OpenRecordset, VBA EOF error, DAO RecordCount MoveLast, VBA no current record, DAO recordset cleanup
QUESTIONS:
Please feel free to post your questions or comments below. Thanks.
Live long, and prosper.
In this lesson, we will explain how BOF and EOF work in DAO recordsets and why both values must be True to confirm an empty recordset. We will walk through how current-record position changes with MoveNext and MovePrevious, why EOF alone does not mean no records were returned, and how to safely test and process recordsets after opening them. We will also discuss RecordCount behavior and a few navigation considerations after deleting records.
Scott from Lansing, Michigan (a Platinum Member) asks I'm checking whether a customer recordset returned anything before I loop thru the results. Sometimes my code says there are no records even though I know it found customers, especially after I've moved through the list. Why does that happen, and what's the reliable way to tell if the query really returned nothing?
Silver Members & up get access to an Extended Cut of this video. In the extended cut, we will build a recordset explorer with buttons to move first, previous, next, and last. We will create a reusable HasRecords function, test recordset navigation behavior, and use a form-level recordset variable to keep the recordset open while working with an unbound form.
MEMBERS-ONLY EXTENDED CUT VIDEO:
youtu.be/Q-zi63_WNeI
CHAPTERS:
00:00 Introduction
02:13 Understanding Recordset Boundaries
09:01 Prerequisites
10:05 DAO Recordset Demonstration
12:31 Testing for an Empty Recordset
14:38 Navigating Before the First Record
16:22 Safely Exiting and Closing Recordsets
19:33 Practical BOF, EOF, and RecordCount Tips
21:16 Conclusion
BECOME A MEMBER:
YouTube: youtube.com/channel/UCl7-jJie4ifOVK87FINIuDg/join
or My Site: 599cd.com/THMember
LEARN MORE:
BOF EOF: 599cd.com/BOFEOF
PREREQUISITES:
Intro to VBA: 599cd.com/IntroVBA
Status Box: 599cd.com/Status
Recordsets: 599cd.com/Recordset
While Wend Loop: 599cd.com/While
SQL with Access: 599cd.com/SQLwithAccess
LINKS:
Do Records Exist?: 599cd.com/DoRecordsExist
RecordCount: 599cd.com/RecordCount
Immediate: 599cd.com/Immediate
Recordset Clone: 599cd.com/RecordsetClone
No Data: 599cd.com/NoData
RECOMMENDED COURSES:
Access Developer 18: 599cd.com/ACD18
FREE TEMPLATE DOWNLOADS:
TechHelp Free Templates: 599cd.com/THFree
Blank Template: 599cd.com/Blank
Contact Management: 599cd.com/Contacts
Order Entry & Invoicing: 599cd.com/Invoicing
More Access Templates: 599cd.com/AccessTemplates
DIAMOND SPONSORS:
More info on our Sponsors: 599cd.com/DiamondSponsors
ADDITIONAL RESOURCES:
FREE Access Beginner Level 1: 599cd.com/Free1
How to Use Access in 30 Minutes: 599cd.com/30Minutes
$1 Access Level 2: 599cd.com/1Dollar
Donate to my Tip Jar: 599cd.com/TipJar
Merch Store! Get your swag here: 599cd.com/Merch
Get on my Mailing List: 599cd.com/YTML
Contact Me: 599cd.com/Contact
TechHelp: 599cd.com/TechHelp
Consulting Help: 599cd.com/DevNet
Twitter: twitter.com/LearningAccess
en.wikipedia.org/wiki/Microsoft_Access
products.office.com/en-us/access
microsoft.com/en-us/microsoft-365/blog/access
KEYWORDS:
TechHelp, Access 2016, Access 2019, Access 2021, Access 2024, Access 365, Microsoft Access, MS Access, MS Access Tutorial, #msaccess, #microsoftaccess, #help, #howto, #tutorial, #learn, #lesson, #training, #database, DAO recordset BOF EOF, empty recordset check, VBA recordset navigation, DAO MoveNext MovePrevious, CurrentDb OpenRecordset, VBA EOF error, DAO RecordCount MoveLast, VBA no current record, DAO recordset cleanup
QUESTIONS:
Please feel free to post your questions or comments below. Thanks.
Live long, and prosper.










