Модификация характеристик
К сожалению, в Access попытка программно изменить характеристики полей таблицы или ее ключей и индексов невозможна. Я специально написал процедуру, в которой делается такая попытка:
Public Sub Modify() 'Изменение характеристик таблицы в Access невозможно! Dim myT As Table Dim myC As Column Dim myK As Key Dim myInd As Index 'Установить соединение с базой NewDB CreateConnection Cat1.ActiveConnection = Con1 'Связывание объекта Table с таблицей "Книги" Set myT = Cat1.Tables("Книги") Set myC = myT.Columns("Название_книги") 'myC.DefinedSize = 150 Set myC = myT.Columns("Число_страниц") 'myC.Type = adVarWChar
Set myK = myT.Keys("Код_книги") 'myK.Type = adKeyUnique Set myK = myT.Keys("AandB") 'myK.Type = adKeyPrimary End Sub
Как видите, все операторы, производящие изменения закомментированы, поскольку выполнение любого из них приводит к появлению ошибки. Хотя модификация характеристик полей, ключей и индексов таблицы базы данных Access невозможна, удаление самих элементов происходит без затруднений. Это позволяет при необходимости внесения изменений в характеристики элемента, вначале удалить его, а затем ввести заново с новыми характеристиками. Приведу процедуру, выполняющую удаление поля, ключа и индекса:
Public Sub Removing() 'Удаление элементов таблицы Dim myT As Table 'Установить соединение с базой NewDB CreateConnection Cat1.ActiveConnection = Con1 'Связывание объекта Table с таблицей "Книги" Set myT = Cat1.Tables("Книги") myT.Columns.Delete ("Художник") myT.Indexes.Delete ("AandB") 'myT.Keys.Delete ("AandB") End Sub
Заметьте, когда я вводил ключ "AandB", то был создан индекс с этим же именем. Удалив этот индекс, я автоматически удалили и ключ. По этой причине последний оператор процедуры закомментирован.
На этом я закончу рассмотрение объектов, связанных с таблицами базы данных и займусь другими объектами модели ADOX, которые позволяют работать с запросами, представлениями и пользователями.