autodidacte3
Messages postés58Date d'inscriptionmardi 21 juillet 2009StatutMembreDernière intervention25 décembre 2014
-
Modifié par autodidacte3 le 27/02/2014 à 16:00
autodidacte3
Messages postés58Date d'inscriptionmardi 21 juillet 2009StatutMembreDernière intervention25 décembre 2014
-
5 mars 2014 à 12:24
Bonjour, tout le monde
plus d'un mois que mon petit programme fonctionne correctement jusqu'à ce matin :
j'ai deux employés qui portent le même "Nom et Prénom"; ça n'arrive qu'à moi :(
Dans ma combobox je sélectionne un employé pour afficher sont salaire, compte bancaire...
mais avec deux employés avec le même nom et prénom c'est un peu louche pour le SELECT non? j'ai effectué plusieurs manipulations, voilà mon dernier essai du code de la combobox
NB: ma combobox n'affiche que les noms des employés et le résultat dans des textBox
Et les gentils employés enregistrer dans la *.mdb en double, y a qu'un seul qui s'affiche en boucle ?
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CBListeOperation.SelectedIndexChanged
db_Myreq = "SELECT * from Employes WHERE Employes.NomN='" & Me.CBListeOperation.SelectedItem & "' "
db_Connecting_in_engagement()
Do While db_rdrr.Read
'Me.txtIDemploy.Text = db_.rdrr(0).ToString
IDemploy.Text = db_rdrr(0)
Me.Ref_A.Text = db_rdrr(1).ToString()
Me.Ref_B.Text = db_rdrr(2).ToString()
Me.Ref_C.Text = db_rdrr(3).ToString()
Me.Ref_D.Text = db_rdrr(4).ToString
Loop
la réponse donnée c'est autre chose
ici il sagit de tes tables si elle sont mal constituées alors bonjour la pagaille
si tu cherches selon le nom et prenom et que tu as plusieurs nom identiques (il n'y a pas un qui s'appelle Martin) et que tu te trompes
tu vas afficher le salaire de l'autre ...
autodidacte3
Messages postés58Date d'inscriptionmardi 21 juillet 2009StatutMembreDernière intervention25 décembre 2014 5 mars 2014 à 12:24
Bonjour cs_ShayW
J'ai fait des essais avec trois employés qui portent le même nom et prénom enregistrer dans la table1 sous trois champs, nom prénom et le champ ID1 propre à chaque employé bien-sûr,
Dans la deuxième table un champ ID2 égal à l'ID1,....,.... la dataGridView affiche l'ID exacte de chaque employé.
Private listid2 As New List(Of Integer)
Private Connection As New OleDb.OleDbConnection 'declares connection
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Connexion() ShowListAmi()
End Sub
Private Sub Connexion()
Dim Dbpath As String = "C:\ComptabiliteSolution\Comptabilite\PaieEmployes.mdb" Connection.ConnectionString = Dbpath Try Connection.Open() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
Private Sub ShowListAmi() ' ici je cherche ID1 "IDemploye" Dim exec As OleDbCommand Dim lire As OleDbDataReader Dim req As String req = "SELECT Employes.NomN, Employes.IDemploye, Grille.IDemployeSurGrille FROM (Employes INNER JOIN Grille ON Grille.IDemployeSurGrille = Employes.IDemploye)" Try exec = New OleDbCommand(req, Connection) lire = exec.ExecuteReader listid2.Clear() Do While lire.Read() 'Ici j'affiche 2 colons/combob à voir si ça marche 'CBListeOperation.Items.Add(lire("NomN")) '& " " & lire.GetValue(1)) CBListeOperation.Items.Add(lire("NomN")) ComboBox2.Items.Add(lire("IDemploye"))
Catch ex As Exception MessageBox.Show(ex.ToString(), "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try
End Sub
'la sub qui montre les détails selon l'ID2 "IDemployeSurGrille"
Private Function ShowListAmi2ID2(ByVal ID As Integer) As OleDbDataReader Dim sql As String = String.Empty Dim command As New OleDbCommand(sql, Connection) Dim recordset
recordset = Nothing
command.CommandText = " SELECT Grille.IDemployeSurGrille FROM Grille WHERE Grille.IDemployeSurGrille = [?]" command.Parameters.Add("", OleDbType.Integer).Value = ID Try recordset = command.ExecuteReader Catch ex As Exception MessageBox.Show(ex.Message) End Try Return recordset End Function
' aussi au lieu de servir de plusieurs textbox tu as le datagridview ' dans ton cas où tu choisis un item de combo1 Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CBListeOperation.SelectedIndexChanged
Dim recordset As OleDbDataReader Dim id As Integer id = CBListeOperation.SelectedIndex recordset = ShowListAmi2ID2(listid2(id)) 'tu n'as plus qu'à lire le recordset dans tes texxbox 'je me servirai dans datagridview pour afficher 'on peut afficher tout le recordset dans un datagridview ' places un datagrideview sur ta form
'* Sur une unique cellule du dtagridview ça m'affiche BIEN l'ID2 "IDemployeSurGrille" _ '* de l'un des employe EN DOUBLE choisi dans la ComboBox1 _ '** sur ce ID2 que je compte affiche les détaille de ce dernier :) DataGridView1.Columns.Clear() DataGridView1.Rows.Clear() Dim bds As New BindingSource bds.DataSource = recordset DataGridView1.DataSource = bds
'ta solution marche aussi dans ce cas si j'ai le ID correspondant de chaque employe.
End Sub
?Maintenant j'y travail pour afficher l'ID dans un Textbox pour afficher les détailles correspondantes. et je laisse la Datagridview pour afficher la totalité des employés.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 28 févr. 2014 à 06:12
Bonjour,
Ce qui appelle le plus mon attention est ceci :
"Et les gentils employés enregistrer dans la *.mdb en double, y a qu'un seul qui s'affiche en boucle ?"
qui donne à penser que le nom/employé a été défini comme idart dans la table.
4 mars 2014 à 23:20
Vraiment chui bouché :) , je suis un peu perdu, tu m'as déjà donné une très bonne réponse au :
http://codes-sources.commentcamarche.net/forum/affich-10003211-vb-net-remplir-des-textbox-via-combobox
Bonne nuit et merci encore.
Modifié par cs_ShayW le 4/03/2014 à 23:38
ici il sagit de tes tables si elle sont mal constituées alors bonjour la pagaille
si tu cherches selon le nom et prenom et que tu as plusieurs nom identiques (il n'y a pas un qui s'appelle Martin) et que tu te trompes
tu vas afficher le salaire de l'autre ...
5 mars 2014 à 12:24
J'ai fait des essais avec trois employés qui portent le même nom et prénom enregistrer dans la table1 sous trois champs, nom prénom et le champ ID1 propre à chaque employé bien-sûr,
Dans la deuxième table un champ ID2 égal à l'ID1,....,.... la dataGridView affiche l'ID exacte de chaque employé.
?Maintenant j'y travail pour afficher l'ID dans un Textbox pour afficher les détailles correspondantes. et je laisse la Datagridview pour afficher la totalité des employés.
Merci cs_ShayW et bonne journée.