UNIQUE - определяет поле как неповторяющийся ключ. Если ключ определен по нескольким полям, то неповторяющейся должна быть комбинация полей
PRIMARY KEY - определяет набор полей как первичный ключ. В таблице может быть только один первичный ключ. Значения полей должны быть неповторяющиеся
FOREIGN KEY - определяет поле как внешний ключ. Если первичный ключ внешней таблицы состоит более чем из одного поля, необходимо использовать определение составного индекса, перечисляя все ссылающиеся поля, имя внешней таблицы и имена полей, на которые делается ссылка в внешней таблице в той же последовательности, в которой указаны ссылающиеся поля
Sub proba_DB5()
Dim i As Integer
Dim strSQL As String
Dim path As String
path = ActiveWorkbook.path
Set MyWs = DBEngine.Workspaces(0)
If Dir(path + "\DBproba2.mdb") <> "" Then Kill path + "\DBproba2.mdb"
Set MyDB = MyWs.CreateDatabase(path + "\DBproba2.mdb", _
dbLangCyrillic, dbVersion40)
strSQL = "Create table stud ([key_stud] COUNTER CONSTRAINT key_stud PRIMARY KEY, [fio_stud] TEXT (50),[birthday_stud] DATETIME, [key_town] LONG)"
MyDB.Execute strSQL
strSQL = "Create table town ([key_town] COUNTER PRIMARY KEY, [name_town] TEXT (50))"
|
|
MyDB.Execute strSQL
strSQL = "ALTER table stud ADD CONSTRAINT key_town FOREIGN KEY(key_town) REFERENCES town (key_town)"
MyDB.Execute strSQL
MyDB.Close
End Sub
Уплотнение базы данных
Для повышения быстродействия Visual Basic откладывает удаление ненужных (удаленных) страниц до тех пор, пока не будет закрыта база данных и не будет произведено уплотнение неиспользуемых страниц. Через некоторое время можно обнаружить, что файл mdb возрастает пропорционально удаляемой и добавляемой информации.
Метод CompactDatabase даем возможность в процессе уплотнения применить шифрование данных или отключить его, изменить версию и национальный стандарт.
Перед уплотнением базы данных она должна быть закрыта. Также нельзя использовать одинаковые имена для исходных и результирующих баз. Уплотнение нельзя выполнять внутри транзакции
DBEngine.CompactDatabase исх_имя, Рез_имя, стандарт, параметры
Стандарт и параметры - такие же как и у CreateDatabase
Пример:
DBEngine.CompactDatabase "C:\temp\my_old_db.mdb", "C:\work\my_new_db.mdb", dbLangGeneral