電子書籍の厳選無料作品が豊富!

accessvba初心者です。質問なのですが下記のようなxmlファイルがあるとします。

<?xml version="1.0" encoding="shift_jis"?>

<データ>
<aaa>
<bbb>1</bbb>
<ccc>2</ccc>
<ddd>3</ddd>
<eee>4</eee>
<fff>5</fff>
</aaa>

</データ>

これをvbaにて<bbb><ccc><ddd><eee>の内容を取り出し結合して出来た1234をAテーブルのBフィールドにレコード保存したいのですが出来ますでしょうか?
テーブルを開いてフィールドに保存する部分はなんとか理解出来たのですが要素を取り出して結合する部分がわかりません。
access2003を使用しています。よろしくお願いします。

A 回答 (1件)

ホントに質問にあるような構造の XML だとしての回答。


つまりルートの下に一度だけ <aaa> が出てきて、<aaa> の下に一度だけ <bbb> <ccc> <ddd> <eee> <fff> が出てきて、そのうちの <bbb> <ccc> <ddd> <eee> のテキストを取得する。

Dim xmlValue As String

Dim xmlDoc As MSXML2.DOMDocument
Set xmlDoc = New MSXML2.DOMDocument
If xmlDoc.Load("d:\hoge.xml") Then
  xmlValue = xmlDoc.selectSingleNode("データ/aaa/bbb").Text & _
         xmlDoc.selectSingleNode("データ/aaa/ccc").Text & _
         xmlDoc.selectSingleNode("データ/aaa/ddd").Text & _
         xmlDoc.selectSingleNode("データ/aaa/eee").Text
End If

ちなみに参照設定で Microsoft XML,v6.0 を参照している。
Windows 7 64bit で Access 2010 の他に Visual Studio なども入っているので、質問者の環境で一番新しいバージョンの Microsoft XML を参照すればいとおもう。

この回答への補足

ありがとうございます。一度だけしか出てこない場合は出来ました。ほんとうにありがとうざいます。

xmlファイルによっては<aaa>~</aaa>のあとに複数回<aaa>~</aaa><aaa>タグがループして出てくる場合があるのですがそういう場合は一番目の<aaa>タグの中身を1234とし次に2番目に出てきた<aaa>タグの中身を1234・・・とすることは出来ますでしょうか??

補足日時:2012/12/09 11:40
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!