和这段判断有关
If DataTables.Contains("成品总帐") = False And DataTables.Contains("成品明细") = False And DataTables.Contains("成品帐页") = False And DataTables.Contains("成品月结") = False Then
有可能是你之前加载了某个表导致判断出错。