Bonjour,
J'ai un problème d'autant plus bizarre qu'il se produit de manière
apparemment aléatoire.
Merci d'avance à qui pourra m'éclairer
Cordialement
Jean-Baptiste Lecuit
Description du problème :
J'ai deux formulaires (Form1, Form2) basés sur une requête (MaRequête),
elle-même basée sur une table (MaTable)
Pour ajouter un enregistrement à ces deux formulaires, j'ai recours à un
troisième formulaire (FormAjout), basé sur MaTable
Id est le nom de la clef primaire de MaRequête et de MaTable
Avant de fermer ce formulaire, je fais :
DoCmd.RunCommand acCmdSaveRecord
Form1.Requery
Form2.Requery
Form1.Recordset.FindFirst "[Id] =" & FormAjout![Id]
Form3.Recordset.FindFirst "[Id] =" & FormAjout![Id]
A une fréquence imprévisible (de l'ordre de une fois sur 10), le premier
"FindFirst" renvoie un "NoMatch". Il s'avère alors que la commande
DoCmd.RunCommand acCmdSaveRecord
n'a pas sauvegardé le nouvel enregistrement
J'ai ajouté un test qui réexécute le code ci-dessus, en cas de "NoMatch"
La fréquence d'échec diminue, mais il arrive encore parfois que l'ajout
d'enregistrement échoue
J'ai essayé en fondant "Form3" sur "MaRequête", mais c'est plutôt pire
Bonjour,
J'ai un problème d'autant plus bizarre qu'il se produit de manière
apparemment aléatoire.
Merci d'avance à qui pourra m'éclairer
Cordialement
Jean-Baptiste Lecuit
Description du problème :
J'ai deux formulaires (Form1, Form2) basés sur une requête (MaRequête),
elle-même basée sur une table (MaTable)
Pour ajouter un enregistrement à ces deux formulaires, j'ai recours à un
troisième formulaire (FormAjout), basé sur MaTable
Id est le nom de la clef primaire de MaRequête et de MaTable
Avant de fermer ce formulaire, je fais :
DoCmd.RunCommand acCmdSaveRecord
Form1.Requery
Form2.Requery
Form1.Recordset.FindFirst "[Id] =" & FormAjout![Id]
Form3.Recordset.FindFirst "[Id] =" & FormAjout![Id]
A une fréquence imprévisible (de l'ordre de une fois sur 10), le premier
"FindFirst" renvoie un "NoMatch". Il s'avère alors que la commande
DoCmd.RunCommand acCmdSaveRecord
n'a pas sauvegardé le nouvel enregistrement
J'ai ajouté un test qui réexécute le code ci-dessus, en cas de "NoMatch"
La fréquence d'échec diminue, mais il arrive encore parfois que l'ajout
d'enregistrement échoue
J'ai essayé en fondant "Form3" sur "MaRequête", mais c'est plutôt pire
Bonjour,
J'ai un problème d'autant plus bizarre qu'il se produit de manière
apparemment aléatoire.
Merci d'avance à qui pourra m'éclairer
Cordialement
Jean-Baptiste Lecuit
Description du problème :
J'ai deux formulaires (Form1, Form2) basés sur une requête (MaRequête),
elle-même basée sur une table (MaTable)
Pour ajouter un enregistrement à ces deux formulaires, j'ai recours à un
troisième formulaire (FormAjout), basé sur MaTable
Id est le nom de la clef primaire de MaRequête et de MaTable
Avant de fermer ce formulaire, je fais :
DoCmd.RunCommand acCmdSaveRecord
Form1.Requery
Form2.Requery
Form1.Recordset.FindFirst "[Id] =" & FormAjout![Id]
Form3.Recordset.FindFirst "[Id] =" & FormAjout![Id]
A une fréquence imprévisible (de l'ordre de une fois sur 10), le premier
"FindFirst" renvoie un "NoMatch". Il s'avère alors que la commande
DoCmd.RunCommand acCmdSaveRecord
n'a pas sauvegardé le nouvel enregistrement
J'ai ajouté un test qui réexécute le code ci-dessus, en cas de "NoMatch"
La fréquence d'échec diminue, mais il arrive encore parfois que l'ajout
d'enregistrement échoue
J'ai essayé en fondant "Form3" sur "MaRequête", mais c'est plutôt pire
Correction
Au lieu de
Form3.Recordset.FindFirst "[Id] =" & FormAjout![Id]
lire :
Form2.Recordset.FindFirst "[Id] =" & FormAjout![Id]Bonjour,
J'ai un problème d'autant plus bizarre qu'il se produit de manière
apparemment aléatoire.
Merci d'avance à qui pourra m'éclairer
Cordialement
Jean-Baptiste Lecuit
Description du problème :
J'ai deux formulaires (Form1, Form2) basés sur une requête (MaRequête),
elle-même basée sur une table (MaTable)
Pour ajouter un enregistrement à ces deux formulaires, j'ai recours à un
troisième formulaire (FormAjout), basé sur MaTable
Id est le nom de la clef primaire de MaRequête et de MaTable
Avant de fermer ce formulaire, je fais :
DoCmd.RunCommand acCmdSaveRecord
Form1.Requery
Form2.Requery
Form1.Recordset.FindFirst "[Id] =" & FormAjout![Id]
Form3.Recordset.FindFirst "[Id] =" & FormAjout![Id]
A une fréquence imprévisible (de l'ordre de une fois sur 10), le premier
"FindFirst" renvoie un "NoMatch". Il s'avère alors que la commande
DoCmd.RunCommand acCmdSaveRecord
n'a pas sauvegardé le nouvel enregistrement
J'ai ajouté un test qui réexécute le code ci-dessus, en cas de "NoMatch"
La fréquence d'échec diminue, mais il arrive encore parfois que l'ajout
d'enregistrement échoue
J'ai essayé en fondant "Form3" sur "MaRequête", mais c'est plutôt pire
Correction
Au lieu de
Form3.Recordset.FindFirst "[Id] =" & FormAjout![Id]
lire :
Form2.Recordset.FindFirst "[Id] =" & FormAjout![Id]
Bonjour,
J'ai un problème d'autant plus bizarre qu'il se produit de manière
apparemment aléatoire.
Merci d'avance à qui pourra m'éclairer
Cordialement
Jean-Baptiste Lecuit
Description du problème :
J'ai deux formulaires (Form1, Form2) basés sur une requête (MaRequête),
elle-même basée sur une table (MaTable)
Pour ajouter un enregistrement à ces deux formulaires, j'ai recours à un
troisième formulaire (FormAjout), basé sur MaTable
Id est le nom de la clef primaire de MaRequête et de MaTable
Avant de fermer ce formulaire, je fais :
DoCmd.RunCommand acCmdSaveRecord
Form1.Requery
Form2.Requery
Form1.Recordset.FindFirst "[Id] =" & FormAjout![Id]
Form3.Recordset.FindFirst "[Id] =" & FormAjout![Id]
A une fréquence imprévisible (de l'ordre de une fois sur 10), le premier
"FindFirst" renvoie un "NoMatch". Il s'avère alors que la commande
DoCmd.RunCommand acCmdSaveRecord
n'a pas sauvegardé le nouvel enregistrement
J'ai ajouté un test qui réexécute le code ci-dessus, en cas de "NoMatch"
La fréquence d'échec diminue, mais il arrive encore parfois que l'ajout
d'enregistrement échoue
J'ai essayé en fondant "Form3" sur "MaRequête", mais c'est plutôt pire
Correction
Au lieu de
Form3.Recordset.FindFirst "[Id] =" & FormAjout![Id]
lire :
Form2.Recordset.FindFirst "[Id] =" & FormAjout![Id]Bonjour,
J'ai un problème d'autant plus bizarre qu'il se produit de manière
apparemment aléatoire.
Merci d'avance à qui pourra m'éclairer
Cordialement
Jean-Baptiste Lecuit
Description du problème :
J'ai deux formulaires (Form1, Form2) basés sur une requête (MaRequête),
elle-même basée sur une table (MaTable)
Pour ajouter un enregistrement à ces deux formulaires, j'ai recours à un
troisième formulaire (FormAjout), basé sur MaTable
Id est le nom de la clef primaire de MaRequête et de MaTable
Avant de fermer ce formulaire, je fais :
DoCmd.RunCommand acCmdSaveRecord
Form1.Requery
Form2.Requery
Form1.Recordset.FindFirst "[Id] =" & FormAjout![Id]
Form3.Recordset.FindFirst "[Id] =" & FormAjout![Id]
A une fréquence imprévisible (de l'ordre de une fois sur 10), le premier
"FindFirst" renvoie un "NoMatch". Il s'avère alors que la commande
DoCmd.RunCommand acCmdSaveRecord
n'a pas sauvegardé le nouvel enregistrement
J'ai ajouté un test qui réexécute le code ci-dessus, en cas de "NoMatch"
La fréquence d'échec diminue, mais il arrive encore parfois que l'ajout
d'enregistrement échoue
J'ai essayé en fondant "Form3" sur "MaRequête", mais c'est plutôt pire
Bonjour.
ta procédure ne peut pas fonctionner car:
Docmd s'applique uniquement à l'objet actif
si tu fais DoCmd.RunCommand acCmdSaveRecord
tu n'enregistre que le formulaire actif ( en général celui sur lequel on se
trouve).
ce qu'il faut, c'est enregistrer tous les formulaires ouverts à l'instant T
quel que soit le nombre
à la place de DoCmd.RunCommand acCmdSaveRecord, je te conseille de placer
cette procédure:
Dim Idx As Integer
For Idx = 0 To Forms.Count - 1
If Forms(Idx).Dirty Then
Forms(Idx).Dirty = False
End If
Next Idx
cette procédure boucle sur tous les formulaires ouverts et teste s'ils sont
en cours de modification et si oui, on charge la propriété Dirty à false
pour forcer l'enregistrement des données.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jean-Baptiste Lecuit" a
écrit dans le message de news:Correction
Au lieu de
Form3.Recordset.FindFirst "[Id] =" & FormAjout![Id]
lire :
Form2.Recordset.FindFirst "[Id] =" & FormAjout![Id]Bonjour,
J'ai un problème d'autant plus bizarre qu'il se produit de manière
apparemment aléatoire.
Merci d'avance à qui pourra m'éclairer
Cordialement
Jean-Baptiste Lecuit
Description du problème :
J'ai deux formulaires (Form1, Form2) basés sur une requête (MaRequête),
elle-même basée sur une table (MaTable)
Pour ajouter un enregistrement à ces deux formulaires, j'ai recours à un
troisième formulaire (FormAjout), basé sur MaTable
Id est le nom de la clef primaire de MaRequête et de MaTable
Avant de fermer ce formulaire, je fais :
DoCmd.RunCommand acCmdSaveRecord
Form1.Requery
Form2.Requery
Form1.Recordset.FindFirst "[Id] =" & FormAjout![Id]
Form3.Recordset.FindFirst "[Id] =" & FormAjout![Id]
A une fréquence imprévisible (de l'ordre de une fois sur 10), le premier
"FindFirst" renvoie un "NoMatch". Il s'avère alors que la commande
DoCmd.RunCommand acCmdSaveRecord
n'a pas sauvegardé le nouvel enregistrement
J'ai ajouté un test qui réexécute le code ci-dessus, en cas de "NoMatch"
La fréquence d'échec diminue, mais il arrive encore parfois que l'ajout
d'enregistrement échoue
J'ai essayé en fondant "Form3" sur "MaRequête", mais c'est plutôt pire
Bonjour.
ta procédure ne peut pas fonctionner car:
Docmd s'applique uniquement à l'objet actif
si tu fais DoCmd.RunCommand acCmdSaveRecord
tu n'enregistre que le formulaire actif ( en général celui sur lequel on se
trouve).
ce qu'il faut, c'est enregistrer tous les formulaires ouverts à l'instant T
quel que soit le nombre
à la place de DoCmd.RunCommand acCmdSaveRecord, je te conseille de placer
cette procédure:
Dim Idx As Integer
For Idx = 0 To Forms.Count - 1
If Forms(Idx).Dirty Then
Forms(Idx).Dirty = False
End If
Next Idx
cette procédure boucle sur tous les formulaires ouverts et teste s'ils sont
en cours de modification et si oui, on charge la propriété Dirty à false
pour forcer l'enregistrement des données.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jean-Baptiste Lecuit" <JeanBaptisteLecuit@discussions.microsoft.com> a
écrit dans le message de news:
3CA8DB89-9CB8-4859-AEF8-581B20BC380A@microsoft.com...
Correction
Au lieu de
Form3.Recordset.FindFirst "[Id] =" & FormAjout![Id]
lire :
Form2.Recordset.FindFirst "[Id] =" & FormAjout![Id]
Bonjour,
J'ai un problème d'autant plus bizarre qu'il se produit de manière
apparemment aléatoire.
Merci d'avance à qui pourra m'éclairer
Cordialement
Jean-Baptiste Lecuit
Description du problème :
J'ai deux formulaires (Form1, Form2) basés sur une requête (MaRequête),
elle-même basée sur une table (MaTable)
Pour ajouter un enregistrement à ces deux formulaires, j'ai recours à un
troisième formulaire (FormAjout), basé sur MaTable
Id est le nom de la clef primaire de MaRequête et de MaTable
Avant de fermer ce formulaire, je fais :
DoCmd.RunCommand acCmdSaveRecord
Form1.Requery
Form2.Requery
Form1.Recordset.FindFirst "[Id] =" & FormAjout![Id]
Form3.Recordset.FindFirst "[Id] =" & FormAjout![Id]
A une fréquence imprévisible (de l'ordre de une fois sur 10), le premier
"FindFirst" renvoie un "NoMatch". Il s'avère alors que la commande
DoCmd.RunCommand acCmdSaveRecord
n'a pas sauvegardé le nouvel enregistrement
J'ai ajouté un test qui réexécute le code ci-dessus, en cas de "NoMatch"
La fréquence d'échec diminue, mais il arrive encore parfois que l'ajout
d'enregistrement échoue
J'ai essayé en fondant "Form3" sur "MaRequête", mais c'est plutôt pire
Bonjour.
ta procédure ne peut pas fonctionner car:
Docmd s'applique uniquement à l'objet actif
si tu fais DoCmd.RunCommand acCmdSaveRecord
tu n'enregistre que le formulaire actif ( en général celui sur lequel on se
trouve).
ce qu'il faut, c'est enregistrer tous les formulaires ouverts à l'instant T
quel que soit le nombre
à la place de DoCmd.RunCommand acCmdSaveRecord, je te conseille de placer
cette procédure:
Dim Idx As Integer
For Idx = 0 To Forms.Count - 1
If Forms(Idx).Dirty Then
Forms(Idx).Dirty = False
End If
Next Idx
cette procédure boucle sur tous les formulaires ouverts et teste s'ils sont
en cours de modification et si oui, on charge la propriété Dirty à false
pour forcer l'enregistrement des données.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jean-Baptiste Lecuit" a
écrit dans le message de news:Correction
Au lieu de
Form3.Recordset.FindFirst "[Id] =" & FormAjout![Id]
lire :
Form2.Recordset.FindFirst "[Id] =" & FormAjout![Id]Bonjour,
J'ai un problème d'autant plus bizarre qu'il se produit de manière
apparemment aléatoire.
Merci d'avance à qui pourra m'éclairer
Cordialement
Jean-Baptiste Lecuit
Description du problème :
J'ai deux formulaires (Form1, Form2) basés sur une requête (MaRequête),
elle-même basée sur une table (MaTable)
Pour ajouter un enregistrement à ces deux formulaires, j'ai recours à un
troisième formulaire (FormAjout), basé sur MaTable
Id est le nom de la clef primaire de MaRequête et de MaTable
Avant de fermer ce formulaire, je fais :
DoCmd.RunCommand acCmdSaveRecord
Form1.Requery
Form2.Requery
Form1.Recordset.FindFirst "[Id] =" & FormAjout![Id]
Form3.Recordset.FindFirst "[Id] =" & FormAjout![Id]
A une fréquence imprévisible (de l'ordre de une fois sur 10), le premier
"FindFirst" renvoie un "NoMatch". Il s'avère alors que la commande
DoCmd.RunCommand acCmdSaveRecord
n'a pas sauvegardé le nouvel enregistrement
J'ai ajouté un test qui réexécute le code ci-dessus, en cas de "NoMatch"
La fréquence d'échec diminue, mais il arrive encore parfois que l'ajout
d'enregistrement échoue
J'ai essayé en fondant "Form3" sur "MaRequête", mais c'est plutôt pire
Merci beaucoup de ta réponse rapide
Malheureusement, si je remplace mes requery par .dirty = false, l'erreur
se
produit à tous les coups.
Ce qui est étrange, c'est que ma procédure marche 9 fois sur 10
Et jusqu'à il y a peu, elle marchait même toujours
Je croyais que le DoCmd.RunCommand acCmdSaveRecord mettait à jour la
requête
sous-jacente, et que donc il suffisait de faire un requery sur tous les
formulaires basés sur cette requête pour qu'ils se mettent à jour
Pour plus de précision, je te joins le code réel :
(les deux formulaires à mettre à jour sont en fait des sous formulaires du
formulaire principal de mon application, et le formulaire d'ajout est un
formulaire indépendant)
Ce code est dans le formulaire d'ajout :
DoCmd.RunCommand acCmdSaveRecord
With Forms!ndl
!sfrNotes.Form.Requery
!sfrVolet.Form.Requery
!sfrNotes.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrNotes.Form.Recordset.NoMatch Then Exit Sub
!sfrVolet.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrVolet.Form.Recordset.NoMatch Then Exit Sub
End With
Avec ce code, j'ai un noMatch une fois sur 10 environ
Si je remplace les .form.requery par .form.dirty = false, j'ai un noMatch
à
tous les coups !
Merci beaucoup de ta réponse rapide
Malheureusement, si je remplace mes requery par .dirty = false, l'erreur
se
produit à tous les coups.
Ce qui est étrange, c'est que ma procédure marche 9 fois sur 10
Et jusqu'à il y a peu, elle marchait même toujours
Je croyais que le DoCmd.RunCommand acCmdSaveRecord mettait à jour la
requête
sous-jacente, et que donc il suffisait de faire un requery sur tous les
formulaires basés sur cette requête pour qu'ils se mettent à jour
Pour plus de précision, je te joins le code réel :
(les deux formulaires à mettre à jour sont en fait des sous formulaires du
formulaire principal de mon application, et le formulaire d'ajout est un
formulaire indépendant)
Ce code est dans le formulaire d'ajout :
DoCmd.RunCommand acCmdSaveRecord
With Forms!ndl
!sfrNotes.Form.Requery
!sfrVolet.Form.Requery
!sfrNotes.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrNotes.Form.Recordset.NoMatch Then Exit Sub
!sfrVolet.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrVolet.Form.Recordset.NoMatch Then Exit Sub
End With
Avec ce code, j'ai un noMatch une fois sur 10 environ
Si je remplace les .form.requery par .form.dirty = false, j'ai un noMatch
à
tous les coups !
Merci beaucoup de ta réponse rapide
Malheureusement, si je remplace mes requery par .dirty = false, l'erreur
se
produit à tous les coups.
Ce qui est étrange, c'est que ma procédure marche 9 fois sur 10
Et jusqu'à il y a peu, elle marchait même toujours
Je croyais que le DoCmd.RunCommand acCmdSaveRecord mettait à jour la
requête
sous-jacente, et que donc il suffisait de faire un requery sur tous les
formulaires basés sur cette requête pour qu'ils se mettent à jour
Pour plus de précision, je te joins le code réel :
(les deux formulaires à mettre à jour sont en fait des sous formulaires du
formulaire principal de mon application, et le formulaire d'ajout est un
formulaire indépendant)
Ce code est dans le formulaire d'ajout :
DoCmd.RunCommand acCmdSaveRecord
With Forms!ndl
!sfrNotes.Form.Requery
!sfrVolet.Form.Requery
!sfrNotes.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrNotes.Form.Recordset.NoMatch Then Exit Sub
!sfrVolet.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrVolet.Form.Recordset.NoMatch Then Exit Sub
End With
Avec ce code, j'ai un noMatch une fois sur 10 environ
Si je remplace les .form.requery par .form.dirty = false, j'ai un noMatch
à
tous les coups !
sans aller plus loin, les dirty ne remplacent pas les requery, ils servent
seulement à sauvegarder les modifs, ils remplacent seulement le docmd.
ça fait pareil ?
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jean-Baptiste Lecuit" a
écrit dans le message de news:Merci beaucoup de ta réponse rapide
Malheureusement, si je remplace mes requery par .dirty = false, l'erreur
se
produit à tous les coups.
Ce qui est étrange, c'est que ma procédure marche 9 fois sur 10
Et jusqu'à il y a peu, elle marchait même toujours
Je croyais que le DoCmd.RunCommand acCmdSaveRecord mettait à jour la
requête
sous-jacente, et que donc il suffisait de faire un requery sur tous les
formulaires basés sur cette requête pour qu'ils se mettent à jour
Pour plus de précision, je te joins le code réel :
(les deux formulaires à mettre à jour sont en fait des sous formulaires du
formulaire principal de mon application, et le formulaire d'ajout est un
formulaire indépendant)
Ce code est dans le formulaire d'ajout :
DoCmd.RunCommand acCmdSaveRecord
With Forms!ndl
!sfrNotes.Form.Requery
!sfrVolet.Form.Requery
!sfrNotes.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrNotes.Form.Recordset.NoMatch Then Exit Sub
!sfrVolet.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrVolet.Form.Recordset.NoMatch Then Exit Sub
End With
Avec ce code, j'ai un noMatch une fois sur 10 environ
Si je remplace les .form.requery par .form.dirty = false, j'ai un noMatch
à
tous les coups !
sans aller plus loin, les dirty ne remplacent pas les requery, ils servent
seulement à sauvegarder les modifs, ils remplacent seulement le docmd.
ça fait pareil ?
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jean-Baptiste Lecuit" <JeanBaptisteLecuit@discussions.microsoft.com> a
écrit dans le message de news:
44CE0CAF-3C11-4F58-B8E4-FD75129B5ABF@microsoft.com...
Merci beaucoup de ta réponse rapide
Malheureusement, si je remplace mes requery par .dirty = false, l'erreur
se
produit à tous les coups.
Ce qui est étrange, c'est que ma procédure marche 9 fois sur 10
Et jusqu'à il y a peu, elle marchait même toujours
Je croyais que le DoCmd.RunCommand acCmdSaveRecord mettait à jour la
requête
sous-jacente, et que donc il suffisait de faire un requery sur tous les
formulaires basés sur cette requête pour qu'ils se mettent à jour
Pour plus de précision, je te joins le code réel :
(les deux formulaires à mettre à jour sont en fait des sous formulaires du
formulaire principal de mon application, et le formulaire d'ajout est un
formulaire indépendant)
Ce code est dans le formulaire d'ajout :
DoCmd.RunCommand acCmdSaveRecord
With Forms!ndl
!sfrNotes.Form.Requery
!sfrVolet.Form.Requery
!sfrNotes.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrNotes.Form.Recordset.NoMatch Then Exit Sub
!sfrVolet.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrVolet.Form.Recordset.NoMatch Then Exit Sub
End With
Avec ce code, j'ai un noMatch une fois sur 10 environ
Si je remplace les .form.requery par .form.dirty = false, j'ai un noMatch
à
tous les coups !
sans aller plus loin, les dirty ne remplacent pas les requery, ils servent
seulement à sauvegarder les modifs, ils remplacent seulement le docmd.
ça fait pareil ?
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jean-Baptiste Lecuit" a
écrit dans le message de news:Merci beaucoup de ta réponse rapide
Malheureusement, si je remplace mes requery par .dirty = false, l'erreur
se
produit à tous les coups.
Ce qui est étrange, c'est que ma procédure marche 9 fois sur 10
Et jusqu'à il y a peu, elle marchait même toujours
Je croyais que le DoCmd.RunCommand acCmdSaveRecord mettait à jour la
requête
sous-jacente, et que donc il suffisait de faire un requery sur tous les
formulaires basés sur cette requête pour qu'ils se mettent à jour
Pour plus de précision, je te joins le code réel :
(les deux formulaires à mettre à jour sont en fait des sous formulaires du
formulaire principal de mon application, et le formulaire d'ajout est un
formulaire indépendant)
Ce code est dans le formulaire d'ajout :
DoCmd.RunCommand acCmdSaveRecord
With Forms!ndl
!sfrNotes.Form.Requery
!sfrVolet.Form.Requery
!sfrNotes.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrNotes.Form.Recordset.NoMatch Then Exit Sub
!sfrVolet.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrVolet.Form.Recordset.NoMatch Then Exit Sub
End With
Avec ce code, j'ai un noMatch une fois sur 10 environ
Si je remplace les .form.requery par .form.dirty = false, j'ai un noMatch
à
tous les coups !
Apparemment tout baigne avec le code suivant :
Me.Dirty = False
With Forms!ndl
!sfrNotes.Form.Requery
!sfrVolet.Form.Requery
!sfrVolet.Form.Dirty = False
!sfrNotes.Form.Dirty = False
Mais je ne comprends toujours pas pourquoi le code précédent marche à 95%
:
il devrait fonctionner complètement ou pas du tout ?
En tout cas ton conseil a été "most valuable", Merci
JBLsans aller plus loin, les dirty ne remplacent pas les requery, ils
servent
seulement à sauvegarder les modifs, ils remplacent seulement le docmd.
ça fait pareil ?
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jean-Baptiste Lecuit" a
écrit dans le message de news:Merci beaucoup de ta réponse rapide
Malheureusement, si je remplace mes requery par .dirty = false,
l'erreur
se
produit à tous les coups.
Ce qui est étrange, c'est que ma procédure marche 9 fois sur 10
Et jusqu'à il y a peu, elle marchait même toujours
Je croyais que le DoCmd.RunCommand acCmdSaveRecord mettait à jour la
requête
sous-jacente, et que donc il suffisait de faire un requery sur tous les
formulaires basés sur cette requête pour qu'ils se mettent à jour
Pour plus de précision, je te joins le code réel :
(les deux formulaires à mettre à jour sont en fait des sous formulaires
du
formulaire principal de mon application, et le formulaire d'ajout est
un
formulaire indépendant)
Ce code est dans le formulaire d'ajout :
DoCmd.RunCommand acCmdSaveRecord
With Forms!ndl
!sfrNotes.Form.Requery
!sfrVolet.Form.Requery
!sfrNotes.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrNotes.Form.Recordset.NoMatch Then Exit Sub
!sfrVolet.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrVolet.Form.Recordset.NoMatch Then Exit Sub
End With
Avec ce code, j'ai un noMatch une fois sur 10 environ
Si je remplace les .form.requery par .form.dirty = false, j'ai un
noMatch
à
tous les coups !
Apparemment tout baigne avec le code suivant :
Me.Dirty = False
With Forms!ndl
!sfrNotes.Form.Requery
!sfrVolet.Form.Requery
!sfrVolet.Form.Dirty = False
!sfrNotes.Form.Dirty = False
Mais je ne comprends toujours pas pourquoi le code précédent marche à 95%
:
il devrait fonctionner complètement ou pas du tout ?
En tout cas ton conseil a été "most valuable", Merci
JBL
sans aller plus loin, les dirty ne remplacent pas les requery, ils
servent
seulement à sauvegarder les modifs, ils remplacent seulement le docmd.
ça fait pareil ?
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jean-Baptiste Lecuit" <JeanBaptisteLecuit@discussions.microsoft.com> a
écrit dans le message de news:
44CE0CAF-3C11-4F58-B8E4-FD75129B5ABF@microsoft.com...
Merci beaucoup de ta réponse rapide
Malheureusement, si je remplace mes requery par .dirty = false,
l'erreur
se
produit à tous les coups.
Ce qui est étrange, c'est que ma procédure marche 9 fois sur 10
Et jusqu'à il y a peu, elle marchait même toujours
Je croyais que le DoCmd.RunCommand acCmdSaveRecord mettait à jour la
requête
sous-jacente, et que donc il suffisait de faire un requery sur tous les
formulaires basés sur cette requête pour qu'ils se mettent à jour
Pour plus de précision, je te joins le code réel :
(les deux formulaires à mettre à jour sont en fait des sous formulaires
du
formulaire principal de mon application, et le formulaire d'ajout est
un
formulaire indépendant)
Ce code est dans le formulaire d'ajout :
DoCmd.RunCommand acCmdSaveRecord
With Forms!ndl
!sfrNotes.Form.Requery
!sfrVolet.Form.Requery
!sfrNotes.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrNotes.Form.Recordset.NoMatch Then Exit Sub
!sfrVolet.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrVolet.Form.Recordset.NoMatch Then Exit Sub
End With
Avec ce code, j'ai un noMatch une fois sur 10 environ
Si je remplace les .form.requery par .form.dirty = false, j'ai un
noMatch
à
tous les coups !
Apparemment tout baigne avec le code suivant :
Me.Dirty = False
With Forms!ndl
!sfrNotes.Form.Requery
!sfrVolet.Form.Requery
!sfrVolet.Form.Dirty = False
!sfrNotes.Form.Dirty = False
Mais je ne comprends toujours pas pourquoi le code précédent marche à 95%
:
il devrait fonctionner complètement ou pas du tout ?
En tout cas ton conseil a été "most valuable", Merci
JBLsans aller plus loin, les dirty ne remplacent pas les requery, ils
servent
seulement à sauvegarder les modifs, ils remplacent seulement le docmd.
ça fait pareil ?
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jean-Baptiste Lecuit" a
écrit dans le message de news:Merci beaucoup de ta réponse rapide
Malheureusement, si je remplace mes requery par .dirty = false,
l'erreur
se
produit à tous les coups.
Ce qui est étrange, c'est que ma procédure marche 9 fois sur 10
Et jusqu'à il y a peu, elle marchait même toujours
Je croyais que le DoCmd.RunCommand acCmdSaveRecord mettait à jour la
requête
sous-jacente, et que donc il suffisait de faire un requery sur tous les
formulaires basés sur cette requête pour qu'ils se mettent à jour
Pour plus de précision, je te joins le code réel :
(les deux formulaires à mettre à jour sont en fait des sous formulaires
du
formulaire principal de mon application, et le formulaire d'ajout est
un
formulaire indépendant)
Ce code est dans le formulaire d'ajout :
DoCmd.RunCommand acCmdSaveRecord
With Forms!ndl
!sfrNotes.Form.Requery
!sfrVolet.Form.Requery
!sfrNotes.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrNotes.Form.Recordset.NoMatch Then Exit Sub
!sfrVolet.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrVolet.Form.Recordset.NoMatch Then Exit Sub
End With
Avec ce code, j'ai un noMatch une fois sur 10 environ
Si je remplace les .form.requery par .form.dirty = false, j'ai un
noMatch
à
tous les coups !
essaie de placer le dirty false avant le requery, c'est plus logique.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jean-Baptiste Lecuit" a
écrit dans le message de news:Apparemment tout baigne avec le code suivant :
Me.Dirty = False
With Forms!ndl
!sfrNotes.Form.Requery
!sfrVolet.Form.Requery
!sfrVolet.Form.Dirty = False
!sfrNotes.Form.Dirty = False
Mais je ne comprends toujours pas pourquoi le code précédent marche à 95%
:
il devrait fonctionner complètement ou pas du tout ?
En tout cas ton conseil a été "most valuable", Merci
JBLsans aller plus loin, les dirty ne remplacent pas les requery, ils
servent
seulement à sauvegarder les modifs, ils remplacent seulement le docmd.
ça fait pareil ?
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jean-Baptiste Lecuit" a
écrit dans le message de news:Merci beaucoup de ta réponse rapide
Malheureusement, si je remplace mes requery par .dirty = false,
l'erreur
se
produit à tous les coups.
Ce qui est étrange, c'est que ma procédure marche 9 fois sur 10
Et jusqu'à il y a peu, elle marchait même toujours
Je croyais que le DoCmd.RunCommand acCmdSaveRecord mettait à jour la
requête
sous-jacente, et que donc il suffisait de faire un requery sur tous les
formulaires basés sur cette requête pour qu'ils se mettent à jour
Pour plus de précision, je te joins le code réel :
(les deux formulaires à mettre à jour sont en fait des sous formulaires
du
formulaire principal de mon application, et le formulaire d'ajout est
un
formulaire indépendant)
Ce code est dans le formulaire d'ajout :
DoCmd.RunCommand acCmdSaveRecord
With Forms!ndl
!sfrNotes.Form.Requery
!sfrVolet.Form.Requery
!sfrNotes.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrNotes.Form.Recordset.NoMatch Then Exit Sub
!sfrVolet.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrVolet.Form.Recordset.NoMatch Then Exit Sub
End With
Avec ce code, j'ai un noMatch une fois sur 10 environ
Si je remplace les .form.requery par .form.dirty = false, j'ai un
noMatch
à
tous les coups !
essaie de placer le dirty false avant le requery, c'est plus logique.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jean-Baptiste Lecuit" <JeanBaptisteLecuit@discussions.microsoft.com> a
écrit dans le message de news:
372ED7E9-910F-48C2-B587-94F835D78447@microsoft.com...
Apparemment tout baigne avec le code suivant :
Me.Dirty = False
With Forms!ndl
!sfrNotes.Form.Requery
!sfrVolet.Form.Requery
!sfrVolet.Form.Dirty = False
!sfrNotes.Form.Dirty = False
Mais je ne comprends toujours pas pourquoi le code précédent marche à 95%
:
il devrait fonctionner complètement ou pas du tout ?
En tout cas ton conseil a été "most valuable", Merci
JBL
sans aller plus loin, les dirty ne remplacent pas les requery, ils
servent
seulement à sauvegarder les modifs, ils remplacent seulement le docmd.
ça fait pareil ?
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jean-Baptiste Lecuit" <JeanBaptisteLecuit@discussions.microsoft.com> a
écrit dans le message de news:
44CE0CAF-3C11-4F58-B8E4-FD75129B5ABF@microsoft.com...
Merci beaucoup de ta réponse rapide
Malheureusement, si je remplace mes requery par .dirty = false,
l'erreur
se
produit à tous les coups.
Ce qui est étrange, c'est que ma procédure marche 9 fois sur 10
Et jusqu'à il y a peu, elle marchait même toujours
Je croyais que le DoCmd.RunCommand acCmdSaveRecord mettait à jour la
requête
sous-jacente, et que donc il suffisait de faire un requery sur tous les
formulaires basés sur cette requête pour qu'ils se mettent à jour
Pour plus de précision, je te joins le code réel :
(les deux formulaires à mettre à jour sont en fait des sous formulaires
du
formulaire principal de mon application, et le formulaire d'ajout est
un
formulaire indépendant)
Ce code est dans le formulaire d'ajout :
DoCmd.RunCommand acCmdSaveRecord
With Forms!ndl
!sfrNotes.Form.Requery
!sfrVolet.Form.Requery
!sfrNotes.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrNotes.Form.Recordset.NoMatch Then Exit Sub
!sfrVolet.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrVolet.Form.Recordset.NoMatch Then Exit Sub
End With
Avec ce code, j'ai un noMatch une fois sur 10 environ
Si je remplace les .form.requery par .form.dirty = false, j'ai un
noMatch
à
tous les coups !
essaie de placer le dirty false avant le requery, c'est plus logique.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jean-Baptiste Lecuit" a
écrit dans le message de news:Apparemment tout baigne avec le code suivant :
Me.Dirty = False
With Forms!ndl
!sfrNotes.Form.Requery
!sfrVolet.Form.Requery
!sfrVolet.Form.Dirty = False
!sfrNotes.Form.Dirty = False
Mais je ne comprends toujours pas pourquoi le code précédent marche à 95%
:
il devrait fonctionner complètement ou pas du tout ?
En tout cas ton conseil a été "most valuable", Merci
JBLsans aller plus loin, les dirty ne remplacent pas les requery, ils
servent
seulement à sauvegarder les modifs, ils remplacent seulement le docmd.
ça fait pareil ?
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jean-Baptiste Lecuit" a
écrit dans le message de news:Merci beaucoup de ta réponse rapide
Malheureusement, si je remplace mes requery par .dirty = false,
l'erreur
se
produit à tous les coups.
Ce qui est étrange, c'est que ma procédure marche 9 fois sur 10
Et jusqu'à il y a peu, elle marchait même toujours
Je croyais que le DoCmd.RunCommand acCmdSaveRecord mettait à jour la
requête
sous-jacente, et que donc il suffisait de faire un requery sur tous les
formulaires basés sur cette requête pour qu'ils se mettent à jour
Pour plus de précision, je te joins le code réel :
(les deux formulaires à mettre à jour sont en fait des sous formulaires
du
formulaire principal de mon application, et le formulaire d'ajout est
un
formulaire indépendant)
Ce code est dans le formulaire d'ajout :
DoCmd.RunCommand acCmdSaveRecord
With Forms!ndl
!sfrNotes.Form.Requery
!sfrVolet.Form.Requery
!sfrNotes.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrNotes.Form.Recordset.NoMatch Then Exit Sub
!sfrVolet.Form.Recordset.FindFirst "[Id Note de Lecture] =" &
Me![Id
note de lecture]
If !sfrVolet.Form.Recordset.NoMatch Then Exit Sub
End With
Avec ce code, j'ai un noMatch une fois sur 10 environ
Si je remplace les .form.requery par .form.dirty = false, j'ai un
noMatch
à
tous les coups !
OK MERCI
Si je comprends bien il y a trois niveau :
1 la source de données (requête ou table)
2 le recordset qui est construit sur cette source
3 le formulaire qui affiche ses enregistrements
Dirty = false met à jour 1
requery met à jour 2
Si trois formulaires sont fondés sur la même source de données, un seul
dirty false devrait suffire (met à jour la source de données commune), par
contre, trois requery seraient nécessaires pour répercuter cette
modification
bref, j'applique ton conseil sans trop comprendre
(Je comprendrais très bien que tu ne répondes pas, car j'ai déjà bien
profité de ton temps et de ta compétence)
OK MERCI
Si je comprends bien il y a trois niveau :
1 la source de données (requête ou table)
2 le recordset qui est construit sur cette source
3 le formulaire qui affiche ses enregistrements
Dirty = false met à jour 1
requery met à jour 2
Si trois formulaires sont fondés sur la même source de données, un seul
dirty false devrait suffire (met à jour la source de données commune), par
contre, trois requery seraient nécessaires pour répercuter cette
modification
bref, j'applique ton conseil sans trop comprendre
(Je comprendrais très bien que tu ne répondes pas, car j'ai déjà bien
profité de ton temps et de ta compétence)
OK MERCI
Si je comprends bien il y a trois niveau :
1 la source de données (requête ou table)
2 le recordset qui est construit sur cette source
3 le formulaire qui affiche ses enregistrements
Dirty = false met à jour 1
requery met à jour 2
Si trois formulaires sont fondés sur la même source de données, un seul
dirty false devrait suffire (met à jour la source de données commune), par
contre, trois requery seraient nécessaires pour répercuter cette
modification
bref, j'applique ton conseil sans trop comprendre
(Je comprendrais très bien que tu ne répondes pas, car j'ai déjà bien
profité de ton temps et de ta compétence)