Liaison base de donnees textbox

elwadeh Messages postés 55 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 28 juin 2018 - 9 avril 2011 à 12:38
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 - 10 avril 2011 à 21:48
Bonjour,
je développe avec vb 2005, j'ai une BDD access avec une table qui contient trois champs;
- numéro adhérent
- prénom adhérent
- date de naissance
dans mon form j'ai trois textbox
alors ce que je veux c'est quand je saisie le numéro d'adhérent dans le textbox1.text et j'appuie sur la touche enter il m'affiche le nom dans le textbox2.text et la date de naissance dans le textbox3.text

merci

24 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
9 avril 2011 à 14:12
Bonjour,

Tu bloques sur quoi ?

Mon site
0
elwadeh Messages postés 55 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 28 juin 2018 1
9 avril 2011 à 18:11
Bonjour NHenry,
j'ai pas bien compris ta question qu'est ce que tu veux dire par je bloque sur quoi
désoler pour cette question mais puisque je suis débutant j'ai pas bien piger ta question.
marci pour ton intention à mon probléme parce que c vraiment urgent
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
9 avril 2011 à 18:16
Bonjour,

Quel élément te pose problème ?
Est-ce la connexion à la base de données
Récupérer l'information
Afficher l'information
...

Mon site
0
elwadeh Messages postés 55 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 28 juin 2018 1
9 avril 2011 à 18:40
Re,
oui c'est exactement mon problème donc pour la connexion à la base de données voilà mon code dans le form_load :
'ma BDD (amc) et ma table (gestadh)
'connexion base de données
conn "provider microsoft.jet.oledb.4.0 ; data source = " & Application.StartupPath & "\amc.mdb;"
cnx = New OleDbConnection
cnx.ConnectionString = conn
cnx.Open()
sql = "select gestadh.* from gestadh"
cmd = New OleDbCommand(sql)
dta = New OleDbDataAdapter(cmd)
cmd.Connection() = cnx

dta.Fill(dts, "gestadh")

dtt = dts.Tables("gestadh")

If rownum > dtt.Rows.Count - 1 Then

Me.Show()
End If
alors maintenant ce que je veux c'est quand je saisie le numéro d'adhérent dans le textbox1.text et j'appuie sur la touche enter il m'affiche le nom correspond a cet adherent dans le textbox2.text et la date de naissance correspondante au meme adherent dans le textbox3.text.
je veux le code si c'est possible en détail
merci mon ami
0

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

Posez votre question
elwadeh Messages postés 55 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 28 juin 2018 1
9 avril 2011 à 18:42
alors j'ai oublier je veux récuperer l'information et l'afficher dans les textbox2 et 3
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
9 avril 2011 à 18:47
Bonjour,

Je pense que la réponse se trouve dans la clause WHERE des requête SQL.
Regardes aussi du coté de OleDbDataReader et de Cmd.GetDataReader, ça sera suffisant pour ton utilisation.

Mon site
0
elwadeh Messages postés 55 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 28 juin 2018 1
9 avril 2011 à 18:58
Bonjour,
voilà ce j'ai mis dans l'événement textbox1:
j'ai crée un label pour faire ma requete:

Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus
If Label26.Text = "id" Then
sql "select police.* from police where numadh '" & TextBox1.Text & "'"
cmd = New OleDbCommand(sql)
dta = New OleDbDataAdapter(cmd)
cmd.Connection() = cnx
dta.Fill(dts, "gestadh")
dtt = dts.Tables("gestadh")

