我有几个具有确切表结构的mdb文件.我必须将主表的主键从autonumber更改为所有这些中的数字,这意味着我必须:
删除主表所具有的所有关系
更改主表
再次创建关系,...对于所有表.
有没有办法从一个文件导出关系并将它们导入到所有其他文件?
我确信这可以通过一些宏/ vb代码来完成.有没有人有我可以使用的例子?
谢谢.
不是一个完整的解决方案,但这可能会让你...
以下函数将打印出所有关系的元数据.将其更改为以您喜欢的任何格式保存到文件(CSV,制表符分隔,XML等):
Function PrintRelationships() For Each rel In CurrentDb.Relations With rel Debug.Print "Name: " & .Name Debug.Print "Attributes: " & .Attributes Debug.Print "Table: " & .Table Debug.Print "ForeignTable: " & .ForeignTable Debug.Print "Fields:" For Each fld In .Fields Debug.Print "Field: " & fld.Name Next End With Next End Function
此函数将删除数据库中的所有关系:
Function DropRelationships() With CurrentDb For Each rel In .Relations .Relations.Delete Name:=rel.Name Next End With End Function
此功能将创建一种关系.您将不得不迭代保存的关系数据的文件.
Function CreateRelationships() With CurrentDb Set rel = .CreateRelation(Name:="[rel.Name]", Table:="[rel.Table]", ForeignTable:="[rel.FireignTable]", Attributes:=[rel.Attributes]) rel.Fields.Append rel.CreateField("[fld.Name for relation]") rel.Fields("[fld.Name for relation]").ForeignName = "[fld.Name for relation]" .Relations.Append rel End With End Function
由于时间限制,错误处理和IO省略(让孩子们上床睡觉).
希望这可以帮助.