Hast du Zugriff auf die sys.tables? Um welche Serverversion handelt es sich genau? Was passiert wenn du den Code direkt im, ich denke Mal MS SQL Server also, Management Studio unter den gleichen Rechten wie dein VB.net Programm ausführst?
dbo ist ein Datenbank Schema, so wie sys auch. Leider weiß ich noch nicht welches DB-System du nutzt und auch nicht ob das gleiche Query direkt im DB Management Tool zum gleichen Ergebnis kommt
Also die Fehlermeldung liegt nicht an deinem obigen SQL Code sondern an .Fill der datatable. Ich tippe mal da wird gefüllt noch bevor du prüfst ob es die Tabelle überhaupt gibt.
Dann verlagere deinen Code doch mal vom Form.Load auf einen Button in der Form. Dann sollte der Fehler ja nicht mehr auftreten, oder aber (und das denke ich) das Dataset wird durch den (ich glaube) TableAddapter schon vor deinem Code geladen.