alias666
Messages postés308Date d'inscriptionmardi 1 juin 2004StatutMembreDernière intervention23 mars 2010
-
6 févr. 2008 à 09:08
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 2016
-
6 févr. 2008 à 10:42
Bonjour à tous,
Je suis en phase finale du projet, j'ajoute quelques fonctionnalité sur celui-ci actuellement j'ai un recherche de numéro de carte sim tout simple, cependant je cherche le numéro de ma sim. J'aimerai que si par exemple l'utilisateur saisi 3-4 chiffres, cela cherche dans ma colonne ou il y a les sims toutes les sim dont il y a ses 3-4 chiffres consécutifs.
J'ai donc pensé à InStr cependant je ne vois pas trop comment utiliser ca dans ma requête, j'ai vu quelques sujets traitants de ce genre de cas, mais sans grand succès car ses sujets restent sans réponses.
Je vous fais part de mon code qui traite cette recherche. Sachant que j'aimerai que ca affiche dans mon Listview toutes les sims trouvées mais bon je pense pas que des modifs doivent etre apportées vu que ca boucle tout seul
<hr size="2" width="100%" />
Private Sub btnOk_Click()
On Error GoTo Erreur
Dim conn As ADODB.Connection
Dim Sim As String
Dim IdSim As String
Dim Sql As Recordset
Dim Sql2 As Recordset
Dim nb As Long
Dim i As Integer
Dim myRegExp As RegExp
Set myRegExp = New RegExp
myRegExp.Pattern = "^[0-9]+$"
Sim = txtNumSim
Set conn = New ADODB.Connection
conn.ConnectionString = "DSN=LocalServer;uid=web;pwd=jhosoi;driver=MySQL ODBC 3.51 Driver;server=83.68.100.24;database=Sim"
conn.Open
If myRegExp.Test(txtNumSim) Then Set Sql conn.Execute(("SELECT Id_Sim FROM T_Sim WHERE Sim'" & txtNumSim & "'"), nb)
If nb = 0 Then
MsgBox "La SIM n'existe pas.", vbInformation, "Recherche de SIM"
Else
IdSim = Sql.Fields(0).Value Set Sql2 conn.Execute("SELECT Numero,Nom_Operateur,Facturation,McuCode,ClientCode, Fr_Data_Euro,Roaming_Data_Euro FROM T_Facturation, T_Sim, T_Operateur WHERE T_Facturation.Id_Sim T_Sim.Id_Sim AND T_Sim.Operateur = T_Operateur.Id_Operateur AND T_Sim.Id_Sim =" & IdSim)
i = 1
lvSim.ListItems.Clear
While Not Sql2.EOF
lvSim.ListItems.Add(1) = Sql2!Nom_operateur
lvSim.ListItems(i).ListSubItems.Add = Sql2!Numero
lvSim.ListItems(i).ListSubItems.Add = Sql2!ClientCode
lvSim.ListItems(i).ListSubItems.Add = Sql2!McuCode
lvSim.ListItems(i).ListSubItems.Add = Sql2!Facturation
lvSim.ListItems(i).ListSubItems.Add = Sql2!Fr_Data_Euro
lvSim.ListItems(i).ListSubItems.Add = Sql2!Roaming_Data_Euro
i = i + 1
Sql2.MoveNext
Wend
Sql2.Close
Sql.Close
End If
Else
MsgBox "Le numéro de carte SIM est invalide, il doit comporter uniquement des numéros.", vbInformation, "Erreur de saisie"
End If
Exit Sub
Erreur:
MsgBox "Une erreur s'est produite lors du traitement :" & Err.Number & vbLf & Err.Description
End Sub
<hr size="2" width="100%" />
Merci pour votre aide et bonne journée
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 6 févr. 2008 à 09:51
Salut,
Et si tu faisais une seule requête de selection du genre un truc comme cela :
Sql "SELECT Id_Sim FROM T_Sim WHERE Id_Sim'" & InStr(1, Id_Sim, NumSimTxt.Text) & "'"
Avec une requête du genre tu ne devrait avoir que les N° de Sim qui comporte ta saisie dans NumSimTxt....
A+
Exploreur