В языке JET-SQL вы должны быть более конкретны с синтаксисом и добавить слово «COLUMN» в предложение «ALTER TABLE». Exemple:
strSql = "ALTER TABLE MyTable ADD COLUMN MyField DECIMAL (28,3);"
strSql = "ALTER TABLE MyTable ADD COLUMN MyText TEXT(3);"
Согласно справке, вы можете определить значение по умолчанию, но я никогда не пробовал его. Этот синтаксис действителен только для базы данных Access / JET. Я не думаю, что это будет работать, если вы достигнете своей таблицы доступа через ODBC или ADO.
В таких ситуациях вы можете изменить структуру вашей базы данных другими способами. Вы найдете пример здесь . Это было сделано с помощью объектной модели DAO, но ее можно легко переключить на общую объектную модель ADO для использования с подключением ADODB.
РЕДАКТИРОВАТЬ: одно «неявное решение ADO» (то есть использование соединения ADODB, но не объектов таблиц ADO и т. Д.) Может быть следующим:
(для примеров строки подключения проверьте здесь )
Dim myConnection AS ADODB.connection
set myConnection = New ADODB.connectionString
myConnection.connectionString = 'here is your connection string'
myConnection.open
myConnection.execute "ALTER TABLE myTable ADD Column MyField DECIMAL (12,3);"
myConnection.close
Если вы работаете с активным файлом MDB, просто напишите:
CurrentProject.Connection.Execute "ALTER TABLE myTable ADD Column MyField DOUBLE;"
Вот и все.
Если вы предпочитаете использовать объекты ADO, добавьте библиотеку ADOX в ваш код и используйте метод Table.columns.append
. Вы найдете пример здесь