Probleme code before update lié à une table ODBC SQLSERVER

Le
jerome crevecoeur
Bonjour,

Je suis en train de réaliser une application en Access XP lié à une=
base
de données SQL SERVER 2000.
J'ai une table couleur dans cette base et j'ai un formulaire en continu
pour saisir une grille de couleurs.
J'ai un champ caché qui contient la date de derniere modification de ma=

ligne.

Je le met à jour grâce à çe code:

Private Sub Form_BeforeUpdate(Cancel As Integer)
Me.pfc_datemodification = Now
End Sub


LA première fois que je modifie ma ligne cela fonctionne mais quand je =

veux retourner dessus, j'ai ce message laconique:

"Les données ont été modifiées par un autre utilisateur
Un autre utilisateur a modifiépatati patata
Re-modifiez l'enregistrement"

Bien sur, je suis seul sur la base et si je mets mon code en
commentaire, il n'y a plus d'erreur.


Alors qui le prem's? Jessy, Tisane, Raymond, Pierre (qui doit être du
maine et loire je crois)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
jerome crevecoeur
Le #6226171
bon bah, ça n'inspire pas grand monde tout ça ou par ce beau temps to ut
le monde est en train de faire son jardin?

Bonjour,

Je suis en train de réaliser une application en Access XP lié à u ne base
de données SQL SERVER 2000.
J'ai une table couleur dans cette base et j'ai un formulaire en continu
pour saisir une grille de couleurs.
J'ai un champ caché qui contient la date de derniere modification de ma
ligne.

Je le met à jour grâce à çe code:

Private Sub Form_BeforeUpdate(Cancel As Integer)
Me.pfc_datemodification = Now
End Sub


LA première fois que je modifie ma ligne cela fonctionne mais quand j e
veux retourner dessus, j'ai ce message laconique:

"Les données ont été modifiées par un autre utilisateur
Un autre utilisateur a modifié...patati patata
Re-modifiez l'enregistrement"

Bien sur, je suis seul sur la base et si je mets mon code en
commentaire, il n'y a plus d'erreur.


Alors qui le prem's? Jessy, Tisane, Raymond, Pierre (qui doit être du
maine et loire je crois)






aa
Le #6226161
Bonjour

un docmd.runcommand accmdsaverecord peut etre ?

"jerome crevecoeur" a écrit dans le message de news:
bon bah, ça n'inspire pas grand monde tout ça ou par ce beau temps tout
le monde est en train de faire son jardin?

Bonjour,

Je suis en train de réaliser une application en Access XP lié à une base
de données SQL SERVER 2000.
J'ai une table couleur dans cette base et j'ai un formulaire en continu
pour saisir une grille de couleurs.
J'ai un champ caché qui contient la date de derniere modification de ma
ligne.

Je le met à jour grâce à çe code:

Private Sub Form_BeforeUpdate(Cancel As Integer)
Me.pfc_datemodification = Now
End Sub


LA première fois que je modifie ma ligne cela fonctionne mais quand je
veux retourner dessus, j'ai ce message laconique:

"Les données ont été modifiées par un autre utilisateur
Un autre utilisateur a modifié...patati patata
Re-modifiez l'enregistrement"

Bien sur, je suis seul sur la base et si je mets mon code en commentaire,
il n'y a plus d'erreur.


Alors qui le prem's? Jessy, Tisane, Raymond, Pierre (qui doit être du
maine et loire je crois)






jerome crevecoeur
Le #6226151
Merci pour ta réponse mais je suis dans la procédure before update du
formulaire.
donc on ne peut pas faire une sauvegarde de l'enregistrement courant.

Bonjour

un docmd.runcommand accmdsaverecord peut etre ?

"jerome crevecoeur" a écrit dans le message de news: l...
bon bah, ça n'inspire pas grand monde tout ça ou par ce beau temps tout
le monde est en train de faire son jardin?

Bonjour,

Je suis en train de réaliser une application en Access XP lié à une base
de données SQL SERVER 2000.
J'ai une table couleur dans cette base et j'ai un formulaire en contin u
pour saisir une grille de couleurs.
J'ai un champ caché qui contient la date de derniere modification de ma
ligne.

Je le met à jour grâce à çe code:

Private Sub Form_BeforeUpdate(Cancel As Integer)
Me.pfc_datemodification = Now
End Sub


LA première fois que je modifie ma ligne cela fonctionne mais quand je
veux retourner dessus, j'ai ce message laconique:

"Les données ont été modifiées par un autre utilisateur
Un autre utilisateur a modifié...patati patata
Re-modifiez l'enregistrement"

Bien sur, je suis seul sur la base et si je mets mon code en commentai re,
il n'y a plus d'erreur.


Alors qui le prem's? Jessy, Tisane, Raymond, Pierre (qui doit être d u
maine et loire je crois)










3stone
Le #6226021
Salut,

"jerome crevecoeur"
Merci pour ta réponse mais je suis dans la procédure before update du
formulaire.


Mets cela dans l'après mise à jour !


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
jerome crevecoeur
Le #6225901
merci pour ta réponse, mais on ne peut pas mettre à jour un champ de
l'enregistrement après mise à jour sur le formulaire.

