javascript - 如何使用 Javascript 搜索 MS Access 数据库表?

标签 javascript html ms-access ms-access-2013

我有一个包含 16 列的 MS Access 数据库表“ImportFromExcel”。当输入关键字后按下网页中的“搜索”键时,它应该转到表格并检查关键字是否存在于表格中的任何位置。如果关键字出现在一行中,则应打印该行。否则,它应该抛出一条消息。

代码:

<!doctype html>
<html>
<title>Search</title>

<script type="text/javascript">

function query()
{
    var pad = "C:\\Users\\azi!z\\Desktop\\Project\\Test.accdb";
    var cn = new ActiveXObject("ADODB.Connection");
    var strConn = "Provider=microsoft.ace.oledb.12.0;Data Source=" + pad;
    cn.Open(strConn);
    var rs = new ActiveXObject("ADODB.Recordset");
    var SQL = “SELECT * FROM ImportFromExcel where TestCase ALIKE '%searchTerm%'”;
    rs.Open(SQL, cn);
    if(!rs.bof) 
    {
        rs.MoveFirst();
        if(!rs.eof)
        {
            document.write("<p>" + rs.fields(1).value + ", ");
            document.write(rs.fields(2).value + ", ");
            document.write(rs.fields(3).value + ", ");
            document.write(rs.fields(4).value + ", ");
            document.write(rs.fields(5).value + ", ");
            document.write(rs.fields(6).value + ", ");
            document.write(rs.fields(7).value + ", ");
            document.write(rs.fields(8).value + ", ");
            document.write(rs.fields(9).value + ", ");
            document.write(rs.fields(10).value + ", ");
            document.write(rs.fields(11).value + ", ");
            document.write(rs.fields(12).value + ", ");
            document.write(rs.fields(13).value + ", ");
            document.write(rs.fields(14).value + ", ");
            document.write(rs.fields(15).value + ", ");
            document.write(rs.fields(16).value + ".</p>");
        }
    }
    else
    {
        document.write("No data found");
    }
    rs.Close();
    cn.Close();
}

</script>
</head>

<body>
<form method="get" name="SearchEngine" target="_blank">
<p style="text-align: center;"><span style="font-family:times new roman,times,serif;"><span style="font-size: 36px;"><strong>EA Search Engine</strong></span></span></p>

<p style="text-align: center;">&nbsp;</p>

<p style="text-align: center;"><input maxlength="300" id="searchTerm" name="KeywordSearch" size="100" type="text" value="Enter Your Keyword Here" /></p>

<p style="text-align: center;">&nbsp;</p>

<p style="text-align: center;"><input name="Search" type="button" value="Search" onclick="query();" /></p>
</form>
</body>
</html>

在 MS Access 中尝试了查询,它给出了预期的结果(感谢@HansUp)。似乎是 JavaScript 部分的问题。请帮忙:)

最佳答案

现在您已经获得了实际执行的 JavaScript 函数,您需要进行以下更改:

  1. 硬编码 '%searchTerm%'进入脚本只会搜索该文字文本。您想要合并“searchTerm”的值 <input>表格上的框。

  2. 为此,您需要使用参数化查询。

  3. 您还希望循环 Access Recordset 以检索返回的所有行,而不仅仅是第一行。

所以,您的 JavaScript 代码应该看起来更像这样:

function query() {
    var adVarWChar = 202;
    var adParamInput = 1;

    var pad = "C:\\Users\\azi!z\\Desktop\\Project\\Test.accdb";
    var cn = new ActiveXObject("ADODB.Connection");
    var strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + pad;
    cn.Open(strConn);
    var cm = new ActiveXObject("ADODB.Command");
    cm.ActiveConnection = cn;
    cm.CommandText = "SELECT * FROM ImportFromExcel where TestCase LIKE ?";
    cm.Parameters.Append(cm.CreateParameter(
            "?", 
            adVarWChar, 
            adParamInput, 
            255, 
            "%" + document.getElementById("searchTerm").value + "%"));
    var rs = cm.Execute();  // returns ADODB.Recordset object
    if (rs.EOF) {
        document.write("<p>No data found.</p>");
    } else {
        while (!rs.EOF) {
            document.write("<p>" + rs.fields(0).value + ", ");
            // (list of fields truncated for clarity)
            document.write(rs.fields(1).value + ".</p>");
            rs.MoveNext();
        }
    }
    rs.Close();
    cn.Close();
}

关于javascript - 如何使用 Javascript 搜索 MS Access 数据库表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34481025/

相关文章:

javascript - 如何复制 SharePoint 2010 内部进行的社交 ajax 调用?

javascript - 重定向后从 url 中删除参数

c# - 释放 JavaScript 的 ActiveXObject()?

jquery - 我的幻灯片在主机上不起作用

javascript - 响应式设计 - 使用 javascript 和 css(flex 和媒体查询)更改布局

javascript - 将 HTML Canvas 用于 UI 元素?

javascript - 如何在javascript中的文本旁边添加图像?

database - delphi中过滤多个字段

php - db like ms access for php

vba - 换行时字符串拆分