There are a couple of techniques you could use...
You could re-validate all of the forms controls under the save button and have those validation functions return a bool that you can check, or iterate through each control on the form and see if the errorProvider has an error for it. For example...
errorProvider1.Clear();
bool success = ValidateX1();
if (success) success = ValidateX2();
if (success) success = ValidateX3();
if (success)
{
}
or
success = true;
foreach (Control c in this.Controls)
{
if (errorProvider1.GetError(c).Length > 0)
success = false;
}
if (success)
{
}
[EDIT]
because the OP had his controls in a table, my suggested code of
foreach (Control c in this.Controls)
only found the table. The OP used another, nested foreach loop to look through the controls in the table once the outer loop had located it.