Rachael2211 - If you let Access do the work, there's no need to requery anything, no need to run delete sql or query thus no need for that code, nor do you need a custom class (a Rube Goldberg machine in this case). All you need is a way to pass the user choice back to the subform (or sub-subform in this case). You could use an unbound textbox or add a custom property to the form. I chose the latter just to practice it again. Over-complicating your db with such things will make it harder for you to remember what you've done (especially since you didn't) and can leave you struggling when you have to modify or fix it.
Much of the unnecessary code involved is double commented out to distinguish it from any comments. Code I added is bounded by lines with '**
When in the vb editor, you can do a text based search on '** to find all of it.
On your form, click the trash can, get the prompt, and if the choice is Yes, the record should delete with no further prompting or need to requery.
You can restore the records I've already deleted if need be, by deleting the table and renaming the copy of it to the original name.
The delete prompt you'd normally get is suppressed by turning off warnings, which I prefer to not do but sometimes it's unavoidable. In those cases, I will always use an error handler to ensure they are turned back on.
You should check your code for errors. When I compiled it, some of your code generated a few errors. I had to comment out those lines too so I have no idea if what I did will still work if you need to uncomment them.