Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Recherche d'une chaine dans une colonne d'une BDD [ Base de données / SQL ] (alias666)

mercredi 6 février 2008 à 09:08:17 | Recherche d'une chaine dans une colonne d'une BDD

alias666

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.

Exemple : 3458

Données trouvées 34589562100,1253458449, 0054863458

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


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


Merci pour votre aide et bonne journée

_______________________
<<<< :-: 4L!@$ :-: >>>>

mercredi 6 février 2008 à 09:47:25 | Re : Recherche d'une chaine dans une colonne d'une BDD

pneau

Membre Club
Réponse acceptée !
Salut,

Tu peux utiliser la clause LIKE  avec le caractère %

ex
SELECT Id_Sim FROM T_Sim WHERE Sim like '123%'
Renvoie toutes les sim commencant par 123

SELECT Id_Sim FROM T_Sim WHERE Sim like '%123'
Renvoie toutes les sim se terminant par 123

SELECT Id_Sim FROM T_Sim WHERE Sim like '%123%'
Renvoie toutes les sim contenant 123

En espérant t'avoir aidé un peu

@+

Pat

 Don't Worry , Be Happy


lorsque le problème est résolu, pensez Réponse Acceptée

mercredi 6 février 2008 à 09:51:31 | Re : Recherche d'une chaine dans une colonne d'une BDD

Exploreur

Membre Club
Réponse acceptée !
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

 Linux a un noyau, Windows un pépin


mercredi 6 février 2008 à 09:52:18 | Re : Recherche d'une chaine dans une colonne d'une BDD

Exploreur

Membre Club
Post's croisés...

A+
Exploreur

 Linux a un noyau, Windows un pépin


mercredi 6 février 2008 à 10:33:34 | Re : Recherche d'une chaine dans une colonne d'une BDD

alias666

Re,

Merci pour l'inspiration, j'ai donc préféré utiliser le LIKE, mais t'inquiètes pas Exploreur j't'aime bien quand même

_______________________
<<<< :-: 4L!@$ :-: >>>>

mercredi 6 février 2008 à 10:42:59 | Re : Recherche d'une chaine dans une colonne d'une BDD

Exploreur

Membre Club
lol...

A+
Exploreur

 Linux a un noyau, Windows un pépin




Cette discussion est classé dans : add, sim, listitems, sql2, lvsim


Répondre à ce message

Sujets en rapport avec ce message

Ajout ds ListView [ par David2410 ] Bonjour, J'ai mis une Listview sur mon formulaire, et j'ai déjà parametré dans le propriété de celui-ci 4 colonnes, mais quand j'ajoute mes données, p Listeview [ par lm007npg ] Bonjour à tous,Je débute avec les listview.J'ai créé un list view avec 3 colonnes.(index de 1 à 3)Dans la prog d'un bouton, je mets : Dim xItem As Besoin urgent sur Listview [ par Sweet_7694 ] Je veux effacer un item dans une listview mais je n'arrive qu'a effacer la premiere car ensuite l'index change (normal) mais je n'arrive pas a trouver Listview et erreur "index hors limite" 35600 [ par waspy59 ] Bonjour,je suis en train de creer une tite macro pour gerer des stock de reactifs. sous excel j'ai deux feuilles appelées "Réactifs MCC" et "Réactifs [vba excel-03] problème pour affichage dans listview [ par fadan ] VBA excel 2003Bonjour le forum et touts mes voeux pour 2009.Merci d'avance à celui qui m'a lu mais aussi à celui qui pourrais m'éviter de nouvelle chu Listbox SP5 méthode [ par lex1111 ] Nouveau problème !!! , après avoir trouvé les controles du SP5 (qui me permettent d'avoir un look XP grâce à un .manifest), j'ai essayé de remplacer m listview [ par stef26 ] Salutje sèche sur un problème d'alignement dans mon listview. La ligne de commande ci-dessous me place les données en décalant à chaque fois d'une lig Pas d'enregistrements dans ma base access [ par SEB73460 ] Salut à tous ,Voila, je galère depuis plusieurs jours sur ma base de donnée access sur laquelle je n'arrive pas à enregistrer mes données dans cette d Collection de collections [ par Dolphin Boy ] Bonjour à tou(te)s, je ne sais pas faire de fioritures donc :Historique : Une classe (clsClass1).Une collection de cette classe (clnClass1) nommée m pb avec 2 listview [ par dodo1309 ] bonjourVoila je dois comparer le contenu de 2 listview et si l'une des deux contient le meme item que l'autre il faut le surpprimé .j'ai fais ceci mai


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 2,574 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.