Как предполагается, вы хотите использовать файл MSXML.
Ваша проблема в том, что у вас (к сожалению) есть пространства имен, и 99% базовых (и чистых) примеров VBA не включают пространство имен. В простой оболочке имен пространства имен являются причиной мировой бедности, дорогого программного обеспечения и общих страданий в индустрии программного обеспечения.
Вы также не указываете, должны ли вы создавать отдельный xml-файл для каждой записи или хотите, чтобы данные были в одном выходном xml-файле.
Следующий код демонстрирует изящный способ работы с пространством имен.
Я также предполагаю, что вы помещаете одну запись доступа в один XML-файл, а затем записываете ее.
Если вам нужно добавить «много» записей в один XML-файл, то мое использование xPath «//» не будет работать, и вам придется создать новый узел и использовать «/» для ссылок на xPath.
Однако есть МНОГИЕ примеры msxml, обычно они только начинаются. И, как уже отмечалось, к сожалению, подавляющее большинство из этих примеров не затрагивает проблему пространства имен с УЖАСНЫМИ, МАССИВНЫМИ, НЕНАСТНЫМИ и БОЛЬНЫМИ.
Тем не менее, код будет выглядеть примерно так:
Sub xmlExport()
Dim xml As New MSXML2.DOMDocument60
Dim xmldoc As MSXML2.IXMLDOMNode
Dim strTemplate As String
Dim strOutFile As String
strTemplate = "c:\test2\template.xml"
If xml.Load(strTemplate) = False Then
MsgBox "cannot open xml template"
End If
xml.SetProperty "SelectionLanguage", "XPath"
xml.SetProperty "SelectionNamespaces", "xmlns:x='" & xml.namespaces(1) & "'"
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("SELECT * from tblDelivery where City = 'Edmonton'")
Dim i As Integer
Do While rst.EOF = False
i = i + 1 ' sequence number
xml.SelectSingleNode("//x:SequenceNo").Text = i
xml.SelectSingleNode("//x:RsNumber").Text = rst!ResNumber
xml.SelectSingleNode("//x:LicensePlate").Text = rst!License
xml.SelectSingleNode("//x:FirstName").Text = rst!FirstName
' . etc . etc.
strOutFile = "c:\outdata\xml" & i & ".xml"
xml.Save (strOutFile)
rst.MoveNext
Loop
rst.close
End Sub
Теперь, сказав выше, если у кого-нибудь есть хорошее решение для работы с xPath и пространством имен, я скажу «большое спасибо» и повторно отредактирую этот пост, чтобы убрать скандал о бедности в мире, боли и страданиях. xPath становится, когда задействованы пространства имен.