Ошибка при добавлении столбца в 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)"