Code vba access
joel.teko13
Messages postés
4
Statut
Membre
-
joel.teko13 Messages postés 4 Statut Membre -
joel.teko13 Messages postés 4 Statut Membre -
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
- Scanner qr code pc - Guide
2 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 586
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...............