Мне интересно, возможно ли использовать VBA для хранения, удаления и воссоздания отношений в таблицах в Access VBA? Часть удаления проста, но как я могу застрять в ней, чтобы ее можно было восстановить после удаления.
Первоначально я хотел знать, чтобы я мог массово копировать определенные таблицы из одной базы данных в другую копию этой базы данных. Я столкнулся с проблемой в качестве реф. Целостность на столах мешала вставкам. Я думал о попытке сохранить, затем удалить отношения, вставить данные, а затем восстановить отношения с помощью DAO.
Подумав об этом и попытавшись придумать какой-то код, я отказался от этой идеи и вставил ее другим способом, чтобы вообще избежать этой проблемы. Однако после этого я размышлял, выполнимо ли то, что я пытался.
Есть мысли?
РЕДАКТИРОВАТЬ: Вот код, который я начал писать.
Private Sub Save_Click()
Dim db As DAO.Database
Set db = CurrentDb
'Save db.Relations somehow as SavedRelations
End Sub
Private Sub Delete_Click()
Dim db As DAO.Database
Dim rel As DAO.Relation
Set db = CurrentDb
For Each rel In db.Relations
db.Relations.Delete (rel.Name)
Next
End Sub
Private Sub Restore_Click()
Dim db As DAO.Database
Dim rel As DAO.Relation
Dim newRel As DAO.Relation
For Each rel In SavedRelations 'Stored relations from the Save sub
Set newRel = db.CreateRelation(rel.Name, rel.table, rel.ForeignTable, rel.Attributes)
For Each fld In rel.Fields
newRel.Fields.Append fld
Next
db.Relations.Append newRel
Next
End Sub