使用VB上的PS脚本执行访问查询并在HTA文本框中写入输出

时间:2016-12-09 13:25:15

标签: powershell ms-access vbscript hta

我是PowerShell的新手并获得了以下任务 我必须创建一个HTA GUI,您可以在Access Query中编写要搜索的名称 HTA文件中的VB脚本启动PS脚本并传递HTA TextBox中用户输入的参数。之后,PowerShell脚本使用用户输入执行Access查询以获得一些结果。这些结果应该以某种方式返回到VB / HTA文件,以便它可以在另一个TextBox中输出每个结果。

这甚至可以吗?如果是的话,我会很感激一些解决方案的想法。

编辑:

VB / HTA

VB/HTA

Wrong Format, should be like a table

2 个答案:

答案 0 :(得分:1)

您在HTA代码中有strLine读取文本文件。您的代码正在读取文本文件并占用1行并将其放入文本输入框中。为了将结果显示为表,您需要创建表HTML并将该HTML传递给div元素。

strLine = "<table>"
Do While Not strLines.AtEndOfStream
   strLine = strLine & "<tr><td>" & strLines.ReadLine() & "</td></tr>"
Loop
strLine = strLine & "</table>"
Weiterleitung_div.innerHTML = strLine

您需要更改Weiterleitung_id.value = strLine,而是将strLine HTML传递给正文中的元素。添加到身体然后

答案 1 :(得分:0)

是的,这是可能的。尝试下面的代码,访问数据库有3个字段first_name,last_name,email

将文件另存为Employees.mdb(您可以使用.accdb,但您必须更改代码中的名称)确认访问文件与HTA一样在文件夹中。

我从www.mockaroo.com复制了一些数据来测试它(我没有得到报酬,说它非常有用)

这是一个非常基本的示例,但可以在HTA中创建比在Access中更好的GUI。

<title>Employee Directory</title>
<head>
<HTA:APPLICATION
ID="EMPDIR"
APPLICATIONNAME="Employee Directory"
SINGLEINSTANCE="YES"
>
<!-- makes the hta run using IE9 otherwise it runs as IE5 or 6.  You can change this to edge -->
<meta http-equiv="x-ua-compatible" content="IE=9"/>

<style>

body {font-family:arial; background:#efefef; color:#333}


</style>


<script language="vbscript">
' ///// this creates the connection when the file is first run.

' //// get the current path if the database file is in the same folder as the hta file.  if it's not then enter the full path manually below
Set objFSO = CreateObject("Scripting.FileSystemObject")
curDir = objFSO.GetAbsolutePathName(".") & "\"


Dim oCon: Set oCon = CreateObject("ADODB.Connection")
Dim oRs: Set oRs = CreateObject("ADODB.Recordset")
strCon = "Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq="& curDir & "Employees.mdb;"

oCon.ConnectionString= strCon

sub getEmployeeList
' gets a list of employees based on the value in the searchbox input.

oCon.open

strSQL = "SELECT * FROM Employees WHERE (first_name like '%" & searchbox.value & "%') or (last_name like '%" & searchbox.value & "%')"

Set oRs = oCon.Execute(strSQL)
strHTML = "<table>"
do while not oRs.EOF

strHTML = strHTML & "<tr><td>" & oRs.fields("first_name") & "</td><td>" & oRs.fields("last_name") & "</td><td>" & oRs.fields("email") & "</td></tr>"

oRs.movenext
loop

oCon.close

strHTML = strHTML & "</table>"

divEmployeeList.innerHTML = strHTML

end Sub

</script>


</head>

<body>

<div id="search"><input type="text" id="searchbox" style="font-size:16pt; margin:10px;"/> <input type="button" value="search" name="submitsearch" style="font-size:16pt;" onclick="getEmployeeList" language="vbscript"></div>


<div id="divEmployeeList" style="width:90%; height:300px; overflow-y:scroll; border:solid 1px #666; margin:10px; background:#fff">-</div>


</body>