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 ?
Si vous avez une idée pour améliorer l’affichage de l’ensemble je suis preneur.
Code HTA : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Sous PHPmyAdmin c’est une sorte de tableau !
Partager