Tursiop60
Messages postés38Date d'inscriptionsamedi 20 juin 2009StatutMembreDernière intervention12 septembre 2011
-
19 juin 2009 à 12:14
Tursiop60
Messages postés38Date d'inscriptionsamedi 20 juin 2009StatutMembreDernière intervention12 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 ?
WrestlingMan
Messages postés78Date d'inscriptionmardi 16 juin 2009StatutMembreDernière intervention17 février 20111 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)
Tursiop60
Messages postés38Date d'inscriptionsamedi 20 juin 2009StatutMembreDernière intervention12 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
WrestlingMan
Messages postés78Date d'inscriptionmardi 16 juin 2009StatutMembreDernière intervention17 février 20111 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 !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Tursiop60
Messages postés38Date d'inscriptionsamedi 20 juin 2009StatutMembreDernière intervention12 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.
WrestlingMan
Messages postés78Date d'inscriptionmardi 16 juin 2009StatutMembreDernière intervention17 février 20111 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
Tursiop60
Messages postés38Date d'inscriptionsamedi 20 juin 2009StatutMembreDernière intervention12 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.
WrestlingMan
Messages postés78Date d'inscriptionmardi 16 juin 2009StatutMembreDernière intervention17 février 20111 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 !!
Tursiop60
Messages postés38Date d'inscriptionsamedi 20 juin 2009StatutMembreDernière intervention12 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.