Petit problème sur un algo copiant des données Excel dans une table Access

cs_Famas54 Messages postés 59 Date d'inscription mardi 12 septembre 2006 Statut Membre Dernière intervention 21 août 2009 - 22 juil. 2009 à 11:45
cs_Famas54 Messages postés 59 Date d'inscription mardi 12 septembre 2006 Statut Membre Dernière intervention 21 août 2009 - 23 juil. 2009 à 09:24
Bonjour,

Je lutte depuis 3 h pour comprendre un problème que je ne suis pas parvenu à expliquer sur un algo qui fonctionne pourtant en majeur partie.

En fait je déverse les données d'un fichier Excel dans deux tables différentes et reliées entre elles: Compte et Account_resp

L'algo crée un objet Excel.application nommé ClasseurXLS qui récupère des propriétés nomfic pour le nom du fichier et pathfic pour son positionnement sur le disque.

Ensuite il supprime le contenu des tables puis successivement via une boucle, va récupérer les données dans Excel en fonction du numéro de colonne pour ensuite les insérer dans les tables.

Le problème est que cela fonctionne parfaitement avec les données d'Account_resp, mais pour la table compte il effectue bien le code et sort bien de la boucle vu qu'il affiche le message final mais en fait il n'ajoute rien et c'est là que je comprends pas pourquoi alors que la procédure est la même.

Voilà mon code:

Private Sub Commande9_Click()
'déclaration des variables

Dim PathFic As String
Dim NomFic As String


Dim j As Integer
Dim i As Integer

Dim jcode_account_resp As String
Dim jnom_account_resp As String
Dim jlib_service_resp As String

Dim icode_compte As String
Dim ilibel_compte As String
Dim icode_account_resp As String
Dim icode_details_frais As String

Set db = CurrentDb
Set ClasseurXLS = CreateObject("Excel.application")



If (Modifiable0.Value <> "") Then
NomFic = Modifiable0
NomFic = NomFic & ".xls"
Else
réponse = MsgBox("Nom du fichier à importer manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If

'Initialisation Emplacement du fichier à importer
PathFic = Modifiable6


'Ouverture du classeur d'importation
ClasseurXLS.Workbooks.Open PathFic & NomFic

'Suppression des données d'origine de la table
suppression2 = "delete * FROM compte"
db.Execute suppression2

'Suppression des données d'origine de la table
suppression1 = "delete * FROM account_resp"
db.Execute suppression1



j = 3
Do While ClasseurXLS.cells(j, 1) <> ""

'Recuperation des données lignes par lignes

jcode_account_resp = ClasseurXLS.cells(j, 10)
jnom_account_resp = ClasseurXLS.cells(j, 9)
jlib_service_resp = ClasseurXLS.cells(j, 11)


'Insertion des données dans la table
sql2 = "INSERT INTO account_resp (code_account_resp, nom_account_resp, lib_service_resp) values  ('" & jcode_account_resp & "','" & jnom_account_resp & "', '" & jlib_service_resp & "');"
db.Execute sql2
j = j + 1

Loop
MsgBox ("Importation des données responsables comptes effectuée")


i = 3
Do While ClasseurXLS.cells(i, 1) <> ""


'Recuperation des données lignes par lignes

icode_compte = ClasseurXLS.cells(i, 7)
ilibel_compte = ClasseurXLS.cells(i, 8)
icode_account_resp = ClasseurXLS.cells(i, 10)
icode_details_frais = ClasseurXLS.cells(i, 6)

'Insertion des données dans la table
testquery1 = "INSERT INTO compte (code_compte, libel_compte, code_account_resp, code_detail_frais) values  ('" & icode_compte & "','" & ilibel_compte & "', '" & icode_account_resp & "', '" & icode_details_frais & "');"
db.Execute testquery1
i = i + 1

Loop
MsgBox ("Importation des données comptes effectuée")

ClasseurXLS.Workbooks.Close


End Sub




Si vous tombez sur une erreur qui aurait pu m'échapper je suis preneur,

Merci

1 réponse

cs_Famas54 Messages postés 59 Date d'inscription mardi 12 septembre 2006 Statut Membre Dernière intervention 21 août 2009 2
23 juil. 2009 à 09:24
Sujet a fermer, en fait ce code fonctionne parfaitement (il pourrait être utile pour ceux qui voudraient suivre la même démarche d'importation de données Excel vers Access), le problème était que le fichier Excel que l'ont m'a fourni pour importer les données avait une colonne mal renseignée. Il faut veiller à ce que le fichier ne comporte aucune cellule vide dans les colonnes que vous souhaitez utiliser pour l'importation et éviter certains caractères comme "'".
0
Rejoignez-nous