powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Экспорт в xml
25 сообщений из 27, страница 1 из 2
Экспорт в xml
    #38332239
tuandreeva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, экспортирую данные в xml
Не знаю как создать новый узел: <Caption> (в приложении)
И - <DocumentsList Code="0302" Name="Платежные поручения"> вместо узла <ПлатежныеПоручения>

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
Public Sub ExportXML(rs As Recordset, strHeading$, fileName$)
   
   ' Экспорт таблицы RecordSet в XML файл
   Dim xmlDoc As DOMDocument
   
   ' Cоздаем XMLDOM-объект
   Set xmlDoc = RecordsetToXMLDOM(rs, strHeading$)
 
   ' выводим его в виде отдельного файла
   xmlDoc.Save fileName$
End Sub
 
Public Function RecordsetToXMLDOM(rs As Recordset, strHeading$) As DOMDocument
   '
   ' Преобразование Recordset в DOMDocument
   '
   Dim fldField As Field
   Dim xmlDoc As DOMDocument
   Dim xmlFields As IXMLDOMElement
   Dim xmlField As IXMLDOMElement
   Dim i&
 
   ' создание экземпляра объекта
   Set xmlDoc = CreateObject("Microsoft.XMLDOM")    ' New DOMDocument
   ' записываем XML-константу объекта
   xmlDoc.LoadXML "<?xml version='1.0' encoding='windows-1251' ?>" + _
      Replace("<" + strHeading + "/>", " ", "_")
       ' '
      
   With rs
          ' создание нового узла1
          Set xmlFields1 = xmlDoc.DocumentElement.appendChild _
            (xmlDoc.createElement("ПлатежныеПоручения"))
 
   End With
   With rs
      ' Вывод содержимого полей таблицы
      .MoveFirst: i = 1
       Do Until .EOF
          ' создание нового узла3
          Set xmlFields = xmlFields1.appendChild _
            (xmlDoc.createElement("R"))
 
          For Each fldField In rs.Fields   ' запись полей записи
            If IsNull(fldField) = True Then
            Else
                Set xmlField = xmlFields.appendChild( _
                xmlDoc.createElement(Replace(fldField.Name, " ", "_")))
                xmlField.Text = fldField.Value
            End If
          Next
         .MoveNext   ' к следующей записи набора
          i = i + 1
      Loop
   End With
   Set RecordsetToXMLDOM = xmlDoc   ' возвращаем созданный объект
End Function
Private Sub ЭкспортУРМ_Click()
Dim strConnectString$, strSQL$, strHeading$
    strHeading = "KristaExchange"
   
    Dim rs As Recordset
    Dim MyDB As Database
    Dim MySQL As Variant
    
    Set MyDB = CurrentDb
    MySQL = "SELECT * FROM Caption_OUT"
    Set rs = MyDB.OpenRecordset(MySQL)
   
   Call ExportXML(rs, strHeading$, "d:\xml\file1.xml")
   
End Sub
 
...
Рейтинг: 0 / 0
Экспорт в xml
    #38332410
tuandreeva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Новый узел <Caption> создала, но вот узел <ПлатежныеПоручения> должен называться:
<DocumentsList Code="0302" Name="Платежные поручения">
Если я его так записываю, то выходит ошибка, не должны быть символы " "
Как записать название узла?
...
Рейтинг: 0 / 0
Экспорт в xml
    #38332416
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tuandreevaНовый узел <Caption> создала, но вот узел <ПлатежныеПоручения> должен называться:
<DocumentsList Code="0302" Name="Платежные поручения">Если я его так записываю, то выходит ошибка, не должны быть символы " "
Как записать название узла?
это НЕ название узла,
это нода (DocumentsList), дочерняя рутовой, и имеющая 2-а атрибута : Code и Name ,
со значениями 0302 и Платежные поручения - соответственно
...
Рейтинг: 0 / 0
Экспорт в xml
    #38332433
