Problème d'enregistrement pour une valeur bien spécifique d'un champ

Le
Grég
Base cre sous Access 2000, transfre sous Access 2002
Pour chaque formulaire, il y a une triple cl primaire
[NUMC] (3 caractres), [NUME] (2 caractres) et [CODA] (3
caractres)
Sur chaque contrle de chaque formulaire, il y a une
procdure AprsMaj qui rempli une table HISTORIQUE
(qui a pour cl primaire un numro auto) avec la date et
l'heure (auto), la triple cl primaire du formulaire, la
personne qui saisie, le nom du formulaire, le nom de la
table, le nom du champ, l'ancienne valeur et la nouvelle
valeur.
Ci-dessous la procdure :

Public Function HISTO1(VALEUR As Control)
Dim MaBD As Database
Dim HISTO As Recordset

Set MaBD = DBEngine.Workspaces(0).Databases(0)

' Ouvre un jeu d'enregistrements de type Dynamique.
Set HISTO = MaBD.OpenRecordset("HISTORIQUE", dbOpenDynaset)

With HISTO
.AddNew
!NOUVELLE_VALEUR = VALEUR
!ANCIENNE_VALEUR = VALEUR.OldValue
!NOM_CHAMP_MODIFIE = VALEUR.Name
!NOM_TABLE_MODIFIEE = Screen.ActiveForm.RecordSource
!NOM_FORMULAIRE = Screen.ActiveForm.Name
!NUMC = Screen.ActiveForm.[NUMC]
!NUME = Screen.ActiveForm.[NUME]
!CODA = Screen.ActiveForm.[CODA]
!SAISIE = Screen.ActiveForm.[SAISIE]
.Update
End With

End Function


Cela fonctionne trs bien sur tous les formulaires sauf
quand [NUMC] est gal 091 et que l'on est en mode
modification (en mode ajout de donnes, pas de soucis) :
ds que l'on modifie un contrle, on se retrouve bloqu
sans message d'erreur avec pour seul solution
Ctrl+Alt+Suppr.

Est-ce que quelqu'un a une ide sur la raison du blocage
sur une valeur bien prcise d'une des trois cls primaire

Merci d'avance
Grg
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pierre CFI [mvp]
Le #4781011
bonjour
je serais a ta place j'enverrais ces valeurs vers une copie de ta table en supprimant l'attribut clé primaire pour voir si par
hazard 091 n'aurait pas été transformé en autre chose

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Grég" Base crée sous Access 2000, transférée sous Access 2002
Pour chaque formulaire, il y a une triple clé primaire
[NUMC] (3 caractères), [NUME] (2 caractères) et [CODA] (3
caractères)
Sur chaque contrôle de chaque formulaire, il y a une
procédure « AprèsMaj » qui rempli une table HISTORIQUE
(qui a pour clé primaire un numéro auto) avec la date et
l'heure (auto), la triple clé primaire du formulaire, la
personne qui saisie, le nom du formulaire, le nom de la
table, le nom du champ, l'ancienne valeur et la nouvelle
valeur.
Ci-dessous la procédure :

Public Function HISTO1(VALEUR As Control)
Dim MaBD As Database
Dim HISTO As Recordset

Set MaBD = DBEngine.Workspaces(0).Databases(0)

' Ouvre un jeu d'enregistrements de type Dynamique.
Set HISTO = MaBD.OpenRecordset("HISTORIQUE", dbOpenDynaset)

With HISTO
.AddNew
!NOUVELLE_VALEUR = VALEUR
!ANCIENNE_VALEUR = VALEUR.OldValue
!NOM_CHAMP_MODIFIE = VALEUR.Name
!NOM_TABLE_MODIFIEE = Screen.ActiveForm.RecordSource
!NOM_FORMULAIRE = Screen.ActiveForm.Name
!NUMC = Screen.ActiveForm.[NUMC]
!NUME = Screen.ActiveForm.[NUME]
!CODA = Screen.ActiveForm.[CODA]
!SAISIE = Screen.ActiveForm.[SAISIE]
.Update
End With

End Function


Cela fonctionne très bien sur tous les formulaires sauf
quand [NUMC] est égal à 091 et que l'on est en mode
modification (en mode ajout de données, pas de soucis) :
dès que l'on modifie un contrôle, on se retrouve bloqué
sans message d'erreur avec pour seul solution
Ctrl+Alt+Suppr.

Est-ce que quelqu'un a une idée sur la raison du blocage
sur une valeur bien précise d'une des trois clés primaire

Merci d'avance
Grég
Publicité
Poster une réponse
Anonyme