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

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Bases de données

 > 

Recherche de texte dans une base de donnée


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

Recherche de texte dans une base de donnée

dimanche 26 mars 2006 à 18:39:33 | Recherche de texte dans une base de donnée

Bob06

Bonjour
J'ai un petit problème, je m'explique:
Sur une base de donnée Access, je voudrais faire une recherche de texte dans les enregistrements d' une table "matable", champs "description"
Petit exemple très simple pour mieux me comprendre:

Dans "matable" champs "description" j'ai les enregistrements suivants:
le beau petit chien rouge
la belle colombe blanche
le radis rouge
....

Sur ma feuille, j'ai 3 boutons du même groupe de contrôle :
Précédent (CommandButton0) - Recherche (CommandButton1) - Suivant CommandButton(2), 
un textBoxSaisie ou je saisie ma demande
et un textBoxResultat pour afficher le résultat

Ce que je voudrais faire:
Je cherche la chaine de caractères " rouge" dans "ma table" en la saisissant dans mon textBoxSaisie puis en cliquant sur Recherche, l'enregistrement "le petit chien rouge" s'affiche  dans mon textBoxResultat,
puis si je clique sur Suivant l'enregistrement "le radis rouge" s'affiche à son tour
Puis si je clique sur Précédent l'enregistrement "le petit chien rouge" revient s'afficher dans le TextBoxResultat.

Ben.... Je débute dans la gestion de base de données et la je bloque.
Si quelqu'un pouvait me donner un petit coup de main, (pour le code) ce serait supper sympa...
En vous remerciant par avance
Bob06
mardi 28 mars 2006 à 03:24:45 | Re : Recherche de texte dans une base de donnée

amylee1984

salut , j'avais en faite effectuer le meme recherche que toi , mais sur ma forme j'ai pas mis de précédent et suivant je m'explique :
j'ai fais les 2 textBox avec un bouton de recherche comme toi et si ma requette me retourne par exemple 3 resultat la automatiquement mon programme me creer des controles( textbox, labels ......) ce depend de ton besoin ou j'affiche tes les resultat.

par exemple de ton cas le prog va creer 2 textBoxResultat sur le 1ere j'aurai "le petit chien rouge" et sur le 2eme "le radis rouge", voila le code

dim str as string
srt="tarequette"

Dim cmd As New SqlCommand(str, Connection)

Dim reader As SqlDataReader

Dim top As Integer = 200

Dim height As Integer = 100

Dim width As Integer = 380

Try

Me.Connection.Open()

reader = cmd.ExecuteReader()

While (reader.Read())

bolie = True

Label5.Visible = True

Label6.Visible = True

'l'instanciation des textBox et leur emplacement sur la forme


Dim txtbox As New RichTextBox

Dim mestitre As New TextBox

txtbox.Text = reader(1).ToString   'on leur affecte les données qui nous retourne notre requette

mestitre.Text = reader(0).ToString

txtbox.Top = top

mestitre.Top = top

txtbox.Left = 300

mestitre.Left = 150

txtbox.Height = height

txtbox.Width = width

txtbox.Visible = True

mestitre.Visible = True

txtbox.ReadOnly = True

mestitre.ReadOnly = True

top = top + (height + 20)

Me.Controls.Add(txtbox) ' apres la creation et l'emplacement et l'affectation il faut ajouter le controle à la forme

Me.Controls.Add(mestitre)

Me.Controls.Remove(txtbox) ' si on fait une nouvelle recherche il faut supprimer ces comtroles

Me.Controls.Remove(mestitre)


End While

If bolie = False Then

MsgBox("aucun resultat avce ces caractéristiques")

End If

Catch ex As Exception

MsgBox(ex.Message)

Finally

'Une fermeture de connexion toujours dans un Finally, avec un test si la connection n'est aps égale à nothing, TOUJOURS !!

If (Not Me.Connection Is Nothing) Then

If (Me.Connection.State = ConnectionState.Open) Then

Me.Connection.Close()

End If

Me.Connection.Dispose()

Me.Connection = Nothing

End If

If (Not reader Is Nothing) Then

'FERMETURE du reader obligatoire, après test qu'il n'est pas égal à nothing !!

If (Not reader.IsClosed) Then

reader.Close()

End If

reader = Nothing

End If

If (Not cmd Is Nothing) Then

cmd.Dispose()

cmd = Nothing

End If

End Try

j'espere que sa va te servir
bonne prog

mardi 28 mars 2006 à 20:27:17 | Re : Recherche de texte dans une base de donnée

Bob06

Merci amylee1984

Je vais essayer d'adapter ce code à mes besoins, mais je ne garantis rien ...
car j'ai besoin des mes trois boutons et je ne peux pas utiliser plusieurs contrôles textbox, sur ma feuille, mais je vais essayer de trouver.

Encore merci pour votre aide

Bob06

mardi 28 mars 2006 à 20:46:18 | Re : Recherche de texte dans une base de donnée

amylee1984

