OVH Cloud OVH Cloud

Mise à jour d'un champs

3 réponses
Avatar
Michel
Bonjour,

J'ai un formulaire qui lie une requête multitable.

Après une mise à jour sur une zone de liste plusieurs champs sont mis à
jours mais un champs texte vide se montre comme null et ne veut pas se
mettre à jour et produit une erreur:
Visual Basic
dite Erreur d'exécusion '7878':
disant: Les données ont été modifiées.

Le plus drole est que si je prends le curseur jaune au niveau du code et le
repasse à partir de la ligne au dessus la valeur est assigné au champ et
plus de problème!!!

Quelqu'un à une suggestion???

À bientôt
Michel

3 réponses

Avatar
3stone
Salut,

"Michel"
| J'ai un formulaire qui lie une requête multitable.
|
| Après une mise à jour sur une zone de liste plusieurs champs sont mis à
| jours mais un champs texte vide se montre comme null et ne veut pas se
| mettre à jour et produit une erreur:
| Visual Basic
| dite Erreur d'exécusion '7878':
| disant: Les données ont été modifiées.
|
| Le plus drole est que si je prends le curseur jaune au niveau du code et le
| repasse à partir de la ligne au dessus la valeur est assigné au champ et
| plus de problème!!!


Si le "curseur jaune" est la ligne que le debugeur t'indique, c'est que tu as
un problème dans ton code.

On ne fait pas passer cette ligne quelque part: on corrige le code !

Les boulles de christal coutant une petite fortune ces moments ci,
il faudrait nous indiquer ce code qui beuge...

;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Michel
Bonjour 3stone,

Voici les lignes de code en question ou l'erreur se produit...

L'erreur de produit dans le Select Case. Comme s'il ne voulait pas modifier
la donnée???

Si je place un arrêt (point rouge) sur la ligne du "Select" et fait défilé
la procédure ligne à ligne je n'obtiens jamais l'erreur!!!!

Si au message d'erreur (la boîte) je réponds "Fin" les données sont mises à
jour comme il faut???

Je pourrais bien placer une fonction "On error..." mais je ne trouve pas ça
très élégant!!!!

Si tu as une autre idée???
-----------------------------------------------
Private Sub Combo3_AfterUpdate()
Me.Requery
' Me!Md28.Requery
Me!Cp = Me!Combo3.Column(2)
Call TranfCom(Me!Combo3, Me!SessID)
Me.Refresh
Call BasPageComment(Me, Me!TComment)
Debug.Print Me!TComment
If Etat("Tel", Me!Combo3) Then Me!C31.Enabled = 1 Else Me!C31.Enabled =
0
If Etat("Cel", Me!Combo3) Then Me!C32.Enabled = 1 Else Me!C32.Enabled =
0
If Etat("Fax", Me!Combo3) Then Me!C33.Enabled = 1 Else Me!C33.Enabled =
0
If Etat("Courriel", Me!Combo3) Then Me!C34.Enabled = 1 Else
Me!C34.Enabled = 0
Select Case OptTransmit(Me!Combo3)
Case Is = 1
Me!C31.ForeColor = RGB(255, 0, 255)
Me!C31.FontBold = 1
Me![Envoie] = "Tel"
Case Is = 4
Me!C32.ForeColor = RGB(255, 0, 255)
Me!C32.FontBold = 1
Me![Envoie] = "Cell"
Case Is = 2
Me!C33.ForeColor = RGB(255, 0, 255)
Me!C33.FontBold = 1
Me![Envoie] = "Fax"
Case Is = 3
Me!C34.ForeColor = RGB(255, 0, 255)
Me!C34.FontBold = 1
Me![Envoie] = "Email"
Case Else
Me![Envoie] = "Inconnu"
End Select
Me!C19.Enabled = 1
Me!C30.Enabled = 1
If Me![Langue] = "0" Then
Me!C19.ForeColor = RGB(250, 0, 0)
Me!C19.Caption = "Anglais"
lang = 0
Else
Me!C19.ForeColor = RGB(0, 0, 250)
Me!C19.Caption = "Français"
lang = 1
End If
' If IsNull(Me![CPerso]) Then Me![CPerso] = "Voir commentaire(s):"
' If IsNull(Me![Bas de page]) Then Me![Bas de page] = "123" Else Call
BasPageComment(Me, Me![Bas de page])
Me![ResultAnalysis].SetFocus
End Sub
-----------------------------------------------

À bientôt

Michel

"3stone" a écrit dans le message de news:

Salut,

"Michel"
| J'ai un formulaire qui lie une requête multitable.
|
| Après une mise à jour sur une zone de liste plusieurs champs sont mis à
| jours mais un champs texte vide se montre comme null et ne veut pas se
| mettre à jour et produit une erreur:
| Visual Basic
| dite Erreur d'exécusion '7878':
| disant: Les données ont été modifiées.
|
| Le plus drole est que si je prends le curseur jaune au niveau du code et
le
| repasse à partir de la ligne au dessus la valeur est assigné au champ et
| plus de problème!!!


Si le "curseur jaune" est la ligne que le debugeur t'indique, c'est que tu
as
un problème dans ton code.

On ne fait pas passer cette ligne quelque part: on corrige le code !

Les boulles de christal coutant une petite fortune ces moments ci,
il faudrait nous indiquer ce code qui beuge...

;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/



Avatar
3stone
Salut,

"Michel"
| Voici les lignes de code en question ou l'erreur se produit...


oui, mais tu n'indique pas ou tu obtiens l'erreur !


| L'erreur de produit dans le Select Case. Comme s'il ne voulait pas modifier
| la donnée???
|
| Si je place un arrêt (point rouge) sur la ligne du "Select" et fait défilé
| la procédure ligne à ligne je n'obtiens jamais l'erreur!!!!



Si cela fonctionne correctement en mode pas à pas, l'erreur vient
probablement d'un problème de synchro...
Et, étant donné que tu as plusieurs appels de fonctions ou sub...

Essaies ceci :

Juste avant la ligne ou l'erreur se produit, tu ajoute quelques doevents:

DoEvents : DoEvents : DoEvents



| Si au message d'erreur (la boîte) je réponds "Fin" les données sont mises à
| jour comme il faut???
|
| Je pourrais bien placer une fonction "On error..." mais je ne trouve pas ça
| très élégant!!!!

Effectivement, un "On Error resume next" doit être utilisé uniquement
pour un erreur attendue et parfaitement connue par avance, comme dans
le cas ou l'on souhaite supprimer un fichier - mais qui n'existe peut-être
déjà plus. Le "resume next" permet de ne pas tester la présence...


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/