HELP ME PLEASE EXCEL VERS ACCESS PAR VB

cyrolman Messages postés 21 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 29 avril 2003 - 23 sept. 2002 à 09:11
cyrolman Messages postés 21 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 29 avril 2003 - 23 sept. 2002 à 15:20
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

cmusy Messages postés 33 Date d'inscription jeudi 18 avril 2002 Statut Membre Dernière intervention 17 mai 2004
23 sept. 2002 à 13:43
Salut,

Jette un coup d'oeil aux fonctions BeginTrans et CommitTrans

cmusy
0
cmusy Messages postés 33 Date d'inscription jeudi 18 avril 2002 Statut Membre Dernière intervention 17 mai 2004
23 sept. 2002 à 13:43
Salut,

Jette un coup d'oeil aux fonctions BeginTrans et CommitTrans

cmusy
0
cyrolman Messages postés 21 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 29 avril 2003
23 sept. 2002 à 15:20
ç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
0
Rejoignez-nous