SQL ServerにXML形式のデータが"1つのカラムにロングテキスト(ntext)形式で格納"されています。
このデータをExcelのVBAで取得したのは良いのですが、XML文書からタグを指定して任意の値を取得する方法がわかりません。
とりあえず以下のように普通の取得をするまでは書いてみました。
---
Sub GetXMLDataFromSQLServ()
Dim CNN As ADODB.Connection
Dim RST As ADODB.Recordset
Dim RecCt As Long
Dim strCNN As String
Dim strData1 As String
Dim strData2 As String
Dim xmlTest As MSXML2.DOMDocument
'Connection String
strCNN = "driver={SQL Server}; server=appdemo; uid=userid; pwd=password; database=database"
Set CNN = New Connection
CNN.ConnectionTimeout = 30
CNN.Open strCNN
'レコードセットを開く
Set RST = New ADODB.Recordset
RST.CursorType = adOpenStatic
RST.Open "SELECT * FROM G_JOB_CONTENT;", strCNN
RST.MoveFirst
'シートに出力
Do Until RST.EOF
ActiveCell.Value = RST.Fields("JOB_ID")
ActiveCell.Offset(0, 1).Value = RST.Fields("XML") '---(1)
RST.MoveNext '
ActiveCell.Offset(1, 0).Activate
Loop
'レコードセットを閉じる
Set RST = Nothing
'接続を閉じる
Set CNN = Nothing
End Sub
---
(1)の部分でXMLのタグを指定し、任意のデータを得たいと考えています。
参照設定などを見て、おそらくMSXML2オブジェクトを使うのかな、というところまでは想像ついたのですけど・・・。
どなたかご教示の程をお願いいたします。
お礼
御礼が遅くなりまして大変申し訳ありません。 自分でもその後試行錯誤した結果、同じ結果にたどり着きました。