If rownum > dtt.Rows.Count - 1 Then
MessageBox.Show("Il n'existe aucun adherent pour ce numéro " & TextBox1.Text & " !", "Données inexistantes...", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

Exit Sub

Els
Me.TextBox2.Text = dtt.Rows(rownum).Item("nomadh")
Me.TextBox3.Text = dtt.Rows(rownum).Item("dnaissance")
End If
End If
end sub

merci de me corriger ce code
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
9 avril 2011 à 19:08
Bonjour,

Pourquoi utiliser un DataAdapter à la place d'un DataReader plus simple à manipuler ?

Dim lReader as OleDbDataReader=cmd.GetDataReader()
If lReader.Read Then
'Des données
Else
'Pas de données
End If

Comment corriger un code, sans savoir ce qui ne va pas ?

Mon site
0
elwadeh Messages postés 55 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 28 juin 2018 1
9 avril 2011 à 19:24
ou je doid mettre ce code??
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
9 avril 2011 à 19:33
Bonjour,

En retirant :
dta = New OleDbDataAdapter(cmd)
et le ne mettant à la place de :
dta.Fill(dts, "gestadh")
dtt = dts.Tables("gestadh")

If rownum > dtt.Rows.Count - 1 Then
MessageBox.Show("Il n'existe aucun adherent pour ce numéro " & TextBox1.Text & " !", "Données inexistantes...", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

Exit Sub

Els
Me.TextBox2.Text = dtt.Rows(rownum).Item("nomadh")
Me.TextBox3.Text = dtt.Rows(rownum).Item("dnaissance")
End If
End If 


enfin, à toi de voir en testant.

Mon site
0
elwadeh Messages postés 55 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 28 juin 2018 1
9 avril 2011 à 19:58
désolé ça marche pas:
je vous remercie bcp pour votre patiente avec un débutant, alors pour récapituler voilà mon code actuel:
dans le form_load:

Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
conn "provider microsoft.jet.oledb.4.0 ; data source = " & Application.StartupPath & "\amc.mdb;"
cnx = New OleDbConnection
cnx.ConnectionString = conn
cnx.Open()
sql = "select gestadh.* from gestadh"
cmd = New OleDbCommand(sql)
dta = New OleDbDataAdapter(cmd)
cmd.Connection() = cnx

dtt = dts.Tables("gestadh")

If rownum > dtt.Rows.Count - 1 Then

Me.Show()
End If
End Sub

dans le textbox1.text


Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If Label26.Text = "id" The
sql "select gestadh.* from gestadh where numadh '" & TextBox1.Text & "'"
cmd = New OleDbCommand(sql)
cmd.Connection() = cnx
dta.Fill(dts, "gestadh")
dtt = dts.Tables("gestadh")

If rownum > dtt.Rows.Count - 1 Then

MessageBox.Show("Il n'existe aucun adheret pour ce numéro " & TextBox1.Text & " !", "Données inexistantes...", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

Exit Sub

Else
Me.TextBox2.Text = dtt.Rows(rownum).Item("nomadh")
Me.TextBox3.Text = dtt.Rows(rownum).Item("dnaissance")
End If
End If
End Sub


voila mon code complet
alors maintenant quand je lance mon application et que je saisie par exemple le numéro 14 dans le textbox1.tet il m'affiche les cordonnées du premier adhérent c'est à dire adhérent numéro 1.
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
9 avril 2011 à 20:34
Bonjour,

Limite la portée de tes variables,
dts et dtt doivent être limitées à la Sub/Function qui les utilise, et pas en valeur globale.

Mon site
0
elwadeh Messages postés 55 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 28 juin 2018 1
10 avril 2011 à 02:00
bonsoir,
svp au lieu de me dire des choses que je comprend pas, donne moi le code que je dois ecrire, c'est simple je crois tout en sachant que le code que j'ai ecrit je l'ai mis en haut.

merci encore
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
10 avril 2011 à 13:28
Bonjour,

En clair, au lieu de déclarer dtt et dta au niveau de ta classe, tu les déclare dans ta fonction.

Private Sub MaSub
Dim Variable as Type

Mon site
0
elwadeh Messages postés 55 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 28 juin 2018 1
10 avril 2011 à 18:29
Bonjour,
désolé de vous déranger encore une fois NHenry, mais toujours je suis perdu j'ai rien copmris.
je veux le code que je dois écrire dans le Form1_load et le code que je dois écrire dans l'événement du textbox1.
c très gentil de votre part de m'aider parce que j'en ai vraiment besoin demain.

voilà les éléments que j'ai


- la BDD : amc
- la table : gestadh
- les champs de la table: numadh, nomadh, dnaissance
- Form1 :textbox1, textbox2, textbox3
merci bcp
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
10 avril 2011 à 18:32
Bonjour,

Ce que je pense, c'est que comme tu as déclaré dta et dtt (variables) en global, et que tu ne les RAZ pas, tu ne récupère que le premier résultat de la première requête de ton programme.

D'où le fait de les déclarer dans le Sub/Function qui les utilisent serait plus efficace, car ça éviterais ce genre d'erreur.

Mon site
0
elwadeh Messages postés 55 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 28 juin 2018 1
10 avril 2011 à 18:56
Bonjour,
alors qu'est ce que je dois écrire comme code.
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
10 avril 2011 à 19:01
Bonjour,

Ramène les déclarations de dta et dtt dans les fonction/sub qui en ont besoin, je ne vois pas comment faire plus clair.

Quels mots te bloques dans ma phrase ?

Mon site
0
elwadeh Messages postés 55 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 28 juin 2018 1
10 avril 2011 à 19:21
Bonjour,
qu'est ce que tu veux dire par fonction/sub
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
10 avril 2011 à 19:29
Bonjour,

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Est une Sub.

Mon site
0
Rejoignez-nous