Программная установка (изменение) связей таблиц.

Изменение связей между таблицами (один к нескольким, один к одному и т.п.) с помощью запросов.
 
'1 вариант использование SQL (раздела DDL (динамическое определения данных))

Sub CreatReff1()
    'Создаем две таблицы: Klient (Клиенты) и Zakaz(Заказы)
    CurrentDb.Execute "CREATE TABLE Klient ([idKlient] counter,[klFamilia] text,[klName] text,[klTelefon] text,[klRem] memo,CONSTRAINT [id_Key] PRIMARY KEY ([idKlient]));"
    CurrentDb.Execute "CREATE TABLE Zakaz ([idZakaz] counter, [zakNomer] integer,[zakKlientID] integer,[zakData] date,[zaklRem] memo,CONSTRAINT [id_zakKey] PRIMARY KEY ([idZakaz]));"

    CurrentDb.Execute "CREATE Unique  INDEX  NewInde1x ON Klient ([klName], [klFamilia]);"
    
'Устанавливаем связь между таблицами (Zakaz.zakKlientID-Klient.idKlient)
    CurrentDb.Execute "ALTER TABLE Zakaz ADD CONSTRAINT ref1 FOREIGN KEY (zakKlientID) REFERENCES Klient (idKlient)"
End Sub

'2 вариант использование DAO

Sub CreatReff2()
    Dim rel As DAO.Relation
    'Используем таблицы из предыдущего варианта
    'Создаем связь с между ними
    Set rel = CurrentDb.CreateRelation("ref1", "Klient", "Zakaz", dbRelationUpdateCascade)

    'настраеваем поля связи
    rel.Fields.Append rel.CreateField("idKlient")
    rel.Fields!idKlient.ForeignName = "zakKlientID"

    'добавляем вышесозданную связь в коллекцию "Связи"
    CurrentDb.Relations.Append rel
End Sub


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=7529