Ошибка при добавлении столбца в Access через набор записей

Я пытаюсь добавить столбец в существующую таблицу в MS Access 2010 с помощью adodb.recordset

rst.Open "ALTER TABLE tblPatients ADD COLUMN husband_profession TEXT", conn, adopendynamic, adlockoptimistic

Я получаю следующую ошибку

Ошибка ADODB.Recordset '800a0bb9'

Аргументы имеют неправильный тип, находятся за пределами допустимого диапазона или конфликтуют друг с другом.

1 ответ

ADODB.Recordset это объект, предназначенный для хранения записей.

ALTER TABLE оператор не возвращает записи.

Это является причиной конфликта в rst.Open --- вы не даете Open Метод является действительным источником данных для Recordset,

Предполагая ваш conn переменная объекта является допустимым открытым соединением, используйте его Execute способ выполнить ваш ALTER TABLE как это:

conn.Execute "ALTER TABLE tblPatients ADD COLUMN husband_profession TEXT"

Обратите внимание на доступ SQL TEXT тип без указания размера на самом деле даст вам памятное поле при выполнении из ADO. Если вы хотите вместо этого простое текстовое поле, добавьте размер после TEXT ключевое слово. Максимальный размер текстового поля Access составляет 255 символов. Вы можете заменить меньшее число, если хотите.

conn.Execute "ALTER TABLE tblPatients ADD COLUMN husband_profession TEXT (255)"
Другие вопросы по тегам