前提・実現したいこと
AccessVBAのWebスクレイピングにおけるWeb上のテーブルデータをAccessテーブルに書き込みたいと思っています。
ExcelVBAにおいては、以下のコードで実現しておりますが、AccessでのRecordsetへの組み込み方法が分かりません。
ソースコード
ExcelVBA
1'Web上のテーブルデータをExcelシートに書き出す関数 2Public Sub WriteTableData(ByVal table As HTMLTable, ByVal cell As Range) 3 4 Dim i As Long: i = 0 5 Dim tr As HTMLTableRow 6 For Each tr In table.getElementsByTagName("tr") 7 8 Dim j As Long: j = 0 9 Dim th As HTMLTableCell 10 For Each th In tr.getElementsByTagName("th") 11 cell.Offset(i, j).Value = th.innerText 12 j = j + 1 13 Next th 14 15 Dim td As HTMLTableCell 16 For Each td In tr.getElementsByTagName("td") 17 cell.Offset(i, j).Value = td.innerText 18 j = j + 1 19 Next td 20 i = i + 1 21 Next tr 22End Sub
ExcelVBA
1'Webスクレイピング処理 2Private Sub table_build() 3 4 Dim objIE As InternetExplorer 5 Dim hUrl As String 6 Dim objShell As Object 7 Dim objExec As Object 8 9 hUrl = "https://" '該当ページのURL ※伏せています 10 11 Set objIE = CreateObject("Internetexplorer.Application") 12 13 objIE.Visible = True 14 Call ieView(objIE, hUrl) 15 Call Wait(objIE) 16 17 Dim htmlDoc As HTMLDocument 18 Set htmlDoc = objIE.Document 19 20 'テーブル書き出し関数呼び出し 21 WriteTableData htmlDoc.getElementsByClassName("Table01")(0), Worksheets("書き出し").Range("A1") 22 23 Call Wait(objIE) 24 25 'IEを閉じる 26 Set objShell = CreateObject("WScript.Shell") 27 Set objExec = objShell.Exec("taskkill.exe /F /IM iexplore.exe") 28 29End Sub
試したこと
WriteTableData関数と呼び出しコードからRangeの引数を省いて、
cell.Offset(i, j).ValueをAccess用に改変すれば実現可能かと思い、
ExcelVBA
1 Dim RsData As Recordset 2 Dim mydb As Database 3 Set mydb = CurrentDb 4 Set RsData = mydb.OpenRecordset("Accessテーブル") 5--------省略-------- 6 For Each td In tr.getElementsByTagName("td") 7 RsData.Fields(i) = td.innerText 8 j = j + 1 9 Next td
という具合にしてみたのですが、
フィールドを指定していないせいで、思うように追加してくれませんでした。
そもそもinnerTextで、フィールド別に分けることなどできるのでしょうか?
同じ事例がウェブ上から探せず困り果てております。
参考となるページがあればご紹介いただけると幸いです。
どうか宜しくお願いいたします。
補足情報(FW/ツールのバージョンなど)
Windows10 x64
Office2013 x86
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/21 01:30
2019/10/21 02:06
2019/10/21 02:33
2019/10/21 02:37
2019/10/21 03:53
2019/10/21 04:03
2019/10/21 04:26
2019/10/21 04:37
2019/10/21 05:07
2019/10/21 05:18
2019/10/21 05:24