I am sorry but I not totally understanding what you mean when you say "start by outputting all of the recordset values to the screen". Do you mean, make sure they have a value in my database, or do you mean I should bind them to the textbox? I am lost, please help.
That's for troubleshooting, so yes, you would have to bind the values to a text box or just in the page somewhere. Once you're sure each field returns a value you can remove the binding as long as you continue to test using the same record.
Brenget clarified what I stated and what you had asked about, that the email script is attempting to reference a value that is no longer present because it just got deleted. So you have to declare variables after the recordset code, and use those variables in the email script in place of what is in there now.
If you use the departments example that I posted above to declare and populate the variable, then the email code would read:
myMail.HTMLBody= "URL: " & departments &_ ...and so on.
Just make sure you do that for each one of the variables you need to include in the body of the email.