nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 2011
-
4 août 2009 à 22:52
cs_Patrice99
Messages postés1221Date d'inscriptionjeudi 23 août 2001StatutMembreDernière intervention 9 septembre 2018
-
11 août 2009 à 10:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_Patrice99
Messages postés1221Date d'inscriptionjeudi 23 août 2001StatutMembreDernière intervention 9 septembre 2018 11 août 2009 à 10:23
Voir aussi : XLDB : Une base de données Excel via ODBC
www.vbfrance.com/code.aspx?id=29468
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 4 août 2009 à 22:52
Bonjour,
Voici quelques conseils.
1 --> Les modules de classes ne devraient plus être utilisé. Passer par les classes à la place.
2 --> La connexion au fichier Excel devrait être fermer voir disposé car c'est un objet COM derrière.
3 --> Pour la gestion du nom de fichier utiliser les focntions .net du namespace IO à la place de faire des opérations sur les strings.
(et si possible utiliser des opérations VB.NET et non VB6)
4 --> Qu'est que ce code fait ?? (commentaire = 0 et imperformant au possible)
# Try
# row.Item("Colonne" & i) = myReader.Item(i) ''MsgBox(myReader.Item(i))
# Catch ex As Exception
# column = New DataColumn()
# column.DataType = System.Type.GetType("System.String")
# column.ColumnName = "Colonne" & i
# datatable.Columns.Add(column)
# row.Item("Colonne" & i) = myReader.Item(i)
# End Try
La programmation par try catch est tres gourmande
Utiliser à la place
If (datatable.Contains("Colonne" & i) then
affectation
else
'Ajout de la datacolonne
end if
5 --> Utiliser
If (not myReader.Item(i).Equals(DbNull.Value) then
A la place de qui n'est pas objet
If IsDBNull(myReader.Item(i)) = False Then
11 août 2009 à 10:23
www.vbfrance.com/code.aspx?id=29468
4 août 2009 à 22:52
Voici quelques conseils.
1 --> Les modules de classes ne devraient plus être utilisé. Passer par les classes à la place.
2 --> La connexion au fichier Excel devrait être fermer voir disposé car c'est un objet COM derrière.
3 --> Pour la gestion du nom de fichier utiliser les focntions .net du namespace IO à la place de faire des opérations sur les strings.
(et si possible utiliser des opérations VB.NET et non VB6)
4 --> Qu'est que ce code fait ?? (commentaire = 0 et imperformant au possible)
# Try
# row.Item("Colonne" & i) = myReader.Item(i) ''MsgBox(myReader.Item(i))
# Catch ex As Exception
# column = New DataColumn()
# column.DataType = System.Type.GetType("System.String")
# column.ColumnName = "Colonne" & i
# datatable.Columns.Add(column)
# row.Item("Colonne" & i) = myReader.Item(i)
# End Try
La programmation par try catch est tres gourmande
Utiliser à la place
If (datatable.Contains("Colonne" & i) then
affectation
else
'Ajout de la datacolonne
end if
5 --> Utiliser
If (not myReader.Item(i).Equals(DbNull.Value) then
A la place de qui n'est pas objet
If IsDBNull(myReader.Item(i)) = False Then
6 --> Commentaire = 0
7 --> Renommer les élements = 0
8 --> Pourquoi ne pas utiliser le nom du fields.
Voila pour le moment.