5

我需要从 Access 创建一个 XML 文件。它必须具有关系节点类型格式。

例如:

<Item>
   <description></description>
   <colors>
         <blue>
         <green>
   </colors>
</item>

项目的数据在表格中。颜色在另一个。我有参考 ID,所以我可以加入他们。

如何才能做到这一点。我已经查看了所有内容,看看如何导出表格,但不是嵌套类型的文件。

4

3 回答 3

2

创建一个SELECT查询,该查询使用参考 ID 将您的项目表与颜色表连接起来。

获得正确收集信息的查询后,将其数据从 Access 用户界面导出为 XML。

将查询导出到 XML

如果这为您提供了所需的 XML,您可以使用Application.ExportXML 方法从 VBA 自动执行导出操作。请注意,该方法提供了许多选项来调整 XML。但是导出可能就这么简单......

Application.ExportXML acExportQuery, "YourQuery", _
    "C:\SomeFolder\YourQuery.xml"
于 2013-09-24T17:00:37.640 回答
1

我使用附件在大约五分钟内生成了一个 300 万行的嵌套 xml。

有两个关键项目,

1)一个简单的VB,

Public Function Export_ListingData()

    Dim objOtherTbls As AdditionalData

    On Error GoTo ErrorHandle
    Set objOtherTbls = Application.CreateAdditionalData
    objOtherTbls.Add "ro_address"
    objOtherTbls.Add "ro_buildingDetails"
    objOtherTbls.Add "ro_businessDetails"
    objOtherTbls.Add "ro_businessExtras"
    objOtherTbls.Add "ro_businessExtrasAccounts"
    objOtherTbls.Add "ro_businessExtrasAccom"
    objOtherTbls.Add "ro_businessExtrasAccom2"

    Application.ExportXML ObjectType:=acExportTable, _
                DataSource:="ro_business", _
                DataTarget:="C:\Users\Steve\Documents\Conversions\ListData.xml", _
                AdditionalData:=objOtherTbls
Exit_Here:
        MsgBox "Export_ListingData completed"
        Exit Function
ErrorHandle:
        MsgBox Err.Number & ": " & Err.Description
        Resume Exit_Here
End Function

2) 使用从主键到外键的连接来链接关系管理器中的表。

如果它们没有关系,则代码将生成一个顺序的 xml 文件,如果主键之间存在关系,您将收到 31532 错误并且数据导出将失败。

于 2015-02-28T23:44:33.697 回答
1

下面是我用来查询数据然后将结果导出到平面文件的示例。我已经根据您的需要对其进行了一些调整。

 On Error GoTo Err_My_Click
 Dim rs As DAO.Recordset
 Set rs = CurrentDb.OpenRecordset("SELECT * FROM MyTable", dbOpenDynaset)

 If (rs.RecordCount <> 0) Then
   rs.MoveFirst

   Open "C:\Export\XML__MyFile.xml" For Output As #1

   Do While rs.EOF = False
     TempExportCount = TempExportCount + 1

     Print #1, "<Item>"
     Print #1, "    <description>" & rs.Fields("[Description]").value & "</description>"
     Print #1, "</Item>"

     rs.MoveNext
   Loop
 End If

Exit_My_Click:
  On Error Resume Next
  rs.Close
  Set rs = Nothing
  Close 1#
  Exit Sub
Err_My_Click:
  If (Err.Number = 76) Then
    MsgBox ("The program could not save the txt file." & vbNewLine & vbNewLine & _
            "Make sure you have the following folder created: C:\Export\")
  Else
    MsgBox (Err.Description)
  End If
  Resume Exit_My_Click
于 2013-09-24T16:03:05.037 回答