You are opening an entire SQL Server table (or whatever), walking through each row then for each, opening multiple separate recordsets, then updating each record.
This is a classic definition of SLOW CRAWL.
Don't see why all of these updates should be necessary every time the form is open.
First, I would question the database design.
Next, all of whatever processing is necessary should be moved to the server and done in a bulk/batch process. NOT row by row.
You will need to provide much more detail.