Erreur d'exécution '3015'

GBadry Messages postés 77 Date d'inscription jeudi 26 avril 2007 Statut Membre Dernière intervention 27 février 2014 - 16 mai 2008 à 17:08
GBadry Messages postés 77 Date d'inscription jeudi 26 avril 2007 Statut Membre Dernière intervention 27 février 2014 - 19 mai 2008 à 10:14
Salut les amis,
j'ai créé une application qui lit des données à partir d'un fichier, les stoke dans une base de données acces, puis elle traite ces données pour faire d'autres post-traitements.
tout fonctionne bien. on a même la possibilité d'enregistrer des projets à l'aide de cette base de données.
A un moment donné, chez le client, le lancement de l'application s'est bloqué en sortant le message d'erreur suivant:

Erreur d'exécution '3015':
'C:\...(chemin de la base)\Base.mdb' isn't an index in this table. Look in the Indexes collection of the TableDef object to determine the valid index names.

je ne sais pas mais je me suis dit que c'est peut être lié à un problème de mémoire si le fichier contient un nombre important d'informations à stocker dans la base. déjà j'ai eu ce problème de mémoire de access et je l'ai résolu partiellement. mais est ce que quelqu'un pourrait m'eclaircir les idées à propos de cette erreur. c'est un peu urgent!

merci pour votre aide les amis.

Losers are not those who try and fail, but those who even fail to try

6 réponses

cs_akim77 Messages postés 73 Date d'inscription lundi 12 avril 2004 Statut Membre Dernière intervention 17 septembre 2008 4
16 mai 2008 à 18:21
Il faut mettre des traces dans ton code.
Par exemple des  Call MsgBox("x") aux endroits strategiques ( en faisant varier x )
Ca te permettra de savoir où ton exe se termine.

A+

Akim
0
cs_akim77 Messages postés 73 Date d'inscription lundi 12 avril 2004 Statut Membre Dernière intervention 17 septembre 2008 4
16 mai 2008 à 18:25
Erratum:

Oublies le message précedent, il ne t'était pas destiné.

A+
Akim
0
cs_akim77 Messages postés 73 Date d'inscription lundi 12 avril 2004 Statut Membre Dernière intervention 17 septembre 2008 4
16 mai 2008 à 20:08
C'est encore moi !


L'erreur 3015 fait partie des erreurs de type base de donnée corrompue,

qui survient par exemple sur un arret brutal  du PC .

Si Base.mdb est "réparable"  avec Access, tu peux tenter de le faire dans ton code
Pour VB6 et Access97:


If  une erreur 3015 apparait then DBEngine.RepairDatabase ("C:\...(chemin de la base)\Base.mdb")

exemple ici:  http://www.vbfrance.com/codes/COMPACT-REPARE-DATA-BASE_5952.aspx

A+

Akim
0
GBadry Messages postés 77 Date d'inscription jeudi 26 avril 2007 Statut Membre Dernière intervention 27 février 2014 2
19 mai 2008 à 09:14
Bonjour,
Merci akim pour ton aide. juste une question pour mettre en oeuvre cette réparation. en fait l'arrêt brutal du PC peut se faire à n'importe quel moment de l'exécution. alors à quel endroit du code dois je mettre cette réparation?

merci.

Losers are not those who try and fail, but those who even fail to try
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_akim77 Messages postés 73 Date d'inscription lundi 12 avril 2004 Statut Membre Dernière intervention 17 septembre 2008 4
19 mai 2008 à 10:03
Bonjour,

Si ton logiciel et le fichier Base.mdb sont sur un même PC, tu peux mettre la Reparation uniquement au premier accès à la Base.
Dans le cas contraire, il faut que tu gères les erreurs de tous les accès à la Base.

Par exemple basiquement comme çà:
Private Function Acces_a_ma_Base()
On Error GoTo Erreur
......ton code d'accès à la base
Exit Function
Erreur:
   If  Err.Number =  3015 then DBEngine.RepairDatabase ("C:\...(chemin de la base)\Base.mdb")
End Function

A+
Akim
0
GBadry Messages postés 77 Date d'inscription jeudi 26 avril 2007 Statut Membre Dernière intervention 27 février 2014 2
19 mai 2008 à 10:14
Merci akim,
j'ai apprécié beaucoup ton aide.

Losers are not those who try and fail, but those who even fail to try
0
Rejoignez-nous