Access qui plante à l'exécution d'un module code VBA

Fermé
Mielanie Messages postés 2 Date d'inscription mardi 20 septembre 2011 Statut Membre Dernière intervention 7 août 2013 - 4 août 2013 à 15:46
Mielanie Messages postés 2 Date d'inscription mardi 20 septembre 2011 Statut Membre Dernière intervention 7 août 2013 - 7 août 2013 à 17:18
Bonjour,

j'ai Access 2013 sous Windows 7. Lorsque j'exécute le module 1 de ma base de données, Access plante avec un message d'erreur qui dit Access doit fermer... Or, si la feuille Excel dans lequel le code va chercher des données est ouverte, Access ne plante pas, mais par conséquent n'exécute pas le reste du code; ce qui est normal due à la structure de celui-ci. Je crois donc qu'il y a de quoi dans le code qui fait planter (car j'ai réinstaller Access et essayé la base sur d'autres ordi et ça plante aussi). Pouvez-vous m'aider, je n'arrive pas à pointer le problème. Merci!!

Voici le code :

Option Compare Database
Option Explicit
Sub ImportProjets()
Const cstlngDécalage As Long = -1

Dim rsFeuille As Recordset
Dim rsProjet As Recordset
Dim lngNuméroProjet As Long
Dim lngCompte As Long
Dim lngCompteLigne As Long
If FichierDisponible("G:\SID\BD_2013-07-05\F-1-1 Liste des projets_complete.xlsm") = False Then
Beep
MsgBox "La feuille est ouverte par au moins un utilisateur"
Exit Sub
End If

With CurrentDb
Set rsFeuille = .OpenRecordset("Feuil2")
Set rsProjet = .OpenRecordset("T_Liste")
End With

rsProjet.Index = "idProjet"

BeginTrans

With rsFeuille
Do Until .EOF
lngCompteLigne = lngCompteLigne + 1
lngNuméroProjet = rsFeuille(1 + cstlngDécalage)
With rsProjet
.Seek "=", lngNuméroProjet
If .NoMatch = True Then
lngCompte = lngCompte + 1
.AddNew
!idProjet = lngNuméroProjet
Else
.Edit
End If
![NO DE DOSSIER] = rsFeuille(2 + cstlngDécalage)
!CD = rsFeuille(3 + cstlngDécalage)
![TITRE DES PROJETS] = rsFeuille(4 + cstlngDécalage)
![TITRE ABRÉGÉ DES PROJETS] = rsFeuille(5 + cstlngDécalage)
![DATE D'OUVERTURE] = rsFeuille(6 + cstlngDécalage)
!MotCle01 = rsFeuille(7 + cstlngDécalage)
!MotCle02 = rsFeuille(8 + cstlngDécalage)
!TitreCourt = rsFeuille(9 + cstlngDécalage)
!Discipline = rsFeuille(10 + cstlngDécalage)
!VilleRealisation = rsFeuille(11 + cstlngDécalage)
!Mandat = rsFeuille(12 + cstlngDécalage)
.Update
End With
.MoveNext
Loop
End With

If MsgBox(lngCompte & " nouveau(x) projet(s), les ajouter (Non indiqué, mais peut aussi comprendre des modifications dans les noms)?", vbYesNo) = vbYes Then
CommitTrans
Else
Rollback
End If

End Sub

Function FichierDisponible(prmstrFichier) As Boolean
Dim lngFichier As Long
On Error Resume Next
lngFichier = FreeFile
Open prmstrFichier For Binary Lock Read Write As #lngFichier
If Err.Number Then
FichierDisponible = False
Else
FichierDisponible = True
Close #lngFichier
End If
On Error GoTo 0
End Function
A voir également:

1 réponse

Mielanie Messages postés 2 Date d'inscription mardi 20 septembre 2011 Statut Membre Dernière intervention 7 août 2013
7 août 2013 à 17:18
Je me demandais si de sortir le rapport d'erreur qui se trouve dans l'observateur d'événement de Windows 7, événement 1000, Application Error, pouvait aider à résoudre le problème. Je fouille sur Internet, mais ne trouve tout de même pas la solution... Voici donc, si quelqu'un s'y connait :

Nom de l'application défaillante MSACCESS.EXE, version : 15.0.4517.1005, horodatage : 0x51b960eb

Nom du module défaillant : ACECORE.DLL, version : 0.0.0.0, horodatage : 0x51a6f604

Code d'exception : 0xc0000005

Décalage d'erreur : 0x000fdbdf

ID du processus défaillant : 0x136c

Heure de début de l'application défaillante : 0x01ce93800d291767

Chemin d'accès de l'application défaillante : C:\Program Files\Microsoft Office 15\Root\Office15\MSACCESS.EXE

Chemin d'accès du module défaillant: C:\Program Files (x86)\Common Files\Microsoft Shared\Office15\ACECORE.DLL

ID de rapport : 5273386b-ff73-11e2-ba85-14dae9e98850
0