0

내 목적은 * .html 문서를 MS Access 데이터베이스에 연결하여 * .XLS 파일로 내보내는 것입니다. 문제는 내 * .html 파일에 50 개 이상의 유사한 테이블이 포함되어 있습니다. 내가 링크 할 HTML 문서에서 특정 테이블을 선택할 수 있습니다 여기에 HTML 문서를 여러 테이블과 MS Access 데이터베이스에 연결하는 방법

enter image description here

처럼

enter image description here

내가 사용하는 경우는 "링크 HTML 마법사"가 보인다. 하지만 테이블 크기가 50에서 100까지 다른 HTML 파일이있을 때마다 테이블 구조가 동일합니다. 그리고 가장 좋은 방법은 100 개의 테이블을 수동으로 데이터베이스에 연결하는 것입니다. enter image description here

내가 데이터베이스에 테이블의 각을 연결하는 일부 VBA 코드를 썼습니다 : 또한, 나는 "연결 테이블 관리자"나의 연결된 테이블의 경로를 볼 수 있습니다

Set MyDB = CurrentDb() 
i = 0 
For i = 1 To 100 

Set MyTable = MyDB.TableDefs("ZVPL") 

MyTable.Connect = ";Database=" & MYc_Path_HTML & "\" & "ZVPL.htm" & "\" & "Report output" & i 
MyTable.RefreshLink 
Call ExportToXLS("ZVPL") 'function that allows to export my table to XLS 
i = i+1 
Next 

그러나 그것은 작동하지 않습니다 . 오류는 "파일을 찾을 수 없습니다 ... \ Report output1"입니다. 또한 나는 경로가 정확하다는 것을 확인했다. * .html 문서에서 모든 테이블을 추출하는 가장 좋은 방법은 무엇입니까?

답변

0

같이 연결 문자열을 추가함으로써이 문제를 해결 :

Set MyDB = CurrentDb() 

i = 0 
For i = 1 To 100 
    Set MyTable = MyDB.CreateTableDef("ZVPL") 
    MyTable.SourceTableName = "Report output" & i 
    MyTable.Connect = "HTML Import;DSN=ZVPL Link Specification1;HDR=NO;IMEX=3;CharacterSet=65001;Database=" & MYc_Path_ZVPLHTM & "ZVPL.htm" 
    MyDB.TableDefs.Append MyTable 
    MyDB.TableDefs.Refresh 
    Call ExportToXLS("ZVPL") 'Export to Excel 
    DoCmd.SetWarnings False 
    MyDB.Execute "DROP TABLE " & "ZVPL" 
    DoCmd.SetWarnings True 
Next