bhervieu
Messages postés1Date d'inscriptionvendredi 24 septembre 2010StatutMembreDernière intervention27 janvier 2012
-
27 janv. 2012 à 17:19
Bonjour,
J'ai une combobox qui récupère des valeur dans une base de données, mais je souhaiterai en faite que lorsque l'on l'on commence a saisir le nom d'une personne, s'affiche les personnes présente dans la base de données.
Je ne vois pas trop comment faire, j'ai tester avec un
autocomplete= "on"
mais sa ne fonctionne pas.
Je ne sais plus trop comment chercher, n'y même s'il est possible de le faire en VBs.
PS: voici mon code VBs/HTA
<html>
<head>
<title>Envoide de Fax</title>
<HTA:APPLICATION
ID="EnvoiFax"
APPLICATIONNAME="Envoide de Fax"
CAPTION="Yes"
BORDER="thick"
SHOWINTASKBAR="Yes"
SINGLEINSTANCE="Yes"
SYSMENU="Yes"
WINDOWSTATE="Normal"
SCROLL="No"
INNERBORDER="No"
SELECTION=""
MAXIMIZEBUTTON="No"
MINIMIZEBUTTON="NO"
NAVIGABLE="NO"
CONTEXTMENU="No"
BORDERSTYLE=""
ICON="fax.ico">
</head>
<script language="VBScript">
ResizeTo 550,250 'Width,Height
MoveTo 250,200 'Left,Top
'--------------------------------------------------------------------------------------------------------------------'
'-----------------------------------------------DEBUT-SCRIPT---------------------------------------------------------'
'--------------------------------------------------------------------------------------------------------------------'
Sub Window_OnLoad
Set objConnection = CreateObject("ADODB.Connection")
Set objRecordset = CreateObject("ADODB.Recordset")
'chaine de connexion
objConnection.Open "DRIVER={MySql ODBC 5.1 Driver};SERVER=localhost;DATABASE=nomDB;UID=user;PASSWORD=password;"
'requete sql
strSQLQuery = "SELECT nom, numeroFax FROM personne"
objRecordset.Open strSQLQuery , objConnection
'on recupere tout les jeux d'enregistrement tant que celui-ci n'est pas arriver a la fin
do while not objRecordset.EOF
'on crée dans le select un champ option
Set objOption = Document.createElement("OPTION")
'auquel on lui affecte comme texte le nom
objOption.Text = objRecordset.Fields("nom").Value
'et comme valeur correspondant au nom, le numero de fax
objOption.value = objRecordset.Fields("numeroFax").Value
'et on l'ajoute au selectbox
personnel.Add(objOption)
'puis on passe au jeux d'enregistrement suivant
objRecordset.movenext
loop
'on ferme la connexion
objRecordset.Close
objConnection.Close
End Sub
'------------------------------------------------------------------------------------------------'
'-----------------------------------------DEBUT-ENVOI--------------------------------------------'
'------------------------------------------------------------------------------------------------'
Sub envoi
'déclaration de la variable (file system object)
Dim fso
'instanciation
Set FSO = CreateObject("Scripting.FileSystemObject")
'on instance le fichier texte
Set Ftxt = FSO.OpenTextFile("C:\SMFAX\test.txt")
'on parcours chaque ligne du fichier texte
Do While Not Ftxt.AtEndOfStream
MaVariable = Ftxt.Readline
'code pour traiter chaque ligne (1seul dans ce cas la)
a=Split(MaVariable ,";")
If UBound(a) = 1 Then
End If
Loop
' déclaration des variables
Dim olapp
Dim objet
Dim corps
Dim PJ
Dim mail
Dim oFSO, oFl, newnom
Dim nbcontact
Dim variable
'affectation des valeurs aux variables
nom = tbx_nom.value
destinataire = tbx_numeroFAX.value
objet=(a(0))
corps=(a(1))
PJ=("C:\SMFax\FAX.pdf") 'Faire correspondre dans PdfCreator
mail= destinataire &"@gmail.com"
'si ereur alors on sort
On Error Resume Next
'on instancie l'objet outlook
Set olapp = GetObject("Outlook.Application")
If Err.Number Then
Err.Clear
'si outlook n'est pas ouvert, on l'ouvre
Set olapp = CreateObject("Outlook.Application")
If Err.Number Then
MsgBox "Impossible d'ouvrir Outlook."
End If
End If
'on affecte les variables, aux differentes fonctionnailités du mail
Set olMail = olapp.CreateItem(olMailItem)
'destinataire
olMail.To = (mail)
'objet (expediteur)
olMail.Subject = (objet)
'corps (password)
olMail.Body = (corps)
'pièce jointes (le PDF créé précédement avec pdf créator)
olmail.Attachments.Add("C:\SMFax\FAX.pdf")
'on envoi le mail
olmail.send
Set olMail = Nothing
Set olapp = Nothing
'si erreur alors afficher message erreur
If Err.Number <>0 Then
MsgBox Err.Description,16,"Erreur"
'sinon
Else
'instanciation de la variable file system object
Set oFSO = CreateObject("Scripting.FileSystemObject")
'on recupere le PDF
Set oFl = oFSO.GetFile("C:\SMFax\FAX.pdf")
'on affecte a la variable newnom la date et l'heure
newnom=day(Date()) & month(Date()) & year(Date()) & "_" & Hour(Time()) & "_" & Minute(Time())& "_" & second(Time())
'on renome le PDF avec le nouveau nom (newnom)
oFl.Move("C:\SMFax"&newnom&".pdf")
Set objConnection = CreateObject("ADODB.Connection")
Set objRecordset = CreateObject("ADODB.Recordset")
'chaine de connexion
objConnection.Open "DRIVER={MySql ODBC 5.1 Driver};SERVER=localhost;DATABASE=nomDB;UID=user;PASSWORD=password;"
'requete sql
strSQLQuery = "SELECT COUNT( * ) FROM personne WHERE numerofax='"& destinataire &"'"
objRecordset.Open strSQLQuery , objConnection
'on recupere le resultat du nombre de jeu d'enregistrement dans la variable "nbcontact"
nbcontact = objRecordset.Fields("COUNT( * )")
'on ferme la connexion
objRecordset.Close
objConnection.Close
'MsgBox "count(*) = " & nbcontact
'on verifie a quoi nb contact correspond "nbcontact"
'soit "0" alors variable est vrai
If ( nbcontact = "0" ) Then
variable = "True"
'sinon variable est faux
Else
variable = "False"
End If
'Si variable est vrai alors
If ( variable = "True") Then
'chaine de connexion
objConnection.Open "DRIVER={MySql ODBC 5.1 Driver};SERVER=localhost;DATABASE=nomDB;UID=user;PASSWORD=password;"
'requete sql 1
strSQLQuery1 = "INSERT INTO fax (cheminPJ, coderetour) VALUES('"& "C:\\SMFax\"& newnom &".pdf" &"', '"&"envoyer"&"')"
'requete sql 2
strSQLQuery2 = "INSERT INTO personne (nom, numeroFAX) VALUES ('"& nom &"', '"& destinataire &"');"
'execution de la requete sql 1
objRecordset.Open strSQLQuery1 , objConnection
'execution de la requete sql 2
objRecordset.Open strSQLQuery2 , objConnection
MsgBox "Fax envoyé."
'on vide les champ des textbox
tbx_numeroFAX.value= ""
tbx_nom.value= ""
'on ferme la connexion
objRecordset.Close
objConnection.Close
'Si variable est faux
Else
'chaine de connexion
objConnection.Open "DRIVER={MySql ODBC 5.1 Driver};SERVER=localhost;DATABASE=nomDB;UID=user;PASSWORD=password;"
'requete sql 3
strSQLQuery3 = "INSERT INTO fax (cheminPJ, coderetour) VALUES('"& "C:\\SMFax\"& newnom &".pdf" &"', '"&"envoyer"&"')"
objRecordset.Open strSQLQuery3 , objConnection
MsgBox "Fax envoyé."
'on vide les champ des textbox
tbx_numeroFAX.value= ""
tbx_nom.value= ""
'on ferme la connexion
objRecordset.Close
objConnection.Close
End If
End If
End Sub
'------------------------------------------------------------------------------------------------'
'-------------------------------------------FIN-ENVOI--------------------------------------------'
'------------------------------------------------------------------------------------------------'
Sub ComboBoxChange
'on affiche la valeur(numéro de fax) de la personne selectionner dans le textbox numeroFAX
tbx_nom.value= ""
tbx_numeroFAX.value = personnel.Value
End Sub
Sub OnClickButtonlectureCSV()
'déclaration des variables
Dim fso
Dim fCsv
Dim tb
Dim n
Const ForReading = 1
Set fso = CreateObject("scripting.filesystemobject")
'on precise ou se trouve le fichier que l'on souhaite lire
Set fCsv = fso.OpenTextFile("C:\gpi\gpi_fax.csv", ForReading)
'tant que la lecture n'est pas a la fin
While Not fCsv.AtEndOfStream
'on coupe le texte à chaque "," (séparateur)
tb = Split(fCsv.ReadLine, ",")
'on precise qu'il y a 12 virgules (nombre precis puisque déterminé par la génération du .csv par GPI
If UBound(tb) = 12 Then
'fonction qui permet de supprimer le zero du standard
n = Mid (tb(5), 2)
'on remplis nos textbox par les valeur que l'on souhaite
tbx_nom.value = tb(0)
tbx_numeroFAX.value = n
End If
Wend
End Sub
'--------------------------------------------------------------------------------------------------------------------'
'-------------------------------------------------FIN-SCRIPT---------------------------------------------------------'
'--------------------------------------------------------------------------------------------------------------------'
</script>
Veuillez saisir un numero de fax ou le selectionner dans la liste
Nom :
Numéro de fax :
Nom : <select name ="personnel"onchange="ComboBoxChange()" style="width:130px"/></select>
</select>
</html>