Bonjour ter tous.

Voila mon petit/gros problème: J'essaye de développer un programme permettant de gérer des notes au sein de mon école.

Pour l'instant je suis au tout début (du programme et de la découverte de VB!).

Je vous explique le business. Les notes sont gérer par des fichier excel (ce qui permet de calculer moyenne, coef, crédit ECTS, etc.)

J'aimerai que le programme que je développe permettent d'indexer les notes des étudiants de manières à pouvoir rééditer un bulletin des années après le départ du dit étudiant sans devoir gérer des quantités de fichier excel.

De plus, les absence joue un rôle dans l’attribution de note et dans le passage des examen. Pour l'instant la gestion des absences est géré à la main par les responsable de cycle. Il serait intéressant d'automatiser cette gestion.

Donc pour revenir à mon problème, pour l'instant je bloque sur mes fichier excel. En effet je profite de ce programme pour centraliser toute les action tournant autour des notes et des absences. Pour continuer à gérer les calcul par excel j'ai besoin de renseigner le chmein de chaque fichiers (20 au total). pour cela j'ai créer autaint de champs et je cherche à les sauvegarder dans une base de donnée SQL CE.

Voila le soucis: J'ai donc créer une table paramètres ou doit ce trouver les différents chemin menant au différent fichiers excel (et leur feuille de fusion word).
Mon idée était de modifier la première ligne à chaque "sauvegarde" et ainsi d'écraser les anciennes donnée. Pour cela je passe par une requête UPDATE. La requête à été modifier dans "MonDataSet.xsd" comme le préconise le tuto que j'ai suivi.

J'ai ensuite entrer le code suivant afin de créer une fonction "Update_BdD":

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Private Sub Update_BdD() 
 
enregistrement = True 
 
RefreshDataSource() 
 
'Récupération de la valeur de la colonne 0 de la première ligne 
'sélectionné dans notre DGV. 
 
' Dim CurrentIndex As Integer = DataGridView.CurrentRow.Index 
 
Dim ID As Guid = CType(DGV.SelectedRows(0).Cells(0).Value, Guid) 
' 
Try 
 
 
' 
'Appel de la procédure Update de notre TableAdapter qui tranmettra 
'la requête SQL UPDATE. 
Dim NbLine As Integer = ParametresTableAdapter.Update( _ 
tb_chemin_excel_tec1.Text, _ 
tb_chemin_word_fusion_tec1.Text, 
tb_chemin_excel_tec2.Text, _ 
tb_chemin_word_fusion_tec2.Text, 
tb_chemin_excel_tec3.Text, _ 
tb_chemin_word_fusion_tec3.Text, 
tb_chemin_excel_tec4.Text, _ 
tb_chemin_word_fusion_tec4.Text, 
tb_chemin_excel_tec5.Text, _ 
tb_chemin_word_fusion_tec5.Text, 
tb_chemin_excel_estice1.Text, _ 
tb_chemin_word_fusion_estice1.Text, _ 
tb_chemin_excel_estice2.Text, _ 
tb_chemin_word_fusion_estice2.Text, _ 
tb_chemin_excel_estice3.Text, _ 
tb_chemin_word_fusion_estice3.Text, _ 
tb_chemin_excel_estice4.Text, _ 
tb_chemin_word_fusion_estice4.Text, _ 
tb_chemin_excel_estice5.Text, _ 
tb_chemin_word_fusion_estice5.Text, _ 
ID) 
REM: Cette procédure retourne un entier indiquant le nombre de lignes modifiés. 
' 
If NbLine > 0 Then 
' 
MessageBox.Show("Le contact a bien été mis" & _ 
" à jour dans la base de données.", _ 
"Mise à jour du contact", _ 
MessageBoxButtons.OK, _ 
MessageBoxIcon.Information) 
'La modification effectuée nous actualisons les données de notre source 
'de données en effectuant une requête 
'SELECT de nouveau. 
Call RefreshDataSource() 
End If 
' 
Catch ex As Exception 
' 
MessageBox.Show("Une erreur est survenue durant l'accès" & _ 
" à la base de données." & Environment.NewLine & _ 
"Détails de l'erreur: " & ex.Message, _ 
"Echec de l'accès aux données.", _ 
MessageBoxButtons.OK, _ 
MessageBoxIcon.Exclamation) 
' 
End Try 
' 
End Sub
J'ai également créer un bouton de "sauvegarde" qui exécute la fonction Update_BdD:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Private Sub btn_parametrage_bulletin_enregistrer_Click(ByVal sender As System.Object, _ 
ByVal e As System.EventArgs) Handles btn_parametrage_bulletin_enregistrer.Click 
 
Update_BdD() 
 
End Sub
Lorsque j'exécute le debug, une erreur apparaît:
L'exécution ArgumentOutOfRangeException n'a pas été gérée.
L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection.
Nom du paramètre: index
Hors le tableau possède déjà deux lignes. Il n'est donc pas vide.

Merci à tous ceux qui prendrons le temps de m'aider

A tantôt!

Ps: j'ai mis en pièce jointe le projet en cour pour ceux qui veulent y jeter un oeil et donner leur avis/conseils/(injures?)