begin process at 2010 02 10 02:38:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Base de données

 > 

SQL

 > 

Recherche d'une chaine dans une colonne d'une BDD


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Recherche d'une chaine dans une colonne d'une BDD

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ée 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 Problème avec 2 listview [ par sancho12345 ] Bonsoir à vous, J’ai un problème à résoudre avec 2 listview [^^confus2]. J’ai un listview1 avec des références dans la première colonne (ListView1 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 Comparer 2 SubItems de 2 listview differents [ par sancho12345 ] Bonsoir à vous, Pourriez-vous m’aider et m’expliquer comment faire pour comparer 2 SubItems de 2 listview differents.[^^confus2] Je m’explique : J’


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales