Recherche d'un nom dans une base de données

Tursiop60 Messages postés 38 Date d'inscription samedi 20 juin 2009 Statut Membre Dernière intervention 12 septembre 2011 - 19 juin 2009 à 12:14
Tursiop60 Messages postés 38 Date d'inscription samedi 20 juin 2009 Statut Membre Dernière intervention 12 septembre 2011 - 20 juin 2009 à 16:46
Bonjour à tous,

Je sollicite votre bienveillance car je souhaiterais un petit coup de main pour mon programme. Je constitue une base de données Clients avec des champs tels le NOM et le Prénom du client. Pas de soucis pour ajouter des données à la table, mais par contre je n'arrive pas à trouver les codes pour effectuer une recherche dans ma base de données.

En fait, ce que je souhaite faire dans un windows form appelé Recherche :

   - Taper un Nom (ou une partie de nom) dans un textbox
   - Cliquer sur un bouton Rechercher
   - Afficher le résultat (dans le meme windows form) dans une listbox avec affichage du NOM et du Prénom
   - Ensuite mettre en surbrillance le résultat que je veux puis cliquer sur un autre bouton pour voir les données dans un autre windows form OU supprimer l'enregistrement de la table.

Est-ce réalisable ? ET Quelqu'un serait-il assez aimable pour m'aider ?

D'avance merci

Damien

10 réponses

WrestlingMan Messages postés 78 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 17 février 2011 1
19 juin 2009 à 14:59
Petit élément de réponse, j'èspère que cela pourra t'aider mais pour afficher dans la list box je ne suis pa sur et pour la mise en surbrillance je ne sais pas ! A toi de voir !

Private Sub B_Rechercher_Click()

dim db as database
dim rs as recordset
dim sql as string

set db = CurrentDb()
sql = "select nom, prenom from T_Client where nom='" & textbox.value & "*';"
set rs = db.OpenRecordset(sql)

listbox.value = rs.Fields("Nom").Value & " " & rs.Fields("Prénom").Value

end sub
0
Tursiop60 Messages postés 38 Date d'inscription samedi 20 juin 2009 Statut Membre Dernière intervention 12 septembre 2011
19 juin 2009 à 19:04
Merci pour la réponse, je vais déjà voir avec ça je te tiens au courant.

Bonne soirée.
0
Tursiop60 Messages postés 38 Date d'inscription samedi 20 juin 2009 Statut Membre Dernière intervention 12 septembre 2011
20 juin 2009 à 12:13
Bonjour,

Je reviens vers toi car j'ai un souci sur le code : à quoi correspondent "database", "recordset" et "CurrentDb"  car il sont surlignés et il y a marqué "Type non reconnu".

J'ai également changé Textbox.value en Textbox.Text et de même pour listbox

Merci, toute aide est la bienvenue.

A+
0
WrestlingMan Messages postés 78 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 17 février 2011 1
20 juin 2009 à 12:20
Le code que je t'ai mis est du VBA access ! Si tu est sur excel il faut que tu aille dans outils, reference puis tu coche "microsoft DAO 3.6 Object Librairie" puis clique sur ok ! C'est pour que excel reconnaisse le language base de donnée ! Mais avant de continuer précise moi si tu est sur VB.net ou VBA ou autre car je doit avoir des morceau de code pour connection au base de donnée et je pourrais mieux t'aider !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tursiop60 Messages postés 38 Date d'inscription samedi 20 juin 2009 Statut Membre Dernière intervention 12 septembre 2011
20 juin 2009 à 13:31
Je sais pas trop pour vb.net ou VBA. Je fait la prog en passant par le logiciel Visual Basic 2008 Express. Je sais pas si ça peu t'aider. En tout cas merci du coup de main.
0
WrestlingMan Messages postés 78 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 17 février 2011 1
20 juin 2009 à 13:48
D'abord il faut que tu mette sa au load de ton programme c'est à dire au chargement :
'ouverture de la base de donnée
db = dbe.OpenDatabase("K:\Correcteurs\correct.mdb")

Ensuite tu fait un truc dans ce genre (attention ce n'est qu'un exemple il faut adapter à tes besoins ) :

Private Sub brecherche_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles brecherche.Click

'var
Dim langue As String
Dim query As String
Dim mess As String
Dim prix As Single
Dim TtCopies As Integer
Dim Cout As Single

'Début
prix = 0
Cout = 0
langue = txtLang.Text
lstStat.Items.Clear()
query = "select * from Copies, Niveau where Niveau.NumNiveau=Copies.NumNiveau and Langue='" & langue & "'"
rsCopies = db.OpenRecordset(query)
While Not rsCopies.EOF
mess = (rsCopies("NumP").Value) & " - "
mess = mess & (rsCopies("NbCopies").Value) & " copies" & " - "
prix = (rsCopies("NbCopies").Value * rsCopies("PrixUnitaire").Value)
mess = mess & prix & " €"
TtCopies = TtCopies + rsCopies("NbCopies").Value
Cout = Cout + prix
lstStat.Items.Add(mess)
rsCopies.MoveNext()
End While

lstStat.Items.Add("....................................................")
mess = "Total Copies : " & TtCopies
mess = mess & " - " & "Coût : " & Cout & " €"
lstStat.Items.Add(mess)

End Sub


J'èspère que sa pourra t'aider !!
0
Tursiop60 Messages postés 38 Date d'inscription samedi 20 juin 2009 Statut Membre Dernière intervention 12 septembre 2011
20 juin 2009 à 14:58
Merci pour ton aide, je vais essayer ça et je te tiens au courant.

A+
0
Tursiop60 Messages postés 38 Date d'inscription samedi 20 juin 2009 Statut Membre Dernière intervention 12 septembre 2011
20 juin 2009 à 16:07
Bon, en essayant un peu j'ai fait ça :

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim rsClients As Recordset
        Dim Currentdb As Database
        rsClients = Currentdb.OpenRecordset("Select NOM, Prénom From Clients where nom='" & TextBox1.Text() & "*';")
        While Not rsClients.EOF
            ListBox1.Text = rsClients.Fields("Nom").Value() & " " & rsClients.Fields("Prénom").Value()
            rsClients.movenext()
        End While
        rsClients.Close()
    End Sub

Mais Recordset et Databas ne sont pas reconu (ils sont soulignés en rouge). Que faire ?
Ma base de données (où se trouve les données existantes) se nomme Clients.

Merci.
0
WrestlingMan Messages postés 78 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 17 février 2011 1
20 juin 2009 à 16:19
dim db as database
(pas : dim currentdb as database)
db = dbe.OpenDatabase("K:\Clients.mdb")

sa tu le met au chargement de ton form et non au niveau du bouton !

je pense que c'est le problème !
Après je ne suis pas sur car j'ai plutôt l'habitude de travailler en VBA quand il y a utilisation de sgbd !!
Si ce n'est pas sa je ne sais pas !! désolé !
essaie toujours peut-être que c'est sa !!
0
Tursiop60 Messages postés 38 Date d'inscription samedi 20 juin 2009 Statut Membre Dernière intervention 12 septembre 2011
20 juin 2009 à 16:46
Je te remercie mais ça ne marche pas plus. Je vais essayé à taton et je finirai bien trouvé. Si t'as d'autres idées et un peu de temps encore à me consacrer c'est sympa, sinon pas grave je te remercie de ta rapidité à me répondre.

A bientôt, bon week end.
0
Rejoignez-nous