HTA + VBS décalage d’affichage
Bonjour,
Je rencontre un problème lors de l’affichage de la requête Recordset utilisée dans ma sub showchange
J’ai un décalage quand je clic sur un élément de mon LstClient
Pouvez-vous m’aider ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
| <HTML>
<HEAD>
<TITLE> Un HTA </TITLE>
<HTA:APPLICATION
ApplicationName = "SQL BBD Printers request"
Id="SQL BBD Printers request"
>
</HEAD>
<SCRIPT language="VBScript" type="text/VBScript" >
'------------------------------------------------------------------------------------------------------------------
OPTION Explicit
'Informations de connexion:
'URL du serveur phpMyAdmin:
'IP SERVEUR/localhost/locationposte/location
'Requête SQL:
'SELECT *
'FROM location
'WHERE ( `DefaultPrinter` LIKE '%Printer_Name%')
'OR ( `2ndPrinter` LIKE '%Printer_Name%')
'OR ( `3rdPrinter` LIKE '%Printer_Name%')
'OR ( `4thPrinter` LIKE '%Printer_Name%')
'OR ( `5thPrinter` LIKE '%Printer_Name%')
'SELECT * FROM `location` WHERE `ClientName` LIKE 'non-du-pc' ORDER BY `ClientName` ASC
'Prérequis:
'mysql-connector-odbc-8.0.14-win32.msi
Dim ObjConnection
Dim ObjRecordset
Dim StrConnectionString
Dim ObjMySQL
Dim StrTableName
Dim StrColumnDefaultPrinter, StrColumn2ndPrinter, StrColumn3rdPrinter, StrColumn4thPrinter, StrColumn5thPrinter
Dim PrinterName
Dim strSelectedValues
Dim i
Dim StrColumnClientName
Dim MsG
StrTableName = "location"
StrColumnClientName = "ClientName"
StrColumnDefaultPrinter = "DefaultPrinter"
StrColumn2ndPrinter = "2ndPrinter"
StrColumn3rdPrinter = "3rdPrinter"
StrColumn4thPrinter = "4thPrinter"
StrColumn5thPrinter = "5thPrinter"
Sub Window_Onload()
self.ResizeTo 600,600
End Sub
Sub run
PrinterName = TxtPrinterName.value
Set ObjConnection = CreateObject("ADODB.Connection")
Set ObjRecordset = CreateObject("ADODB.Recordset")
StrConnectionString = "DRIVER={MySQL ODBC 8.0 Unicode Driver}; SERVER=IP-SERVEUR;PORT=3306;DATABASE=locationposte;UID=read;PASSWORD=read;OPTION=3"
ObjConnection.ConnectionString = StrConnectionString
ObjConnection.Open
ObjMySQL = "SELECT * FROM " & StrTableName & " WHERE (`" & _
StrColumnDefaultPrinter & "` LIKE '%" & PrinterName & "%') OR (`" & _
StrColumn2ndPrinter & "` LIKE '%" & PrinterName & "%') OR (`" & _
StrColumn3rdPrinter & "` LIKE '%" & PrinterName & "%') OR (`" & _
StrColumn4thPrinter & "` LIKE '%" & PrinterName & "%') OR (`" & _
StrColumn5thPrinter & "` LIKE '%" & PrinterName & "%')"
ObjRecordset.Open ObjMySQL, ObjConnection
Dim oOption, V
'vide la liste
For V = LstClient.length To 0 Step -1: LstClient.Remove (V): Next
V=0
While Not ObjRecordset.EOF
'ajoute les noms à la liste
Set oOption = window.Document.createElement("OPTION")
oOption.Text = ObjRecordset.fields("ClientName")
oOption.Value = "Option " & V
LstClient.Add (oOption)
V = V + 1
ObjRecordset.MoveNext
Wend
ObjRecordset.Close: Set ObjRecordset = Nothing
ObjConnection.Close: Set ObjConnection = Nothing
If V = 0 Then
Set oOption = window.Document.createElement("OPTION")
oOption.Text = "Auncune IMPRIMANTE disponnible"
oOption.Value = V
LstClient.Add (oOption)
LstClient.disabled = "disabled"
Else
LstClient.disabled = ""
MsgBox V & " Client(s) trouvée(s)"
End If
End Sub
Sub showchange()
Set ObjConnection = CreateObject("ADODB.Connection")
Set ObjRecordset = CreateObject("ADODB.Recordset")
StrConnectionString = "DRIVER={MySQL ODBC 8.0 Unicode Driver}; SERVER=172.16.23.240;PORT=3306;DATABASE=locationposte;UID=read;PASSWORD=read;OPTION=3"
ObjConnection.ConnectionString = StrConnectionString
ObjConnection.Open
ObjRecordset.Open ObjMySQL, ObjConnection
'strSelectedValues = ""
For i = 0 to (LstClient.Options.Length - 1)
If (LstClient.Options(i).Selected) Then
strSelectedValues = LstClient.Options(i).Text
End If
ObjMySQL = "SELECT * FROM " & StrTableName & " WHERE (`" & StrColumnClientName & "` LIKE '%" & strSelectedValues & "%')"
Next
'MsgBox strSelectedValues
'MsgBox ObjMySQL
'strSelectedValues = ""
MsG = "Client: " & ObjRecordset.Fields("ClientName") & vbNewLine & "ID: " & ObjRecordset.Fields("id")
If Not IsNull(ObjRecordset.Fields(StrColumnDefaultPrinter)) Then
MsG = MsG & vbNewLine & "DefaultPrinter: " & ObjRecordset.Fields(StrColumnDefaultPrinter)
End If
If Not IsNull(ObjRecordset.Fields(StrColumn2ndPrinter)) Then
MsG = MsG & vbNewLine & "2ndPrinter: " & ObjRecordset.Fields(StrColumn2ndPrinter)
Else
MsG = MsG & vbNewLine & "2ndPrinter: Null"
End If
If Not IsNull(ObjRecordset.Fields(StrColumn3rdPrinter)) Then
MsG = MsG & vbNewLine & "3rdPrinter: " & ObjRecordset.Fields(StrColumn3rdPrinter)
Else
MsG = MsG & vbNewLine & "3rdPrinter: Null"
End If
If Not IsNull(ObjRecordset.Fields(StrColumn4thPrinter)) Then
MsG = MsG & vbNewLine & "4thPrinter: " & ObjRecordset.Fields(StrColumn4thPrinter)
Else
MsG = MsG & vbNewLine & "4thPrinter: Null"
End If
If Not IsNull(ObjRecordset.Fields(StrColumn5thPrinter)) Then
MsG = MsG & vbNewLine & "5thPrinter: " & ObjRecordset.Fields(StrColumn5thPrinter)
Else
MsG = MsG & vbNewLine & "5thPrinter: Null"
End If
MsgBox MsG, vbInformation, "Rapport"
ObjRecordset.Close: Set ObjRecordset = Nothing
ObjConnection.Close: Set ObjConnection = Nothing
End Sub
'------------------------------------------------------------------------------------------------------------------
</SCRIPT>
<Body>
<input type="text" name="TxtPrinterName" value=""></p>
<input id=runbutton class="button" type="button" value="GO" onClick="run"><p>
<select name="LstClient" id="LstClient" disabled="disabled" size=5 onclick="showchange"><p>
<option value="LstClient">Client Name </option>
</select><p>
</Body>
</HTML> |
Si vous avez une idée pour améliorer l’affichage de l’ensemble je suis preneur.
Sous PHPmyAdmin c’est une sorte de tableau !