Bonjour à tous,
Bon voila je suis sur un petit agenda en vb , un prof m'avait donné un chemin à suivre mais j'ai préférer m'en écarter car tout le monde le faisait comme ca je voulais me départager un peu devant le jury^^.
Donc voila mon problème j'ai un datagridview dans lequel j'ai 3 colonnes la première comportant une liste déroulante contenant les tranches horaires (alimenté par une base de données avec le libellé de la tranche en displayed et le codetranche en value), une colonne sujet et une dernière détail.
Bon j'arrive à renseigner la liste déroulante nickel mais j'ai un gros problème quand je tente de faire une insertion dans la base de données acces à l'aide du bouton valider

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
Private Sub valider_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles valider.Click 'lorsque l'on clique sur le button1 (temporaire)
        Dim chaineconnexion As String
        chaineconnexion = "provider = microsoft.jet.oledb.4.0 ; data source = " &
                                             Application.StartupPath & "\Baseagen.mdb;" 'connexion à la base de donnée
 
        Dim maconnexion As New OleDbConnection(chaineconnexion)
        maconnexion.Open()
 
        Dim i As Integer
        Dim datum As Date
 
        datum = (Day(Calendrier.SelectionStart) & "/" & Month(Calendrier.SelectionStart) & "/" & Year(Calendrier.SelectionStart))
        i = 0
        For Each row As DataGridViewRow In DataGridView1.Rows
            Dim req As String
 
            While i <= DataGridView1.DisplayedRowCount(True)
 
                req = "insert into Agenda (Codetranche,Daterdv,Sujet,detail)  values (" & DataGridView1.Item(1, i).Value & ",'" & datum & "','" & DataGridView1.Item(2, i).Value & "','" & DataGridView1.Item(3, i).Value & "');"
 
                Dim query As New OleDbCommand(req, maconnexion)
 
 
                query.ExecuteNonQuery() 'Exécute la requête
                i = i + 1
            End While
        Next
        MsgBox("insertion") 'Message de confirmation
    End Sub
mais j'obtiens cette erreur:
L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection.
alors mes problèmes sont d'un l'erreur si dessus mais aussi que dois-je mettre pour prendre la valeur de la liste déroulante? dois-je la signaler comme une colonne lambda avec DataGridView1.Item(numcolonne, numligne).Value ou y'a til autre chose à mettre étant donnée que c'est une combobox ratachée à une colone de la datagridview


Voici un screen pour vous faire une idée.^^
Voila merci d'avance parce que la je sèche, bien que j'ai cherché sur le net et que souvent ils disent de rajouter des tonnes de lignes de codes que je comprends absolument et faisant appel à des connaissances en objet que je n'ai pas.