Erreur d'exécution '3015'

Signaler
Messages postés
77
Date d'inscription
jeudi 26 avril 2007
Statut
Membre
Dernière intervention
27 février 2014
-
Messages postés
77
Date d'inscription
jeudi 26 avril 2007
Statut
Membre
Dernière intervention
27 février 2014
-
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

Messages postés
73
Date d'inscription
lundi 12 avril 2004
Statut
Membre
Dernière intervention
17 septembre 2008
4
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
Messages postés
73
Date d'inscription
lundi 12 avril 2004
Statut
Membre
Dernière intervention
17 septembre 2008
4
Erratum:

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

A+
Akim
Messages postés
73
Date d'inscription
lundi 12 avril 2004
Statut
Membre
Dernière intervention
17 septembre 2008
4
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
Messages postés
77
Date d'inscription
jeudi 26 avril 2007
Statut
Membre
Dernière intervention
27 février 2014
2
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
Messages postés
73
Date d'inscription
lundi 12 avril 2004
Statut
Membre
Dernière intervention
17 septembre 2008
4
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
Messages postés
77
Date d'inscription
jeudi 26 avril 2007
Statut
Membre
Dernière intervention
27 février 2014
2
Merci akim,
j'ai apprécié beaucoup ton aide.

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