2016-12-09 1 views
0

Je suis nouveau à PowerShell et j'ai la tâche suivante.
Je dois créer une interface graphique HTA dans laquelle vous pouvez écrire le nom à rechercher dans la requête Access.
Le script VB dans le fichier HTA démarre le script PS et transmet le paramètre de l'entrée utilisateur dans la zone de texte HTA. Après cela, le script PowerShell effectue une requête Access avec l'entrée utilisateur pour obtenir des résultats. Ces résultats devraient en quelque sorte revenir au fichier VB/HTA afin qu'il puisse sortir chaque résultat dans un autre TextBox.Faire une requête d'accès avec PS Script sur VB et écrire une sortie dans HTA TextBox

Est-ce encore possible? Si oui, j'apprécierais des idées de solutions.

EDIT:

VB/HTA

VB/HTA

Wrong Format, should be like a table

+0

Editer votre question et poster votre code – Hackoo

+0

Édité avec les captures d'écran – FabFab

Répondre

1

Vous avez une ligne dans le code HTA qui lit le fichier texte. Votre code lit le fichier texte et prend 1 ligne et le met dans une zone de saisie de texte. Pour afficher les résultats sous forme de tableau, vous devez créer la table HTML et transmettre ce code HTML à un élément div.

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

Vous devrez changer Weiterleitung_id.value = strLine et passer plutôt le strLine HTML à un élément dans le corps. Ajouter au corps, puis

+0

PARFAIT! Ça marche. Merci beaucoup! – FabFab

0

Oui, il est possible. Essayez le code ci-dessous avec une base de données d'accès qui a 3 champs prénom, nom, email

Enregistrez le fichier en tant que Employees.mdb (vous pouvez utiliser .accdb mais vous devrez changer le nom dans le code) ASSUREZ-VOUS QUE L'ACCÈS LE FICHIER EST DANS LE MÊME DOSSIER QUE L'HTA.

je copiais dans certaines données de www.mockaroo.com pour le tester (je ne suis pas payé pour dire que c'est juste très utile)

Ceci est un exemple très basique, mais il est possible de créer une interface graphique plus agréable dans un HTA que dans Access.

<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> 
+0

Merci pour la réponse rapide, mais comme je peux le voir, c'est seulement vb et hta? J'ai besoin du script Vb pour exécuter le script Powershell et renvoyer le résultat à hta/vb. – FabFab

+0

Salut, désolé je n'ai pas lu votre question correctement. Je ne sais pas grand-chose sur Power Shell. – Gordon

+0

Bonjour, oh d'accord merci quand même. J'ai trouvé une solution décente avec la sortie du résultat PS dans un fichier texte et lire ceci sur hta dans un span. Maintenant, le problème est, que le format dans la durée est faux. Cela devrait créer quelque chose comme une table. J'ajoute les captures d'écran à la publication. – FabFab