将MS Access数据库对象序列化为文本文件

时间:2009-08-17 21:33:15

标签: database ms-access version-control vba serialization

是否有一些代码可以让我序列化MS Access MDB文件中的所有对象。

表定义,表数据,查询定义,报表定义,VB模块等所有对象都应写入一个或多个文本文件。

没有必要扭转操作(但是很高兴)。我想将文本文件放到VCS中,以便跟踪更改和文档。

2 个答案:

答案 0 :(得分:4)

  • 从/向导入/导出Access表单,模块或宏 文本文件,使用无证件 LoadFromText / SaveAsText方法 应用程序对象。 (似乎你可以使用与查询和报告对象相同的方法)
  • 对于表,您可以使用DoCmd对象的transferDatabase方法。小心。通过这样做,您将松散表格结构并比较文本文件内容将是非常危险的。我建议你开发自己的表结构比较工具。我想网上也可以找到一些软件(谷歌进行MS Access表比较)
  • 要将相同表单/模块/宏的不同版本与文本文件进行比较,请使用文件比较工具等软件

使用SaveAsText命令导出时,您必须编写一些“清理”代码,以便通过(例如)抑制行号或内部访问引用来简化文件比较。

请查看以下链接:

How do you use version control with Access development?

Working with multiple programmers on MS Access

答案 1 :(得分:2)

不确定David Fenton的评论是什么意思,因为SaveAsText的方法不止一种。如果你这样做,它应该是有用的。

  For Each obj In Access.Application.CurrentData.AllQueries
    Access.Application.SaveAsText acQuery, obj.Name, strFilePath & "\Query_" & obj.Name & ".txt"
  Next

就表定义而言,您可能希望尝试如下的XML Export功能:

  For Each obj In Access.Application.CurrentData.AllTables
    Access.Application.ExportXML acExportTable, obj.Name, _
      strFilePath & "\TData_" & obj.Name & ".xml", _
      strFilePath & "\TDef_" & obj.Name & ".xsd", , , acUTF8
  Next