Dim ds as New DataSet
(или, если он уже определен, ds = New DataSet) ... это все, что вам нужно для инициализации реального объекта DataSet. Именно использование ключевого слова «New» создает объект. Позже, после того, как в нем есть несколько DataTables, вы можете очистить их с помощью
ds.Tables.Clear
Как говорит Джон,
Dim ds as Dataset = nothing
... не создает экземпляр DataSet, инициализированный или иным образом. Все, что он делает, это определяет 'ds' как переменную, которая должна ссылаться на экземпляр класса DataSet, и явно устанавливает его так, чтобы он ничего не указывал.
Dim ds as DataSet
.. достиг бы того же. Опять же, позже, после того, как вы использовали свой DataSet,
ds = Nothing
... не реинициализирует DataSet, все, что он делает, это устанавливает вашу переменную 'ds', чтобы она больше ни на что не ссылалась.