Code vba access
joel.teko13
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
joel.teko13 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
joel.teko13 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai le code ci-dessus, et chaque fois que j'execute il m'affiche une erreur: Erreur 3034 Vous avez essayé de valider ou d'annuler une transaction sans débuter de transaction au préalable.
Et m'indique l'erreur sur oWS.Rollback.
Quelqu'un m'aider????????
J'ai le code ci-dessus, et chaque fois que j'execute il m'affiche une erreur: Erreur 3034 Vous avez essayé de valider ou d'annuler une transaction sans débuter de transaction au préalable.
Et m'indique l'erreur sur oWS.Rollback.
Quelqu'un m'aider????????
Private Sub BT_Effectif_Click() On Error GoTo Erreur_Traitement 'Variables DAO Dim oWS As DAO.Workspace Dim oDB As DAO.Database Dim Table_Effectif As DAO.Recordset 'Variables parties Excel Dim oApp As Excel.Application Dim oWkb As Excel.Workbook Dim oWSht As Excel.Worksheet Dim oSelect As Excel.Range 'Variable de traitement Dim Fichier_Excel As String Dim Choix_Importation As Integer Dim i As Integer 'Choix du fichier à importer Fichier_Excel = "" If Selection_Fichier(Fichier_Excel) Then Me.Champ_Effectif = Fichier_Excel 'Import EPT-Titulaire ou EPT-Apprenti Choix_Importation = Me!Choix_option.Value 'Ouverture Fichier Excel Set oApp = CreateObject("Excel.Application") Set oWkb = oApp.Workbooks.Open(Fichier_Excel) Set oWSht = oWkb.Sheets(Choix_Importation) Set oSelect = oWSht.Cells(1, 1).currentRegion 'Initialisation des objets DAO Set oWS = DBEngine.Workspaces(0) Set oDB = oWS.Databases(0) 'Ouverture du Recordset Set Table_Effectif = oDB.OpenRecordset("EFFECTIF") 'Début transaction oWS.BeginTrans 'Lecture du Fichier Excel Donnée FI For i = 2 To oSelect.rows.Count '============================================== 'REMPLISSAGE TABLE: Effectif '============================================== Table_Effectif.AddNew 'No Matricule Table_Effectif.Fields("No_Matricule") = oSelect.Cells(i, 1) 'No_Mois-- Table_Effectif.Fields("No_Mois") = oSelect.Cells(i, 2) 'Nom_Prénom Table_Effectif.Fields("Nom_Prenom") = oSelect.Cells(i, 3) 'Site Hospitalier-- Table_Effectif.Fields("Site") = oSelect.Cells(i, 4) 'Département Table_Effectif.Fields("Dpt_Service") = oSelect.Cells(i, 5) 'Service Table_Effectif.Fields("Centre_Charge") = oSelect.Cells(i, 6) 'Poste/Fonction Table_Effectif.Fields("Fonction") = oSelect.Cells(i, 7) 'Classe Table_Effectif.Fields("Classe") = oSelect.Cells(i, 8) 'Echelon Table_Effectif.Fields("Echelon") = oSelect.Cells(i, 9) 'Date début Table_Effectif.Fields("Date_Entree") = oSelect.Cells(i, 10) ' Table_Effectif.Fields("Date_Entree") = CDate("01.01.2017") 'Date fin Table_Effectif.Fields("Date_Sortie") = oSelect.Cells(i, 11) ' Table_Effectif.Fields("Date_Sortie") = CDate("31.12.2099") Table_Effectif.Update Next i 'Confirmation transaction oWS.CommitTrans 'Fermeture du Recordset Table_Effectif.Close 'Fermer le classeur Excel oApp.Quit 'Importation réussie MsgBox "Importation des données 'Effectif' effectuée avec succès" 'Libération mémoire des Objets Set Table_Effectif = Nothing 'Liberation mémoire des Objets Excel Set oSelect = Nothing Set oWSht = Nothing Set oWkb = Nothing Set oApp = Nothing End If Exit Sub Fin: 'oWS.Close 'Libération mémoire des Objets Set Table_Effectif = Nothing 'Liberation mémoire des Objets Excel Set oSelect = Nothing Set oWSht = Nothing Set oWkb = Nothing Set oApp = Nothing Erreur_Traitement: 'Annulation transaction <bold> oWS.Rollback</bold> MsgBox "Erreur de Traitement : Fichier Excel - Ligne No " & i Resume Fin End Sub
A voir également:
- Code vba access
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
tu ne peux faire Rollback que si tu as fait d'abord BeginTrans, et fais ni CommitTrans, ni Rollback entre-temps.
je me demande si il ne manque pas
par ailleurs, je pense qu'il n'est pas nécessaire de faire Rollback, comme tu clotures oWS en quittant la fonction.
tu ne peux faire Rollback que si tu as fait d'abord BeginTrans, et fais ni CommitTrans, ni Rollback entre-temps.
je me demande si il ne manque pas
exit suben ligne 132.
par ailleurs, je pense qu'il n'est pas nécessaire de faire Rollback, comme tu clotures oWS en quittant la fonction.
j'ai essayé de mettre un exit sub, mais...............