Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème d'enregistrement en mode modif

6 réponses
Avatar
Grég
Base cr=E9e sous Access 2000, transf=E9r=E9e sous Access 2002
Pour chaque formulaire, il y a une triple cl=E9 primaire=20
[NUMC] (3 caract=E8res), [NUME] (2 caract=E8res) et [CODA] (3=20
caract=E8res)
Sur chaque contr=F4le de chaque formulaire, il y a une=20
proc=E9dure =AB Apr=E8sMaj =BB qui rempli une table HISTORIQUE=20
(qui a pour cl=E9 primaire un num=E9ro auto) avec la date et=20
l'heure (auto), la triple cl=E9 primaire du formulaire, la=20
personne qui saisie, le nom du formulaire, le nom du=20
champ, l'ancienne valeur et la nouvelle valeur.
Ci-dessous la proc=E9dure :

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

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

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

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

End Function


Cela fonctionne tr=E8s bien sur tous les formulaires sauf=20
quand [NUMC] est =E9gal =E0 091 et que l'on est en mode=20
modification (en mode ajout de donn=E9es, pas de soucis) :=20
d=E8s que l'on modifie un contr=F4le, on se retrouve bloqu=E9=20
sans message d'erreur avec pour seul solution=20
Ctrl+Alt+Suppr.

Est-ce que quelqu'un a une id=E9e sur la raison du blocage=20
sur une valeur bien pr=E9cise d'une des trois cl=E9s primaire

Merci d'avance
Gr=E9g

6 réponses

Avatar
Pierre CFI [mvp]
bonjour
çà veut dire que 090 ou 092 c'est OK ?? oui bizarre ton truc, j'ai déjà eu des pb sur excel qui me transformait certains noms de
feuilles en hexadécimales !!!!
et il y a du code quand tu passes en mode edit, ou un afterupdate qqonque ??

--
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" a écrit dans le message de news: 9ee501c3eb03$d0e120b0$
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 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
Avatar
Grég
C'est exactement ça, pour 090 et 092 ça marche et en mode
edit il y a la même procédure en AfterUpdate et ça marche
sans problème.
De plus, j'ai remarqué que c'est au niveau du remplissage
de la table HISTORIQUE que ça ne fonctionne pas car quand
j'enlève la procédure en AfterUpdate, les modifs
s'enregistrent (mais evidemment, la Table HISTORIQUE ne se
rempli pas ce qui n'est pas mon but)

Merci pour ta réponse
Si tu as d'autres idées n'hésite surtout pas

Grég

-----Message d'origine-----
bonjour
çà veut dire que 090 ou 092 c'est OK ?? oui bizarre ton
truc, j'ai déjà eu des pb sur excel qui me transformait

certains noms de
feuilles en hexadécimales !!!!
et il y a du code quand tu passes en mode edit, ou un
afterupdate qqonque ??


--
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" a écrit dans
le message de news: 9ee501c3eb03$d0e120b0

$
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 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


.



Avatar
Pierre CFI [mvp]
oui, et en debug tu arrives pas à voir la valeur que prend 091 ?

--
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" a écrit dans le message de news: 9f8601c3eb0d$b57fce20$
C'est exactement ça, pour 090 et 092 ça marche et en mode
edit il y a la même procédure en AfterUpdate et ça marche
sans problème.
De plus, j'ai remarqué que c'est au niveau du remplissage
de la table HISTORIQUE que ça ne fonctionne pas car quand
j'enlève la procédure en AfterUpdate, les modifs
s'enregistrent (mais evidemment, la Table HISTORIQUE ne se
rempli pas ce qui n'est pas mon but)

Merci pour ta réponse
Si tu as d'autres idées n'hésite surtout pas

Grég

-----Message d'origine-----
bonjour
çà veut dire que 090 ou 092 c'est OK ?? oui bizarre ton
truc, j'ai déjà eu des pb sur excel qui me transformait

certains noms de
feuilles en hexadécimales !!!!
et il y a du code quand tu passes en mode edit, ou un
afterupdate qqonque ??


--
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" a écrit dans
le message de news: 9ee501c3eb03$d0e120b0

$
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 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


.



Avatar
Grég
Je ne peux pas avoir accès au debug, dès qu'on modifie un
controle et qu'on veut passer au suivant ça se bloque sans
message d'erreur et on ne peut faire que Ctrl+Alt+Suppr
et "Fin de Tache"

Galère, Galère
Grég

-----Message d'origine-----
oui, et en debug tu arrives pas à voir la valeur que
prend 091 ?


--
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" a écrit dans
le message de news: 9f8601c3eb0d$b57fce20

