Salut Forum
Salut tout le monde
SVP j'ai besoin d'aide pour resoudre ce probleme
J'ai Table1 nommee ( TBL_EMPLOYE ) avec 3 champs ( EMPLOYE_Code de type Text , EMPLOYE_Name de type Text , EMPLOYE_Salaire de type Numérique)
J'ai Table2 nommee ( TBL_ATTENDANCE ) avec 6 champs ( ATTENDANCE_Employe_Code de type Text , ATTENDANCE_Days1 de type Numerique , ATTENDANCE_Days2 de type Numerique , ATTENDANCE_Days3 de type Numerique , ATTENDANCE_Days4 de type Numerique , ATTENDANCE_Days5 de type Numerique )
J'ai rempli les trois premieres colonnes du DataGridView1 par la Table ( TBL_EMPLOYE ) on laissant la première ligne vide
J'ai ajouté 5 colonnes a ma DataGridView1 pour remplir les cordonnees de ces employes deja affichés dans la grille par ma Table ( TBL_ATTENDANCE ) .. En fonction d'unique code entre les deux tables ( EMPLOYE_Code ) dans la table ( TBL_EMPLOYE ) et ( ATTENDANCE_Employe_Code ) dans la table ( TBL_ATTENDANCE ) .. mais malheureusement j'ai eu ce message d'erreur ( L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection )
Voici tout mon code dans ma Form 1 :
Merci beaucoup d'avance pour l'aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 Public Class Form1 Dim Conne As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|Datadirectory|\EMPLOYE.Mdb;User Id=Admin;Jet OLEDB:Database Password=") Dim DT As New DataTable Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim DA As New OleDb.OleDbDataAdapter("SELECT EMPLOYE_Code , EMPLOYE_Name , EMPLOYE_Salaire From TBL_EMPLOYE", Conne) DT.Clear() DA.Fill(DT) If DT.Rows.Count > 0 Then Dim New_Rows As System.Data.DataRow = DT.NewRow New_Rows("EMPLOYE_Code") = DBNull.Value New_Rows("EMPLOYE_Name") = DBNull.Value New_Rows("EMPLOYE_Salaire") = DBNull.Value DT.Rows.InsertAt(New_Rows, 0) Else Me.DataGridView1.DataSource = Nothing End If DT.Columns.Add("Days1") DT.Columns.Add("Days2") DT.Columns.Add("Days3") DT.Columns.Add("Days4") DT.Columns.Add("Days5") Dim Cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand("SELECT ATTENDANCE_Days1 , ATTENDANCE_Days2 , ATTENDANCE_Days3 , ATTENDANCE_Days4 , ATTENDANCE_Days5 From TBL_ATTENDANCE Where ATTENDANCE_Employe_Code = @Param_Code", Conne) Cmd.Parameters.AddWithValue("@Param_Code", OleDb.OleDbType.VarWChar).Value = Me.DataGridView1.Rows(1).Cells("EMPLOYE_Code").Value.ToString Dim Adp As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(Cmd) Adp.Fill(DT) If DT.Rows.Count > 0 Then For I As Integer = 0 To DT.Rows.Count - 1 For Each Attendance_Rows As DataRow In DT.Rows Attendance_Rows("Days1") = DT.Rows(I).Item("ATTENDANCE_Days1") Attendance_Rows("Days2") = DT.Rows(I).Item("ATTENDANCE_Days2") Attendance_Rows("Days3") = DT.Rows(I).Item("ATTENDANCE_Days3") Attendance_Rows("Days4") = DT.Rows(I).Item("ATTENDANCE_Days4") Attendance_Rows("Days5") = DT.Rows(I).Item("ATTENDANCE_Days5") Next Next End If Me.DataGridView1.DataSource = DT End Sub End Class
Cordialement
MADA
Partager