Ma base ne s'incremente plus...

Fermé
mombolmax - 21 mai 2012 à 12:55
 Utilisateur anonyme - 21 mai 2012 à 17:13
Bonjour,


j'ai une application vb de 1997 que j'ai modifié pour que ça marche sur MSO2010, tout à l'ai de bien fonctionné mais la base ne s'incremente plus à partir du 212eme enregistrement et je comprends pas pourquoi.
Ci-dessous une partie du code qui genere l'incrementation:

Function numsequence()

Dim mybase As DAO.Database, Total As Long
Dim table_order As DAO.Recordset, table_Ha As DAO.Recordset

Set mybase = Application.CurrentDb()
Set table_Ha = mybase.OpenRecordset("Achats")
Set table_order = mybase.OpenRecordset("ordre")

Total = table_Ha.RecordCount
If Total = 0 Then
numsequence = 1
n_order = 1
Else
table_Ha.MoveLast
numsequence = table_Ha![HA_num_ordre] + 1
n_order = table_Ha![HA_num_ordre] + 1
End If

'table_order.AddNew
'table_order.num_ordre = n_order
'table_order.Update
'table_order.Close

End Function

Merci d'avant pour votre aide...

5 réponses

Utilisateur anonyme
21 mai 2012 à 13:44
Bonjour

Je ne connais rien du tout à DAO, mais c'est normal que les 4 dernières lignes - dont le Update - soient en commentaire ?
0
re-bonjour,
je trouvais pas ça normal du tout, mais je n'ai pas apporté de modif sur cette partie du code. Alors j'ignore si je dois laisser en commentaire ou pas.
0
j'ai enlever les commentaires (guillemets) alors il ya une erreur de compilation...
0
Utilisateur anonyme
21 mai 2012 à 15:02
Si tu effaces quelques lignes de ta table, ça repart disons de 209, et c'est à nouveau à 212 que ça bloque ?
0
oui, ça se bloque au 209eme et ça ne s'incrémente plus
0
et pour que la base s'incrémente de nouveau, il faut supprimer tous les enregistrements
0
Utilisateur anonyme
21 mai 2012 à 15:17
Donc la valeur 212 n'a rien à voir là-dedans. Ça n'incrémente plus, un point c'est tout.
Comme j'ai déjà dit, je ne sais pas comment ça se passe avec ADO. Mais je trouve extrêmement curieux que tu lises le champ [HA_num_ordre] de ta table table_Ha, et qu'il n'y ait (hors commentaires) aucune instruction qui ressemble à l'ajout ou à la mise à jour d'un champ derrière. Tu n'as pas la version originale pour vérifier ce qui manque ?
0
oui ça ne s'incremente plus au 212eme. Si j'ai comparé avec la version originale, les seules modif que j'ai apportées sont les DAO, OpenRecordset, et la function numsequence:
version originale: numsequence = table_Ha.Ha_Ha_num_ordre +1
n_order = table_Ha.HA_num_ordre + 1
0
Utilisateur anonyme
21 mai 2012 à 15:19
Je viens de voir ton message de 15h15
Ça s'incrémente à nouveau jusqu'à 212 si tu repars de 1 ?
0
j'ai pas encore essayé après avoir tout effacé, mais pour, moi si ça ne s'incrémente pas au 212eme, c'est que ya un soucis, et je pense bien que ça s'arretera au 212 eme, je vois pas comment ça va changer si je n'ai pas apporté de modif au code.
0

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

Posez votre question
ya un soucis
J'en suis persuadé aussi, s'il n'y avait pas de souci nous ne serions pas ici tous les deux.
Je pense bien que ça s'arretera au 212 eme Un bon moyen d'en être sûr, c'est de reproduire le problème. Si le défaut est bien reproductible, on pourra chercher à quoi correspond ce 212. Sinon on va courir après un faux problème.

Tu fais de OpenRecordSet dans ta fonction, il ne devrait pas y avoir un 'close' correspondant quelque part ?
À quoi sert n_order ? C'est une variable globale ?

Tu devrais aussi rechercher où la fonction numsequence est appelée, car c'est là que la mise à jour / ajout de ta table doit être faite
0