Добавить поле в таблицу Access довольно просто, если в данный момент приложение не имеет открытой таблицы. Однако использование FieldDefs.Add не является способом сделать это, потому что он делает что-то еще, что не относится к этой задаче.
Предполагая, что ваша форма Delphi (или модуль данных) имеет AdoTable1, настроенный на доступ к таблице, которую вы хотите изменить, и то, что имя таблицы в базе данных Access - «Отели», добавит к ней столбец «Комнаты»:
procedure TForm1.Button1Click(Sender: TObject);
begin
if AdoTable1.Active then // close the Hotels table if AdoTable1 accesses it
AdoTable1.Close;
try
AdoConnection1.Connected := True;
AdoConnection1.Execute('alter table Hotels add column rooms text(6)');
finally
AdoTable1.Open;
end;
end;
Примечание. Мой AdoConnection1 настроен для доступа к базы данных, используя «Поставщик OLE DB для ядра базы данных Microsoft Office 16».
Кстати, если вы используете «постоянные поля» в своей таблице AdoTable (список полей, которые вы получаете, если щелкнуть по нему правой кнопкой мыши и выбрать « Редактор полей ... »из всплывающего меню, вам нужно будет добавить в него поле Комнаты. Если вы не используете постоянные поля, вам не нужно беспокоиться об этом.
FieldDefs.Add
вы упомянули для добавления поля в вашем приложении Delphi, например, в AdoTable1, если по какой-то причине оно еще не было включено, например, если вы добавили поле в таблицу с помощью приложения MS Access.