j'ai essayé la mise à jour sur l'evenement before update des champs e t
j'ai les mêmes erreurs concernant les données déjà modifiées.

Je pense qu'il y a un temps de latence, ou problème de synchronisation
entre la mécanique interne de verrous d'access et la base SQL.

Je vais chercher du coté des triggers SQL SERVER dans ce cas.

A part si quelqu'un trouve une autre solution.


Salut,

"jerome crevecoeur"
Merci pour ta réponse mais je suis dans la procédure before update du
formulaire.


Mets cela dans l'après mise à jour !




jerome crevecoeur
Le #6225641
Bon, je flanche !

Même en passant par un trigger, Msaccess se perd dans les verrous.
Mes champs sont de type DateTime et la table est attachée à une
connexion ODBC.

Dans Enterprise Manager aucuns soucis pour mettre à jour mes
enregistrements.

Dans MsAccess c'est la cata dès que je veux mettre mon champ "datemaj" à
jour pour avoir la date de modification de l'enregistrement.

Serais-je le seul à avoir essayer de faire cela?
Quelquechose m'échappe


merci pour ta réponse, mais on ne peut pas mettre à jour un champ d e
l'enregistrement après mise à jour sur le formulaire.

j'ai essayé la mise à jour sur l'evenement before update des champs et
j'ai les mêmes erreurs concernant les données déjà modifiées.

Je pense qu'il y a un temps de latence, ou problème de synchronisatio n
entre la mécanique interne de verrous d'access et la base SQL.

Je vais chercher du coté des triggers SQL SERVER dans ce cas.

A part si quelqu'un trouve une autre solution.


Salut,

"jerome crevecoeur"
Merci pour ta réponse mais je suis dans la procédure before update du
formulaire.


Mets cela dans l'après mise à jour !







3stone
Le #6225311
re,

"jerome crevecoeur"
merci pour ta réponse, mais on ne peut pas mettre à jour un champ de
l'enregistrement après mise à jour sur le formulaire.


Mets le dans l'après mise à jour du formulaire !!!

;-)))


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
jerome crevecoeur
Le #6225151
Merci Mr 3stone mais le problème semble plus complexe.
Ce que tu me dis est valable pour une base MSAccess mais avec SQl
Server, j'ai l'impression qu'il perd les pédales au niveau des verrous.
Et j'ai les messages précités qui apparaissent.

Ensuite modifier un champ aprés mise à jour du formulaire cela ne
fonctionnera jamais puisque c'est le serpent qui se mords la queue.


Cordialement


re,

"jerome crevecoeur"
merci pour ta réponse, mais on ne peut pas mettre à jour un champ d e
l'enregistrement après mise à jour sur le formulaire.


Mets le dans l'après mise à jour du formulaire !!!

;-)))




3stone
Le #6224951
re,

tu dis :

"jerome crevecoeur"
J'ai un champ caché qui contient la date de derniere modification de ma
ligne.

Une zone de texte caché ? Pourquoi caché ?
Il suffit que le champ fasse partie de la source, sans être lié
à une zone de texte.



Private Sub Form_BeforeUpdate(Cancel As Integer)
Me.pfc_datemodification = Now
End Sub

Non, pas faire la mise à jour du textbox !

tu place le code dans l'après mise à jour...
pfc_datemodification = Now

essaies...

PS: Tu ne peux pas "modifier" le contenu d'une zone de texte,
même cachée, lors de l'événement "avant mise à jour"
puisque cela redéclenche... une mise à jour.
Mais une fois le formulaire passé, l'enregistrement peux
être modifié, lui.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
jerome crevecoeur
Le #6224901
Merci 3stone
J'ai failli me braquer et puis , je me suis dit non, je vais relire avec
attention et patiemment ces instructions pour éviter que quelque chose
m'échappe.

Et cela fonctionne.

Pour résumé, j'ai ce code:
-----------------
Private Sub Form_BeforeInsert(Cancel As Integer)
Me.prf_datecreation = Now()
End Sub

Private Sub Form_BeforeUpdate(Cancel As Integer)
Me.prf_datemodification = Now()
End Sub
------------------


je mettais des champs cachés car j'avais eu certains effets de bords su r
les versions antérieures d'access et c'était une (mauvaise) habitude que
j'avais prise.

Par contre je confirme qu'il faut mettre à jour le champ sur le Before
car j'ai essayé sur L'after et il est impossible de sauvegarder
l'enregistrement ensuite.

Merci de ta patience
Cordialement



re,

tu dis :

"jerome crevecoeur"
J'ai un champ caché qui contient la date de derniere modification de ma
ligne.

Une zone de texte caché ? Pourquoi caché ?
Il suffit que le champ fasse partie de la source, sans être l ié
à une zone de texte.



Private Sub Form_BeforeUpdate(Cancel As Integer)
Me.pfc_datemodification = Now
End Sub

Non, pas faire la mise à jour du textbox !

tu place le code dans l'après mise à jour...
pfc_datemodification = Now

essaies...

PS: Tu ne peux pas "modifier" le contenu d'une zone de texte,
même cachée, lors de l'événement "avant mise à jour"
puisque cela redéclenche... une mise à jour.
Mais une fois le formulaire passé, l'enregistrement peux
être modifié, lui.



Publicité
Poster une réponse
Anonyme