$
C'est exactement ça, pour 090 et 092 ça marche et en mode
edit il y a la même procédure en AfterUpdate et ça marche
sans problème.
De plus, j'ai remarqué que c'est au niveau du remplissage
de la table HISTORIQUE que ça ne fonctionne pas car quand
j'enlève la procédure en AfterUpdate, les modifs
s'enregistrent (mais evidemment, la Table HISTORIQUE ne se
rempli pas ce qui n'est pas mon but)

Merci pour ta réponse
Si tu as d'autres idées n'hésite surtout pas

Grég

-----Message d'origine-----
bonjour
çà veut dire que 090 ou 092 c'est OK ?? oui bizarre ton
truc, j'ai déjà eu des pb sur excel qui me transformait

certains noms de
feuilles en hexadécimales !!!!
et il y a du code quand tu passes en mode edit, ou un
afterupdate qqonque ??


--
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" a écrit dans
le message de news: 9ee501c3eb03$d0e120b0

$
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 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


.




.




Avatar
Pierre CFI [mvp]
si zippée ta base est pas trop grosse envoie là moi, je suis curieux de voir çà

--
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" a écrit dans le message de news: 961b01c3eb12$290fb5e0$
Je ne peux pas avoir accès au debug, dès qu'on modifie un
controle et qu'on veut passer au suivant ça se bloque sans
message d'erreur et on ne peut faire que Ctrl+Alt+Suppr
et "Fin de Tache"

Galère, Galère
Grég

-----Message d'origine-----
oui, et en debug tu arrives pas à voir la valeur que
prend 091 ?


--
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" a écrit dans
le message de news: 9f8601c3eb0d$b57fce20

$
C'est exactement ça, pour 090 et 092 ça marche et en mode
edit il y a la même procédure en AfterUpdate et ça marche
sans problème.
De plus, j'ai remarqué que c'est au niveau du remplissage
de la table HISTORIQUE que ça ne fonctionne pas car quand
j'enlève la procédure en AfterUpdate, les modifs
s'enregistrent (mais evidemment, la Table HISTORIQUE ne se
rempli pas ce qui n'est pas mon but)

Merci pour ta réponse
Si tu as d'autres idées n'hésite surtout pas

Grég

-----Message d'origine-----
bonjour
çà veut dire que 090 ou 092 c'est OK ?? oui bizarre ton
truc, j'ai déjà eu des pb sur excel qui me transformait

certains noms de
feuilles en hexadécimales !!!!
et il y a du code quand tu passes en mode edit, ou un
afterupdate qqonque ??


--
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" a écrit dans
le message de news: 9ee501c3eb03$d0e120b0

$
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 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


.




.




Avatar
Grég
Hélas, la base est trop lourde et de plus, les données
sont strictement confidentielles...
Une autre info par rapport à ce problème : en fouillant
dans la table HISTORIQUE, je me suis rendu que compte
qu'il y a eu des modifs pour ces numéros 091 jusqu'au 5
janvier 2004...alors pourquoi ça a marché et que ça ne
fonctionne plus alors que je n'ai rien modifié depuis ;
mystère !

Merci
Grég


-----Message d'origine-----
si zippée ta base est pas trop grosse envoie là moi, je
suis curieux de voir çà


--
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" a écrit dans
le message de news: 961b01c3eb12$290fb5e0

$
Je ne peux pas avoir accès au debug, dès qu'on modifie un
controle et qu'on veut passer au suivant ça se bloque sans
message d'erreur et on ne peut faire que Ctrl+Alt+Suppr
et "Fin de Tache"

Galère, Galère
Grég

-----Message d'origine-----
oui, et en debug tu arrives pas à voir la valeur que
prend 091 ?


--
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" a écrit dans
le message de news: 9f8601c3eb0d$b57fce20

$
C'est exactement ça, pour 090 et 092 ça marche et en mode
edit il y a la même procédure en AfterUpdate et ça marche
sans problème.
De plus, j'ai remarqué que c'est au niveau du remplissage
de la table HISTORIQUE que ça ne fonctionne pas car quand
j'enlève la procédure en AfterUpdate, les modifs
s'enregistrent (mais evidemment, la Table HISTORIQUE ne
se


rempli pas ce qui n'est pas mon but)

Merci pour ta réponse
Si tu as d'autres idées n'hésite surtout pas

Grég

-----Message d'origine-----
bonjour
çà veut dire que 090 ou 092 c'est OK ?? oui bizarre ton
truc, j'ai déjà eu des pb sur excel qui me transformait

certains noms de
feuilles en hexadécimales !!!!
et il y a du code quand tu passes en mode edit, ou un
afterupdate qqonque ??


--
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" a écrit
dans



le message de news: 9ee501c3eb03$d0e120b0
$
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 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


.




.




.