Hej! Detta är inget svar utan en fundering kring lösning: Hej! Hej!XML via ASP in i Accessdatabas
Vill kunna importera värden från en ASP-sida till Access 2003. ASP-sidan returnerar värdena i ren XML. Har testat att spara ner sidan och importera med Access 2003's inbyggda importfunktion för XML men det ger endast en tabell med nullvärden.
Har letat runt och det verkar som XMLDOM är det som ska användas men har ingen koll på det.
Skulle behöva hjälp/tips med ett skript som fixar detta.
Mvh
/AndreasSv: XML via ASP in i Accessdatabas
När jag råkar ut för liknande problem så använder jag metoden "working backwards", d v s "jobba baklänges".
Försök att skapa ett XML-dokument utifrån data i Access2003. Titta på dokumentet och se om du kan se uppenbara skillnader mellan det dokument som Access2003 har skapat och det som du vill importera.
Ofta är det ganska givet och i de fallen är det bara att ändra den rutin som skapar källdatat, i ditt fall ditt script.
//Mikael SandSv:XML via ASP in i Accessdatabas
Tack för svaret även om det inte var någon egentlig lösning :)
Har fortfarande inte lyckats fixa det, har testat med importXML men då kan man inte påverka strukturen på den importerade xml-filen. Tänkte köra antingen med XMLDom eller xmlhttp men skulle behöva köra xml-filen genom ett xsl-dokument för att tvätta datat först. Nån som har några ideér? Bifogar ett exempel på xml-filen som ska importeras, den uppdateras dagligen:
Behöver ha det i en accessdatabas där curveid samt title ligger i en tabell samt datum och sjävla value i en annan som länkas ihop av en primärnyckel.
- <curve id="22186" title="Avg TT All ECM12 D1 FW" type="forecast">
- <entry date="2005-01-01 00:00:00">
<point date="2005-01-01 00:00:00" value="6.555117152" />
<point date="2005-01-02 00:00:00" value="6.462998603" />
<point date="2005-01-03 00:00:00" value="4.725106396" />
<point date="2005-01-04 00:00:00" value="6.437339408" />
<point date="2005-01-05 00:00:00" value="6.349340822" />
<point date="2005-01-06 00:00:00" value="7.874444944" />
<point date="2005-01-07 00:00:00" value="8.887169017" />
<point date="2005-01-08 00:00:00" value="7.333827835" />
<point date="2005-01-09 00:00:00" value="7.608938237" />
<point date="2005-01-10 00:00:00" value="10.24687719" />
</entry>
- <entry date="2005-01-02 00:00:00">
<point date="2005-01-02 00:00:00" value="6.289055597" />
<point date="2005-01-03 00:00:00" value="4.774978078" />
<point date="2005-01-04 00:00:00" value="6.429045012" />
<point date="2005-01-05 00:00:00" value="6.448217534" />
<point date="2005-01-06 00:00:00" value="7.958552781" />
<point date="2005-01-07 00:00:00" value="8.906700241" />
<point date="2005-01-08 00:00:00" value="9.692632851" />
<point date="2005-01-09 00:00:00" value="6.342090249" />
<point date="2005-01-10 00:00:00" value="4.271948205" />
<point date="2005-01-11 00:00:00" value="2.97476944" />
</entry>Sv: XML via ASP in i Accessdatabas
Har kommit en bit men skulle behöva lite hjälp med dom sista grejerna om det är någon som har nåt tips.
Nu behöver jag loopa igenom hela dokumentet, sätta entry date som insert date för varje värde därunder. Och sedan spara det i en accessdatabas. Lite borta i navigeringen av DOMobjekten så skulle verkligen uppskatta alla tips :)
Alltså:
Entry Date Point Date Value
2005-01-01 00:00:00 2005-01-01 00:00:00 736.32485617
2005-01-01 00:00:00 2005-01-02 00:00:00 1780.443517074
2005-01-01 00:00:00 2005-01-03 00:00:00 1720.361175887
2005-01-01 00:00:00 2005-01-04 00:00:00 1388.030518839
2005-01-01 00:00:00 2005-01-05 00:00:00 1251.817350687
2005-01-01 00:00:00 2005-01-06 00:00:00 1504.235428622
2005-01-01 00:00:00 2005-01-07 00:00:00 1555.934405103
2005-01-01 00:00:00 2005-01-08 00:00:00 1753.155190667
2005-01-01 00:00:00 2005-01-09 00:00:00 875.937421321
2005-01-01 00:00:00 2005-01-10 00:00:00 297.084338682
Så här ser det ut:
Sub ImportXML()
Dim xmlElement As MSXML2.IXMLDOMNode
Dim xmlNode As MSXML2.IXMLDOMNode
Set domIn = New DOMDocument30
domIn.async = False
If domIn.Load("C:\fileAsXML.xml") Then
Set xmlElement = domIn.childNodes(1).childNodes(0).childNodes(0)
Debug.Print xmlElement.Attributes(0).nodeValue
For Each xmlNode In xmlElement.childNodes
Debug.Print xmlNode.Attributes(0).nodeValue, xmlNode.Attributes(1).nodeValue
Next xmlNode
End If