以编程方式添加到MS Access关系图

时间:2010-11-09 17:15:04

标签: ms-access ado jet

我有一个应用程序通过JET数据库发送给客户,该数据库包括一个关系图,邀请更多精明的用户查看,以深入了解数据库的构建。

我的应用程序中还有代码,用于在新版本需要新表,新列或修改后的查询时更新数据库结构。我这样做是通过推送SQL通过ADO连接,它工作正常。

问题在于,如果我添加一个带有约束的新表,该约束将其与现有表相关联(例如,我将EmployeeHobbies与FK关系添加到Employees中的现有PK),而表正确构造了新表关系不会出现在关系图中。随着时间的推移,图表逐渐变得不那么完整。

是否有一种程序化方法来强制Access从数据库中的约束信息更新其关系图,否则,关系图是否存储在一些隐藏的系统对象中,我可以直接更新以反映我的更改?

编辑:我没有说明我的应用程序是用Delphi编写的,而不是MS Access。拥有MS Access副本的用户可以看到关系图,其他人则无法看到。

2 个答案:

答案 0 :(得分:2)

我不知道RunCommand是否适合,但是它的价值是什么:

DoCmd.RunCommand acCmdRelationships
DoCmd.RunCommand acCmdShowAllRelationships

答案 1 :(得分:1)

你可以利用Stephen Lebans的SaveRelationshipView来实现这个目标。他的代码将每个项目的属性从“关系”视图保存到表中。稍后可以从表中重新创建相同的布局视图。

您可以调整“关系”视图的副本,以确定要包含在tblRelationshipViews表中的新行的值。然后让用户根据更新的表信息重新创建他们的Relationships视图。也许你甚至可以自动为它们自动完成它。