זה בגלל
שה-Conn.Open נכשל, אבל בגלל שכתבת On Error Resume Next, הוא לא התייחס לזה שיש לך שגיאה, ופשוט ניסה לפתוח את ה-Reader על קונשקן סגור, מה שנתן שגיאה.
אל תשתמש ב-On error (לא ידעתי שדבר כזה קיים בכלל ב-VB.NET). תשתמש ב-Try..Catch..Finally...End Try. גישה הרבה יותר אינטואיטיבית, שמתאימה בדיוק למה שאתה צריך, ומיועדת למנוע תקלות מסוג הדבר ה"מוזר" הזה שקרה לך פה. דוגמא:
Try Conn.Open() Catch (e As Exception) ' לא סגור על הסינטקס של השורה הזאת 'There has been an error - display the error to the user. Finally Conn.Close() End Try