tuandreeva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как они записываются?
Может есть ссылки?
...
Рейтинг: 0 / 0
Экспорт в xml
    #38332502
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tuandreevaА как они записываются?

Код: vbnet
1.
2.
3.
    Set xmlNode = xmlNode.appendChild(xmlDoc.createElement("DocumentsList"))
    xmlNode.setAttribute "Code", "0302"
    xmlNode.setAttribute "Name", "Платежные поручения"


авторМожет есть ссылки?
http://www.script-coding.com/XMLDOMscripts.html
...
Рейтинг: 0 / 0
Экспорт в xml
    #38332681
tuandreeva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112,

СПАСИБО
...
Рейтинг: 0 / 0
Экспорт в xml
    #38333253
tuandreeva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полдня "играла в игру" найди отличия. У меня формируются файлы .xml (см. во вложении). 121000.xml загружается в программу, а file1.xml нет. В чем их отличие, структура вроде одинаковая, можно ли их программно сравнить?
...
Рейтинг: 0 / 0
Экспорт в xml
    #38333346
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tuandreevaПолдня "играла в игру" найди отличия. У меня формируются файлы .xml (см. во вложении). 121000.xml загружается в программу, а file1.xml нет. В чем их отличие, структура вроде одинаковая, можно ли их программно сравнить?
этого нет в file1 и есть в 121000
SourceBudgetPromiseAgrNum

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
Sub test()
    Dim xmlDoc1 As MSXML2.DOMDocument
    Dim xmlDoc2 As MSXML2.DOMDocument
    Dim xmlNodeList1 As MSXML2.IXMLDOMNodeList
    Dim xmlNodeList2 As MSXML2.IXMLDOMNodeList
    Dim xmlNode1 As MSXML2.IXMLDOMNode
    Dim xmlNode2 As MSXML2.IXMLDOMNode
    Dim xml_path As String
    '
    Set xmlDoc1 = CreateObject("MSXML2.DOMDocument")
    xmlDoc1.async = False
    xmlDoc1.Load (CurrentProject.Path & "\121000.xml")
    
    Set xmlDoc2 = CreateObject("MSXML2.DOMDocument")
    xmlDoc2.async = False
    xmlDoc2.Load (CurrentProject.Path & "\file1.xml")
    
    xml_path = "/KristaExchange/DocumentsList/Caption/R/*"
    Set xmlNodeList1 = xmlDoc1.documentElement.selectNodes(xml_path)
    

    For Each xmlNode1 In xmlNodeList1
        xml_path = "/KristaExchange/DocumentsList/Caption/R/V[@Name=""" & xmlNode1.Attributes(0).nodeValue & """]"
        Set xmlNodeList2 = xmlDoc2.documentElement.selectNodes(xml_path)
         
        Debug.Print xmlNode1.Attributes(0).nodeValue, xmlNodeList2.length
    Next
    '
    Debug.Print "--------------------------------------"
    
    xml_path = "/KristaExchange/DocumentsList/Detail00/R/*"
    Set xmlNodeList1 = xmlDoc1.documentElement.selectNodes(xml_path)
    
    For Each xmlNode1 In xmlNodeList1
        xml_path = "/KristaExchange/DocumentsList/Detail00/R/V[@Name=""" & xmlNode1.Attributes(0).nodeValue & """]"
        Set xmlNodeList2 = xmlDoc2.documentElement.selectNodes(xml_path)
         
        Debug.Print xmlNode1.Attributes(0).nodeValue, xmlNodeList2.length
    Next
    
End Sub


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
test
ID             1 
DocumentNumber               1 
DocumentDate   1 
PayDate        1 
AcceptDate     1 
Summa          1 
PayTypeCls     1 
Note           1 
PayPriority    1 
OperationTypeCls             1 
BuhPaymentCls  1 
SourceFacialAccCls           1 
DestFacialAccCls             1 
SourceAccountName            1 
SourceBankDepNumber          1 
SourceServiceAccountName     1 
SourceOrgINN   1 
SourceOrgKPP   1 
SourceOrgName  1 
SourceOrgCity  1 
SourceBankName               1 
SourceBankBIK  1 
SourceBankCor  1 
SourceBankCity               1 
SourceFacialCode             1 
SourceServiceOrgINN          1 
SourceServiceOrgKPP          1 
SourceServiceOrgName         1 
SourceServiceOrgCity         1 
DestAccountName              1 
DestBankDepNumber            1 
DestServiceAccountName       1 
DestOrgINN     1 
DestOrgKPP     1 
DestOrgName    1 
DestOrgCity    1 
DestBankName   1 
DestBankBIK    1 
DestBankCor    1 
DestBankCity   1 
DestFacialCode               1 
DestServiceOrgINN            1 
DestServiceOrgKPP            1 
DestServiceOrgName           1 
DestServiceOrgCity           1 
OperationDirection           1 
BudgetRef      1 
ClsType        1 
--------------------------------------
ID             1 
Summa          1 
RecordIndex    1 
BuhOperationCLS              1 
ClsType        1 
SourcePROMISE  1 
SourceBudgetPROMISENum       1 
SourceBudgetPromiseAgrNote   1 
SourceBudgetPromiseAgrReestrNum            1 
SourceBudgetPromiseAgrSumma  1 
SourceBudgetPromiseAgrDate   1 
SourceBudgetPromiseAgrNum    0 
SourceBudgetPromiseSumma     1 
SourceKVR      1 
SourceKESR     1 
SourceKVSR     1 
SourceKCSR     1 
SourceKFSR     1 
SourceSubKesr  1 
SourceFactCls  1 
SourceMeansTypeCls           1 
SourceFINSOURCECLS           1 
SourceFinTypeCls             1 
SourceDOCTYPECLS             1 
SourceDirectionCls           1 
SourceIFS      1 
SourceKD       1 
SourceRegionCls              1 
SourceFundsSource            1 
BudgetRef      1 
SourceTransfertCls           1 

...
Рейтинг: 0 / 0
Экспорт в xml
    #38333657
tuandreeva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все проверила, поля одинаковые, но все равно не загружается. Может не правильно формирую файл .xml?
...
Рейтинг: 0 / 0
Экспорт в xml
    #38333694
tuandreeva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все, проблема решена. И в Caption, и в detail00 есть поле "budgetRef"-константа, данные в обоих случаях должны быть равны
qwerty112, спасибо за участие
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Экспорт в xml
    #39398323
tuandreeva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
здравствуйте, в продолжение темы
Мне необходимо экспортровать в xml в таком виде:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
<?xml version="1.0" encoding="UTF-8"?>
<UFormatAPK>
	<!-- Otchetnost APK. Configuratsiya:1.1.1.9, Model:4q02 -->
	<Org>
		<Code></Code>
		<Name>ИП Глава КФХ Бабин В.А.</Name>
		<FullName>ИП Глава КФХ Бабин В.А.</FullName>
		<SuperiorOrg>6317</SuperiorOrg>
		<DateOfRegistration>2004-12-24</DateOfRegistration>
		<INN>637700150240</INN>
		<KPP>0</KPP>
		<OKPO>14324069</OKPO>
		<OPF></OPF>
		<OKOPF>53</OKOPF>
		<OGRN>304637735900052</OGRN>
		<ActivityForm>1</ActivityForm>
		<OKVEDorOKONH>01.11.11,</OKVEDorOKONH>
		<OKATO>36230820000</OKATO>
		<GeneralManager>ФИО</GeneralManager>
		<MainAccountant></MainAccountant>
		<Executor>ФИО</Executor>
		<Address></Address>
		<ContactData></ContactData>
		<OKFS>16</OKFS>
		<OKER></OKER>
		<OKTMO>36630420</OKTMO>
		<OPForg>ipkh</OPForg>
		<SysNalog>usn</SysNalog>
		<Property1></Property1>
		<Property2></Property2>
		<Property3></Property3>
		<Property4></Property4>
		<Property5></Property5>
		<Form10FPK>Форма10фер</Form10FPK>
		<Account>
			<Report>
				<CodeOfReport>f10af</CodeOfReport>
				<Period>0_2016</Period>
				<parameter Code="парДатаОтчета"	Value=""/>
				<parameter Code="парДатаУтверждения"	Value=""/>
				<parameter Code="парДатаОтправки"	Value=""/>
				<parameter Code="парДатаПодписи"	Value="2017-01-25"/>
				<index String="065" Column="9" Value="48,639"/>
				<index String="065" Column="8" Value="113,491"/>
				<index String="065" Column="14" Value="0"/>
				<index String="065" Column="13" Value="-48,639"/>
				<index String="065" Column="12" Value="-113"/>
				<index String="065" Column="10" Value="0"/>
				<index String="065" Column="19" Value="113,491"/>

			</Report>
		</Account>
	</Org>

	</UFormatAPK>



Таблица в access:
во вложении
Подскажите, как мне это сделать
В экспорте xml чайник
...
Рейтинг: 0 / 0
Экспорт в xml
    #39398325
tuandreeva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поля обязательны лишь те, которые в моей таблице
...
Рейтинг: 0 / 0
Экспорт в xml
    #39398512
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tuandreeva,
если количество полей всё время одно и то же, то можно из приведенного фрагмента xml сделать шаблон (обычный текстовый файл), в котором указать вместо значений полей закладки то типу -
<Code>CodeValue</Code>
открыть Recordset с нужными данными, последовательно , перебирая записи, считывать содержимое шаблона (текстового файла) в текстовую переменную и с помощью Replace менять закладки на значения полей записи рекордсета , затем записывать в другой текстовый файл результат... вообщем, всё просто, можно обойтись и без знаний XML
...
Рейтинг: 0 / 0
Экспорт в xml
    #39398519
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tuandreeva, приложи таблицу, а не фото оной.
...
Рейтинг: 0 / 0
Экспорт в xml
    #39398700
tuandreeva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот таблица,
...
Рейтинг: 0 / 0
Экспорт в xml
    #39398737
tuandreeva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
Option Compare Database
Dim rs1, rs2

Public Sub ExportXML(rs As Recordset, strHeading$, fileName$)
   
   ' Экспорт таблицы RecordSet в XML файл
   Dim xmlDoc As DOMDocument
   
   ' Cоздаем XMLDOM-объект
   Set xmlDoc = RecordsetToXMLDOM(rs, strHeading$)
 
   ' выводим его в виде отдельного файла
   xmlDoc.Save fileName$
End Sub
 
Public Function RecordsetToXMLDOM(rs As Recordset, strHeading$) As DOMDocument
   '
   ' Преобразование Recordset в DOMDocument
   '
   Dim fldField As Field
   Dim xmlDoc As DOMDocument
   Dim xmlFields As IXMLDOMElement
   Dim xmlField As IXMLDOMElement
   Dim i&
 
   ' создание экземпляра объекта
   Set xmlDoc = CreateObject("Microsoft.XMLDOM")    ' New DOMDocument
   ' записываем XML-константу объекта
   xmlDoc.LoadXML "<?xml version='1.0' encoding='UTF-8'?>" + _
      Replace("<" + strHeading + "/>", " ", "_")

  With rs
       'Вывод содержимого полей таблицы
      .MoveFirst: i = 1
       Do Until .EOF
          ' создание нового узла3
       Set xmlFields1 = xmlDoc.DocumentElement.appendChild _
           (xmlDoc.createElement("ORG"))

          For Each fldField In rs.Fields   ' запись полей записи
            If IsNull(fldField) = True Then
            Else
                Set xmlField = xmlFields1.appendChild( _
                xmlDoc.createElement(Replace(fldField.Name, " ", "_")))
                xmlField.Text = fldField.Value
            End If
          Next
         .MoveNext   ' к следующей записи набора
          i = i + 1
      Loop
   End With
            
        Set xmlFields2 = xmlFields1.appendChild _
            (xmlDoc.createElement("Account"))
Set xmlFields3 = xmlFields2.appendChild _
           (xmlDoc.createElement("Report"))
Set rs1 = CurrentDb.OpenRecordset("SELECT distinct CodeReport, Period FROM Caption_OUT1")
  With rs1
       'Вывод содержимого полей таблицы
      .MoveFirst: i = 1
       Do Until .EOF
          ' создание нового узла3

          For Each fldField In rs1.Fields   ' запись полей записи
            If IsNull(fldField) = True Then
            Else
                Set xmlField = xmlFields3.appendChild( _
                xmlDoc.createElement(Replace(fldField.Name, " ", "_")))
                xmlField.Text = fldField.Value
            End If
          Next
         .MoveNext   ' к следующей записи набора
          i = i + 1
      Loop
   End With
Set rs2 = CurrentDb.OpenRecordset("SELECT Caption_OUT1.* FROM Caption_OUT1")
  With rs2
       'Вывод содержимого полей таблицы
      .MoveFirst: i = 1
       Do Until .EOF
          ' создание нового узла3

          For Each fldField In rs2.Fields   ' запись полей записи
            If IsNull(fldField) = True Then
            Else
                Set xmlField = xmlFields3.appendChild( _
                xmlDoc.createElement(Replace(fldField.Name, " ", "_")))
                xmlField.Text = fldField.Value
            End If
          Next
         .MoveNext   ' к следующей записи набора
          i = i + 1
      Loop
   End With
   Set RecordsetToXMLDOM = xmlDoc   ' возвращаем созданный объект
End Function
Private Sub выгрузить_Click()
Dim strConnectString$, strSQL$, strHeading$
    strHeading = "UFormatAPK"

    Dim rs As Recordset
    Dim rs1 As Recordset
    Dim MySQL As Variant
    Dim MySQL1 As Variant
    Set MyDB = CurrentDb
    MySQL = "SELECT * FROM Caption_OUT"
    MySQL1 = "SELECT Caption_OUT1.* FROM Caption_OUT1"
    Set rs = MyDB.OpenRecordset(MySQL)
    Set rs1 = MyDB.OpenRecordset(MySQL1)
    
   Call ExportXML(rs, strHeading$, "d:\xml\file1.xml")

End Sub


Сделала так, но пришлось делить таблицу. хотелось бы по-проще.
1. Не могу сделать эту часть:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<parameter Code="парДатаПодписи"	Value="2017-01-25"/>
				<index String="065" Column="9" Value="48,639"/>
				<index String="065" Column="8" Value="113,491"/>
				<index String="065" Column="14" Value="0"/>
				<index String="065" Column="13" Value="-48,639"/>
				<index String="065" Column="12" Value="-113"/>
				<index String="065" Column="10" Value="0"/>
				<index String="065" Column="19" Value="113,491"/>


2. И вот эту:
Код: xml
1.
	<!-- Otchetnost APK. Configuratsiya:1.1.1.9, Model:4q02 -->


Как это прописать?
...
Рейтинг: 0 / 0
Экспорт в xml
    #39398796
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tuandreeva,
вот 2097140 нечто похожее на то , что я предлагал :)
...
Рейтинг: 0 / 0
Экспорт в xml
    #39398799
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tuandreeva,
а вот 14734926 пример Уважаемого qwerty112 (храни его Господь в этой войне на Украине) с экспортом атрибутов
...
Рейтинг: 0 / 0
Экспорт в xml
    #39398812
tuandreeva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не раз берусь именно с объединениеМ в строку
...
Рейтинг: 0 / 0
Экспорт в xml
    #39398884
tuandreeva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В предыдущем сообщении не правильно написала, я этим никак не разберусь. Если не трудно, помогите с написанием parameter Code="парДатаПодписи" Value="2017-01-25"/>
<index String="065" Column="9" Value="48,639"/>
<index String="065" Column="8" Value="113,491"/>
<index String="065" Column="14" Value="0"/>
<index String="065" Column="13" Value="-48,639"/>
<index String="065" Column="12" Value="-113"/>
<index String="065" Column="10" Value="0"/>
<index String="065" Column="19" Value="113,491"/>
...
Рейтинг: 0 / 0
Экспорт в xml
    #39398960
tuandreeva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне предложили вариант
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Public Sub CreateXML()
Dim ff As Integer
Dim rs As DAO.Recordset

ff = FreeFile 'дескриптор файла
Set rs = CurrentDb.OpenRecordset("select * from tab1") 'твой запрос к исходной таблице
Open "G:\testXML.xml" For Output As #ff 'открываем файло
Print #ff, "<Сеанс>" 'пишем заголовок

While Not rs.EOF
Print #ff, "<Субъект Тип=" & Chr(34) & "Предп_орг" & Chr(34) & " Код = " & rs![Names] & ">"
'chr(34)- это кавычки
'бла-бла в том-же духе
Print #ff, "<ГруппыОбъекта>" 'то, что тебе надо добавить в XML-файл
Print #ff, "<ГруппаОбъекта>"
'бла-бла в том-же духе
Print #ff, "</Субъект>"
rs.MoveNext
Wend

Print #ff, "</Сеанс>"

Close #ff
rs.Close
Set rs = Nothing

End Sub


Как это мне применить, в xml ничего не пойму
...
Рейтинг: 0 / 0
Экспорт в xml
    #39398976
tuandreeva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь отзовитесь. Очень нужно
Застряла здесь:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
Public Function RecordsetToXMLDOM(rs As Recordset, strHeading$) As DOMDocument
   '
   ' &#207;&#240;&#229;&#238;&#225;&#240;&#224;&#231;&#238;&#226;&#224;&#237;&#232;&#229; Recordset &#226; DOMDocument
   '
   Dim fldField As Field
   Dim xmlDoc As DOMDocument
   Dim xmlFields As IXMLDOMElement
   Dim xmlField As IXMLDOMElement
   Dim i&

   ' &#241;&#238;&#231;&#228;&#224;&#237;&#232;&#229; &#253;&#234;&#231;&#229;&#236;&#239;&#235;&#255;&#240;&#224; &#238;&#225;&#250;&#229;&#234;&#242;&#224;
   Set xmlDoc = CreateObject("Microsoft.XMLDOM")    ' New DOMDocument
   ' &#231;&#224;&#239;&#232;&#241;&#251;&#226;&#224;&#229;&#236; XML-&#234;&#238;&#237;&#241;&#242;&#224;&#237;&#242;&#243; &#238;&#225;&#250;&#229;&#234;&#242;&#224;

   xmlDoc.LoadXML "<?xml version='1.0' encoding='UTF-8'?>" + _
      Replace("<" + strHeading + "/>", " ", "_")
  With rs
       '&#194;&#251;&#226;&#238;&#228; &#241;&#238;&#228;&#229;&#240;&#230;&#232;&#236;&#238;&#227;&#238; &#239;&#238;&#235;&#229;&#233; &#242;&#224;&#225;&#235;&#232;&#246;&#251;
      .MoveFirst: i = 1
       Do Until .EOF
          ' &#241;&#238;&#231;&#228;&#224;&#237;&#232;&#229; &#237;&#238;&#226;&#238;&#227;&#238; &#243;&#231;&#235;&#224;3
       Set xmlFields1 = xmlDoc.DocumentElement.appendChild _
           (xmlDoc.createElement("ORG"))

          For Each fldField In rs.Fields   ' &#231;&#224;&#239;&#232;&#241;&#252; &#239;&#238;&#235;&#229;&#233; &#231;&#224;&#239;&#232;&#241;&#232;
            If IsNull(fldField) = True Then
            Else
                Set xmlField = xmlFields1.appendChild( _
                xmlDoc.createElement(Replace(fldField.Name, " ", "_")))
                xmlField.Text = fldField.Value
            End If
          Next
         .MoveNext   ' &#234; &#241;&#235;&#229;&#228;&#243;&#254;&#249;&#229;&#233; &#231;&#224;&#239;&#232;&#241;&#232; &#237;&#224;&#225;&#238;&#240;&#224;
          i = i + 1
      Loop
   End With
            
        Set xmlFields2 = xmlFields1.appendChild _
            (xmlDoc.createElement("Account"))
Set xmlFields3 = xmlFields2.appendChild _
           (xmlDoc.createElement("Report"))
Set rs1 = CurrentDb.OpenRecordset("SELECT distinct CodeReport, Period, Code FROM Caption_OUT1")
  With rs1
       '&#194;&#251;&#226;&#238;&#228; &#241;&#238;&#228;&#229;&#240;&#230;&#232;&#236;&#238;&#227;&#238; &#239;&#238;&#235;&#229;&#233; &#242;&#224;&#225;&#235;&#232;&#246;&#251;
      .MoveFirst: i = 1
       Do Until .EOF
          ' &#241;&#238;&#231;&#228;&#224;&#237;&#232;&#229; &#237;&#238;&#226;&#238;&#227;&#238; &#243;&#231;&#235;&#224;3

          For Each fldField In rs1.Fields   ' &#231;&#224;&#239;&#232;&#241;&#252; &#239;&#238;&#235;&#229;&#233; &#231;&#224;&#239;&#232;&#241;&#232;
            If IsNull(fldField) = True Then
            Else
                Set xmlField = xmlFields3.appendChild( _
                xmlDoc.createElement(Replace(fldField.Name, " ", "_")))
                xmlField.Text = fldField.Value
            End If
          Next
         .MoveNext   ' &#234; &#241;&#235;&#229;&#228;&#243;&#254;&#249;&#229;&#233; &#231;&#224;&#239;&#232;&#241;&#232; &#237;&#224;&#225;&#238;&#240;&#224;
          i = i + 1
      Loop
   End With
Set rs2 = CurrentDb.OpenRecordset("SELECT Caption_OUT1.* FROM Caption_OUT1")
'  With rs2
'       '&#194;&#251;&#226;&#238;&#228; &#241;&#238;&#228;&#229;&#240;&#230;&#232;&#236;&#238;&#227;&#238; &#239;&#238;&#235;&#229;&#233; &#242;&#224;&#225;&#235;&#232;&#246;&#251;
'      .MoveFirst: i = 1
'       Do Until .EOF
'          ' &#241;&#238;&#231;&#228;&#224;&#237;&#232;&#229; &#237;&#238;&#226;&#238;&#227;&#238; &#243;&#231;&#235;&#224;3
'
'          For Each fldField In rs2.Fields   ' &#231;&#224;&#239;&#232;&#241;&#252; &#239;&#238;&#235;&#229;&#233; &#231;&#224;&#239;&#232;&#241;&#232;
'            If IsNull(fldField) = True Then
'            Else
''                Set xmlField = xmlFields3.appendChild( _
''                xmlDoc.createElement(Replace(fldField.Name, " ", "_")))
'                'xmlField.Text = fldField.Value
'                xmlFields3.setAttribute "&#202;&#238;&#228;&#209;&#242;&#240;&#238;&#234;&#232;", rs2.Fields("FB8")
'
'                If rs.EOF Then Exit Do
'                    rs.MoveNext
'                    Current_client = rs.Fields("&#202;&#238;&#228;&#209;&#242;&#240;&#238;&#234;&#232;")
''                  Loop
'
'                  If rs.EOF Then Exit Do
'                  rs.MoveNext
'
'                End If
'          Next
'         .MoveNext   ' &#234; &#241;&#235;&#229;&#228;&#243;&#254;&#249;&#229;&#233; &#231;&#224;&#239;&#232;&#241;&#232; &#237;&#224;&#225;&#238;&#240;&#224;
'          i = i + 1
'      Loop
'   End With
   Set RecordsetToXMLDOM = xmlDoc   ' &#226;&#238;&#231;&#226;&#240;&#224;&#249;&#224;&#229;&#236; &#241;&#238;&#231;&#228;&#224;&#237;&#237;&#251;&#233; &#238;&#225;&#250;&#229;&#234;&#242;
    rs1.Close
    rs2.Close
    rs.Close
End Function

Private Sub &#226;&#251;&#227;&#240;&#243;&#231;&#232;&#242;&#252;_Click()
Dim strConnectString$, strSQL$, strHeading$
    strHeading = "UFormatAPK"

    Dim rs As Recordset
    Dim rs1 As Recordset
    Dim MySQL As Variant
    Dim MySQL1 As Variant
    Set MyDB = CurrentDb
    MySQL = "SELECT * FROM Caption_OUT"
    MySQL1 = "SELECT Caption_OUT1.* FROM Caption_OUT1"
    Set rs = MyDB.OpenRecordset(MySQL)
    Set rs1 = MyDB.OpenRecordset(MySQL1)

   Call ExportXML(rs, strHeading$, "d:\xml\file1.xml")
'Call Module1.CreateXML
End Sub



Получаю:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
<?xml version="1.0" encoding="UTF-8"?>

-<UFormatAPK>


-<ORG>

<FullName>Иванов ВВ</FullName>

<SuperiorOrg>6317</SuperiorOrg>

<INN>637700046961</INN>

<ActivityForm>1</ActivityForm>


-<Account>


-<Report>

<CodeReport>f10af</CodeReport>

<Period>0_2016</Period>

<Code>17.02.2016</Code>

</Report>

</Account>

</ORG>

</UFormatAPK>
...
Рейтинг: 0 / 0
Экспорт в xml
    #39398977
tuandreeva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите сделать вот эту часть:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<Account>
			<Report>
				<CodeOfReport>f10af</CodeOfReport>
				<Period>0_2016</Period>
				<parameter Code="парДатаОтчета"	Value=""/>
				<parameter Code="парДатаУтверждения"	Value=""/>
				<parameter Code="парДатаОтправки"	Value=""/>
				<parameter Code="парДатаПодписи"	Value="2017-01-25"/>
				<index String="065" Column="9" Value="48,639"/>
				<index String="065" Column="8" Value="113,491"/>
				<index String="065" Column="14" Value="0"/>
				<index String="065" Column="13" Value="-48,639"/>
				<index String="065" Column="12" Value="-113"/>
				<index String="065" Column="10" Value="0"/>
				<index String="065" Column="19" Value="113,491"/>

			</Report>
		</Account>
...
Рейтинг: 0 / 0
Экспорт в xml
    #39399000
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tuandreeva, есть метод несколько меньший по трудозатратам и более производительный - xslt-преобразования.
Я смотрел вчера твой пример и набросал файл для преобразования (к сожалению на другой машине всё).
Но не понял следующих вещей.
1. Две записи в таблице - 2 файла или всё в одном файле. Вроде как понял, но поясни по возможности
2. Где вот это добро? -> 20182298

К сожалению, познания в xslt у меня небольшие...
...
Рейтинг: 0 / 0
Экспорт в xml
    #39399020
tuandreeva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург,

index String="065" это код строки
Column="9" (8-10) это название поля в таблице Caption_OUT1
Приложу базу Все данные в таблице Caption_OUT, это я уже наделал таблиц для иерархичного вывода данных
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Экспорт в xml
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]