Модераторы: Akina
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Замена связей БД, изменение связей с помощью VBA 
:(
    Опции темы
foralcome
Дата 2.9.2008, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 4.5.2008
Где: г.Новосибирск, Ро ссия

Репутация: нет
Всего: нет



Импортировал данные из "Старой" БД в "Новую" с сохранением старых связей, которые мне надо сейчас заменить на новые.
Подскажите пожалуйста как это сделать ПРОГРАММНО, т.к. вручную  (с помощью Схемы данных) smile это очень долго.
Пример 
----------- Было ----------
== Заказ:
ID
НазваниеОрганизации
Улица

----------- Сейчас ----------
== Заказ:
ID
ID НазваниеОрганизации
ID Улица
НазваниеОрганизации
Улица

== Огранизация:
ID
НазваниеОрганизации

== Улица:
ID
Улица

Заказ.НазваниеОрганизации - Организация.Название 
Заказ.Улица - Улица.Улица
(поля Заказ.ID НазваниеОрганизации соответствуют Организация.ID и Заказ.ID Улица соответствуют Улица.ID)

----------- Надо ----------
Заказ.ID НазваниеОрганизации - Организация.ID
Заказ.ID Улица - Улица.ID
PM MAIL ICQ   Вверх
Akina
Дата 2.9.2008, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(MSDN)

Relation Object, Relations Collection Example (MDB)
The following example removes the existing relationship between an Employees table and an Orders table and then re-creates the relationship by creating a new Relation object.

Код

Sub NewRelation()
    Dim dbs As Database
    Dim fld As Field, rel As Relation
    
    ' Return reference to current database.
    Set dbs = CurrentDb
    ' Find existing EmployeesOrders relation.
    For Each rel In dbs.Relations
        If rel.TABLE = "Employees" And _
            rel.ForeignTable = "Orders"
        Then
        ' Prompt user before deleting relation.
        If MsgBox(rel.Name & " already exists. " _
            & vbCrLf _
            & "This relation will be deleted and " _
            & "re-created.", vbOK) = vbOK 
        Then
                dbs.Relations.Delete rel.Name
            ' If user chooses Cancel, exit procedure.
            Else
                Exit Sub
            End If
        End If
    Next rel
    ' Create new relationship and set its properties.
    Set rel = dbs.CreateRelation("EmployeesOrders", "Employees", "Orders")
    ' Set Relation object attributes to enforce
    ' referential integrity.
    rel.Attributes = dbRelationDeleteCascade + _
        dbRelationUpdateCascade
    ' Create field in Fields collection of Relation object.
    Set fld = rel.CreateField("EmployeeID")
    ' Provide name of foreign key field.
    fld.ForeignName = "EmployeeID"
    ' Append field to Relation object and 
    ' Relation object to database.
    rel.Fields.Append fld
    dbs.Relations.Append rel
    MsgBox "Relation '" & rel.Name & "' created."
    Set dbs = Nothing
End Sub



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.4287 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.