HELP ME PLEASE EXCEL VERS ACCESS PAR VB

Messages postés
21
Date d'inscription
lundi 23 septembre 2002
Statut
Membre
Dernière intervention
29 avril 2003
-
Messages postés
21
Date d'inscription
lundi 23 septembre 2002
Statut
Membre
Dernière intervention
29 avril 2003
-
Salut tous les monde!!!!!!

J'aimerai importer le contenu d'un fichier Excel vers une nouvelle table Access en utilisant VB.
Voilà comment je procède :

Private Sub Importation_liste_salaries_Click()

Importation_liste_salaries.Visible = False
Persplus45.Visible = False
Persmoins45.Visible = False
Salariesnew.Visible = False
Touspatients.Visible = False
Retour.Visible = True
Correspondant.Visible = False
CorrespondantL.Visible = False
Touteslistes.Visible = False

Dim db As Database
Set db = OpenDatabase("C:\Prévention Santé\Documents importants\base.mdb")
Dim Sal As Dynaset
Dim I As Integer
Dim ObjExcel As New Excel.Application
Dim Objworbook As Workbook

Nomtable = "salaries" & InputBox("donner l'identifiant de l'entreprise")

'Creation d'une table d'importation’
SQL = "create table " & Nomtable & "(Titre string, Nom string, Prenom string,Datenais date, Adresse1 string,Adresse2 string, CP integer, Ville string, Site string)"
db.Execute (SQL)

Set Sal = db.OpenRecordset(Nomtable)

With ObjExcel
Set ObjWorkbook = .Workbooks.Open("C:\Prévention Santé\Listes salaries fournies par entreprise" & Nomtable & ".xls")
Set ObjSheet = ObjWorkbook.Worksheets(1)
I = 2
Do While Not .Cells(I, 2) = ""
Sal.AddNew
If .Cells(I, 1) <> "" Then
Sal.Fields("TITRE") = .Cells(I, 1)
Else
Sal.Fields("TITRE") = ""
End If
Sal.Fields("NOM") = .Cells(I, 2)
Sal.Fields("PRENOM") = .Cells(I, 3)
Sal.Fields("DATENAIS") = .Cells(I, 4)
Sal.Fields("ADRESSE1") = .Cells(I, 5)
If .Cells(I, 6) <> "" Then
Sal.Fields("ADRESSE2") = .Cells(I, 6)
Else
Sal.Fields("ADRESSE2") = ""
End If
If .Cells(I, 7) <> "" Then
Sal.Fields("CP") = .Cells(I, 7)
Else
Sal.Fields("CP") = 0
End If
If .Cells(I, 8) <> "" Then
Sal.Fields("VILLE") = .Cells(I, 8)
Else
Sal.Fields("VILLE") = ""
End If
If .Cells(I, 9) <> "" Then
Sal.Fields("SITE") = .Cells(I, 9)
Else
Sal.Fields("SITE") = ""
End If
Sal.Update
I = I + 1
Loop
End With

'On ferme proprement excel'
ObjExcel.Quit

db.Close

MsgBox ("Opération terminée!!!")

End Sub

Ce code fonctionne, mais lorsque j'arrive au 2481 enregistrement l'application se bloque, et plus possible de faire koi que ce soit....
Je n'y comprends rien, alors si qq'un c d'où ça vient, j'aimerais bien le savoir, ça m'enleverai une grosse epine du pied!!!!!!!

Merci d'avance

cyrolman

3 réponses

Messages postés
33
Date d'inscription
jeudi 18 avril 2002
Statut
Membre
Dernière intervention
17 mai 2004

Salut,

Jette un coup d'oeil aux fonctions BeginTrans et CommitTrans

cmusy
Messages postés
33
Date d'inscription
jeudi 18 avril 2002
Statut
Membre
Dernière intervention
17 mai 2004

Salut,

Jette un coup d'oeil aux fonctions BeginTrans et CommitTrans

cmusy
Messages postés
21
Date d'inscription
lundi 23 septembre 2002
Statut
Membre
Dernière intervention
29 avril 2003

ça marche po....
g gagné 4 enregistrements, maintenat l'appli se bloque à 2485 enregistrements....

T'aurais pas une autre idée, par hasard?
Faut il que j'utilise une autre méthode pour importer mes données excel ds un base données (qui n'est pas faite sous access, mais sous VB....donc g pas access)?

Merci bcp en tt cas de ton aide

cyrolman