Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将HTML表中的数据获取到Access数据库中_Html_Sql_Api_Ms Access_Html Parsing - Fatal编程技术网

将HTML表中的数据获取到Access数据库中

将HTML表中的数据获取到Access数据库中,html,sql,api,ms-access,html-parsing,Html,Sql,Api,Ms Access,Html Parsing,如何从HTML表(例如,从市场数据S&P500)动态填充数据库 我在银行有账户。在帐户中,我可以查看HTML格式的财务数据 我需要一个简单的工具,以填补一个数据库(访问),从一个HTML表。在哪里可以找到这样的工具?您可以从Yahoo历史数据中导出CSV,并将Access中的CSV文件直接链接为MS Access表 如果您想处理html页面源代码,那么此链接可能会有所帮助 ACE/Jet OLEDB可用于直接从HTML文件导入数据。例如,给定一个现有的访问表[DataFromHtml] ID

如何从HTML表(例如,从市场数据S&P500)动态填充数据库

我在银行有账户。在帐户中,我可以查看HTML格式的财务数据


我需要一个简单的工具,以填补一个数据库(访问),从一个HTML表。在哪里可以找到这样的工具?

您可以从Yahoo历史数据中导出CSV,并将Access中的CSV文件直接链接为MS Access表

如果您想处理html页面源代码,那么此链接可能会有所帮助


ACE/Jet OLEDB可用于直接从HTML文件导入数据。例如,给定一个现有的访问表[DataFromHtml]

ID  LastName
--  --------
以及包含一个表的HTML文件

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    <title>
        Test Data
    </title>
</head>
<body>
<table>
    <tr>
        <th>
            ID
        </th>
        <th>
            LastName
        </th>
    </tr>
    <tr>
        <td>
            1
        </td>
        <td>
            Thompson
        </td>
    </tr>
    <tr>
        <td>
            2
        </td>
        <td>
            O'Rourke
        </td>
    </tr>
</table>
</body>
</html>

假设Gord Thompsons解决方案的HTML结构,使用ADO有一种非常快速的方法

Public Function GetTitle(ByVal HtmlFile As String) As String
    Dim DOM As Object

    Set DOM = CreateObject("MSXML2.DOMDocument")
    DOM.Load HtmlFile
    GetTitle = DOM.getElementsByTagName("title")(0).Text
End Function

Public Sub Import(ByVal Filename As String, ByVal Tablename As String)
    Dim SQL As String
    Dim Title As String
    On Error GoTo Import_Error

    Title = GetTitle(Filename)

    CurrentProject.Connection.Execute "DROP TABLE " & Tablename

    SQL = "SELECT * INTO " & Tablename & _
          " FROM [HTML Import;HDR=YES;IMEX=1;DATABASE=" & Filename & "].[" & Title & "]"
    CurrentProject.Connection.Execute SQL

    Exit Sub
Import_Error:
End Sub
因此,如果要将HTML文件“C:\SomeFolder\MyFile.HTML”放入表“MyImport”,请使用:

还有一个提示:如果HTML文件的标题包含特殊字符,如。或:,导入将失败。您必须尝试哪些特殊字符有问题,哪些没有问题

Public Function GetTitle(ByVal HtmlFile As String) As String
    Dim DOM As Object

    Set DOM = CreateObject("MSXML2.DOMDocument")
    DOM.Load HtmlFile
    GetTitle = DOM.getElementsByTagName("title")(0).Text
End Function

Public Sub Import(ByVal Filename As String, ByVal Tablename As String)
    Dim SQL As String
    Dim Title As String
    On Error GoTo Import_Error

    Title = GetTitle(Filename)

    CurrentProject.Connection.Execute "DROP TABLE " & Tablename

    SQL = "SELECT * INTO " & Tablename & _
          " FROM [HTML Import;HDR=YES;IMEX=1;DATABASE=" & Filename & "].[" & Title & "]"
    CurrentProject.Connection.Execute SQL

    Exit Sub
Import_Error:
End Sub
Import "C:\SomeFolder\MyFile.html", "MyImport"