salut , de rien bob06 , nous sommes ici pour l'echange de l'information
sinon je vais essayer de faire ton truc et si tu reussi à le faire fait moi signe stp
merci
mercredi 29 mars 2006 à 09:33:51 | Re : Recherche de texte dans une base de donnée

Bob06

Ok on se tiens au courant, et apparament cela devrait pouvoir servir à d'autres collègues.
A +
Bob06
samedi 15 avril 2006 à 18:42:01 | Re : Recherche de texte dans une base de donnée

Bob06

Bonjour

Finalement, j'ai trouvé. C'était tellement simple que je n'y avait pas pensé !!!
Il ne faut pas 3 boutons du même groupe de contrôle, mais 3 boutons différents.

Bon, je reprend mon petit exemple, c'est plus simple à comprendre.
Dans "matable" champs "description" j'ai les enregistrements suivants:
le beau petit chien rouge
la belle colombe blanche
le radis rouge
....

Ce que je voudrais faire:
Je cherche la chaine de caractères ou le mot  " rouge" dans "ma table" en la saisissant dans mon textBoxSaisie puis en cliquant sur Recherche, l'enregistrement "le petit chien rouge" s'affiche  dans mon TextBoxResultat,
puis si je clique sur Suivant l'enregistrement "le radis rouge" s'affiche à son tour
Puis si je clique sur Précédent l'enregistrement "le petit chien rouge" revient s'afficher dans le TextBoxResultat.

En simplifiant, le code, ça donne a peu prés ceci :

Private Sub CdBoutonRecherche_Click()
Dim CritereRecherche as string
.....
Compt = 1
La requete :
sql = "SELECT * FROM MaTable" Where "Description LIKE'*" & textBoxSaisie & "*'"
Set Rs = BaseDonnee.OpenRecordset(sql, dbOpenDynaset)
NombreEnregistrement = Rs.RecordCount   (c'est le nombre d'enregistrements correspondant à la recherche, ici 2)
Rs.MoveFirst 'on se place sur le premier enregistrement
TextBoxResultat = Rs!Description
....
End Sub
----------------
Private Sub CdBoutonPrecedent_Click()
....(la il faut mettre un test pour verifier que la variable 'compt' ne prenne pas une valeur inférieur à 1 , dans ce cas on sort de la procédure en affichant un MsgBox par exemple) .....
Compt = Compt - 1
Rs.MovePrevious  (on se place sur l'enregistrement précédent)
TextBoxResultat = Rs!Description .....
End sub
---------------
Private Sub CdBoutonSuivant_Click()
....(La, il faut mettre un test pour vérifier que la variable 'Compt' ne prenne pas une valeur supérieure à NombreEnregistrement dans ce cas on sort de la procédure en affichant un MsgBox par exemple) .....
Compt = Compt +1
Rs.MoveNext  (on se place sur l'enregistrement suivant)
TextBoxResultat = Rs!Description
.....
End sub


Il ne faut pas fermer le jeu d'enregistrement (Rs) tant que la recherche est active.

Voilà, j'ai simplifier le code, il faut penser à bien mettre des tests pourle bon déroulement des procédure,mais en réalité c'est assez simple.

Voilà si cela peux servir à quelqu'un....
Bob06



Cette discussion est classée dans : base, donnée, texte, recherche, rouge


Répondre à ce message

Sujets en rapport avec ce message

Probleme de recherche de la base de donnée par mon application [ par gbegerco ] Salut à tousJ'ai un problème avec les applications dans lesquelles j'utilise ADODC. Lors de l'utilisation de l'application quand j'exporte par exemple Recherche dans une base de donnée a l'aide de 'Seek' [ par Arion ] Comment utiliser la méthode Seek ? Remplir une base de donnée avec un fichier texte [ par Bigblue ] Je dois remplir une base de donnée avec un fichier texte et je ne sais pas comment charger les données dans la base sans passer par une interface grap recherche dans base de donnée [ par kenavo27 ] Bonjour, je voudrais savoir comment désigné le dernier enregistrement d'un objet recordset. Je ne parle pas de "enregistrement.EOF", mais de l'enregis Creation d'une base de donnée à partir d'un flex [ par crocmorts ] Ben voila, le probleme, en un mot, c'est que je dois exploiter un fichier texte, donc, je lis le contenu du fichier texte, je l'affiche sous un flexgr recherche dans base de donnée [ par seb41 ] comment faire une recherche sur deux chanp concatenés en utilisan adoj 'ai trouvé une méthode find mais j 'arrive pas a la configurer pour chercher da recherche dans une base de donnée access [ par masterdarkcloud ] je fais un jeu de carte (genre magic) et je veux incorporé une base de donné dans mon projet.Ce que je veux en fait:J'ai mis le numéro de la carte dan Base de donnée - menu de recherche [ par mick1819 ] Hello Je dois faire une petite application qui permet de gérer un stock. J'ai connecté mon application avec une base de données accès. J'ai réussi a f Recherche sur tout une base de donnée [ par Cardosi ] Bonjour,        J'aimerais savoir si il est possible d'effectuer une recherche sur tout une base de donnée. Pour être pluspr&#23


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 : 1,108 sec (4)

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