Bonjour tout le monde,
J'ai créé une application VB.net qui me permet de transférer des données d'un data set vers une sheet excel.
Le dataset est alimenté par une bd Access.
Quand j'appuie une fois sur le bouton pour envoyer les données vers excel, tout se passe bien.
Si j'appuie à nouveau sur ce bouton, il commence à travailler et il me donne un message d'erreur qui est :
Le code de mon bouton est le suivant :Une exception non gérée du type 'System.NullReferenceException' s'est produite dans WindowsApplication1.exe
Informations supplémentaires : La référence d'objet n'est pas définie à une instance d'un objet.
Il se plance ici :
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 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim appexcel As Excel.Application Dim wbexcel As Excel.Workbook 'Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table Access et la feuille de données Excel", "Attention !") appexcel = CreateObject("Excel.application") wbexcel = appexcel.Workbooks.Open("file.xls") 'wbexcel.ReadOnly = True appexcel.Visible = True 'i correspond à la première cellule où on va mettre les cotes Dim i As Byte i = "10" Dim j As Byte 'j = au nombre d'enregistrement dans le dataset ! For j = 0 To dts.Tables("BA3_S1").Rows.Count - 1 'contrôle du nom de l'étudiant appexcel.Cells(i, " 45") = dtt.Rows(rownum).Item("Nomcomplet") 'TH If appexcel.Cells(i, " 45").value = appexcel.Cells(i, " 2").value Then appexcel.Cells(i, " 4") = dtt.Rows(rownum).Item("cours1") 'Analyse Instrumentale appexcel.Cells(i, " 5") = dtt.Rows(rownum).Item("cours2") 'Else 'MessageBox.Show(erreurnom) ' End If i = i + 1 'on va un enregistrement plus loin (rst.movenext en DAO ou ADO) Else MessageBox.Show("Les informations entre Excel et Access sont différentes", "Attention") Exit Sub End If rownum += 1 Next j MessageBox.Show("Importation terminée et contrôlée", "Information") cnn = Nothing dts = Nothing End SubJe suis obligé de caché le bouton lorsque l'utilisateur utilisera mon bouton afin de l'obliger à redémarrer l'application et ainsi ne pas cliquer une seconde fois sur le bouton pour éviter l'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 For j = 0 To dts.Tables("BA3_S1").Rows.Count - 1
Qu'en pensez-vous ?
Merci d'avance pour votre aide.
beegees
Partager