Если вы хотите создать новый столбец в таблице доступа, легко использовать объект DAO.tableDef:
Dim my_tableDef As DAO.TableDef
Dim my_field As DAO.Field
Set my_tableDef = currentDb.TableDefs(my_table)
Set my_Field = my_tableDef.CreateField(my_fieldName, dbDecimal, myFieldSize)
my_Field.decimalPlaces = myDecimalPlaces
my_Field.defaultValue = myDefaultValue
my_tableDef.Fields.Append my_Field
set my_Field = nothing
set my_tableDef = nothing
Конечно, вы можете в дальнейшем удалить его.
Возможно, у вас есть возможность сделать это с объектом ADODB (или ADOX?), Но до тех пор, пока вы работаете с файлом mdb, DAO прост и эффективен.
PS: после проверки на некоторых форумах кажется, что есть ошибка с десятичными полями и DAO. http://allenbrowne.com/bug-08.html. Советы "идти на удвоение" (что я обычно делаю, чтобы избежать каких-либо непростых проблем, связанных с десятичным округлением) или использовать "неявный" ADO для изменения вашей базы данных
strSql = "ALTER TABLE MyTable ADD COLUMN MyField DECIMAL (28,3);"
CurrentProject.Connection.Execute strSql