ADOX переставлять или вставлять столбцы, а не добавлять их в Access Vb6, VB.Net или CSharp

Мне нужно вставить поле в середине текущих полей таблицы базы данных. В настоящее время я делаю это в VB6, но может получить зеленый свет, чтобы сделать это в.net. В любом случае мне интересно, так как Access дает вам возможность "вставлять" поля в таблицу, есть ли способ сделать это в ADOX? Если бы мне пришлось, я мог бы отступить и использовать DAO, но не уверен, как это сделать.

Если вам интересно, почему я хочу сделать это, база данных приложений со временем изменилась, и меня просят создать программу обновления для некоторых установок с более старыми версиями.

Любая помощь будет отличной.

1 ответ

Это не должно быть необходимым. Используйте правильный список полей в ваших запросах, чтобы получить их в нужном порядке.

НО, если вам действительно нужно это сделать, я знаю только один способ - создать новую таблицу с полями в нужном порядке, прочитать данные из старой таблицы в новую, удалить старую таблицу и переименовать новую таблицу. как старый.

Я вас слышу: в Access важен порядок полей.

Если вам нужен комплексный способ работы с ADOX, вы должны посетить сайт Аллена Брауна. Я использовал его от моего новичка до профессионала в обработке изменений базы данных Access. Вот оно: https://allenbrowne.com/. Перейдите в "Советы по доступу", затем прокрутите вниз до "ADOX Code".

Именно здесь я обычно отсылаю людей, сомневающихся в возможностях Access как базы данных:)

В вашем случае вы будете перетасовывать создание новой таблицы с новым полем в правильном положении, копирование данных в новую таблицу, применение свойств к полям, удаление исходной таблицы, переименование новой таблицы в требуемое (оригинальное) имя.

Это правильный порядок. Не применяйте свойства поля перед копированием данных. Некоторые индексы и ключевые свойства могут не применяться, если в полях уже есть данные.

Со временем я автоматизировал это, поэтому я просто запустил приложение, чтобы обнаружить и внедрить необходимые для меня изменения. Но это заняло много рабочих недель.

Другие вопросы по тегам