Bonjour,
Je remplie une tab à l'aide d'un formulaire.
J'ai crée un message qui me dit si une pièce n'existe plus en stock, le
message m'informe et le champ devient vide.
Dans le champ Piece:
Private Sub Piece ID_AfterUpdate()
If Test.Value = True Then
MsgBox "attention, plus de piéces"
Piece ID.Value = Empty
DoCmd.GoToControl " Piece ID"
End If
End Sub
Mon problème c'est que automatiquement une nouvelle ligne d'enregistrement
est crée et je voudrais ne pas avoir nouvelle ligne dans cette situation. Je
peux annuler la ligne avec la touche Esc, mais comment le faire avec la macro?
J'ai essaie avec Undo et Cancel mais je n'arrive pas à résoudre le problème.
De l'aide, s.v.p.
A Costa
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Argyronet
Bonjour,
Pour intercepter les séquences de touches du clavier sur un formulaire, il faut définir la propriété "Aperçu des touche" (KeyPreview) à Oui (True) De là, vous pouvez très bien faire ce que bon vous semble :
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyEscape Then On Error Resume Next MsgBox "Pour annuler il faut écrire :" & vbCrLf & "DoCmd.RunCommand acCmdUndo", 64, "Appuie sur Esc" End If End Sub
Espérant que cela vous aidera... -- Argy http://argyronet.developpez.com/
Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment
Bonjour, Je remplie une tab à l'aide d'un formulaire. J'ai crée un message qui me dit si une pièce n'existe plus en stock, le message m'informe et le champ devient vide.
Dans le champ Piece:
Private Sub Piece ID_AfterUpdate() If Test.Value = True Then MsgBox "attention, plus de piéces" Piece ID.Value = Empty DoCmd.GoToControl " Piece ID" End If End Sub
Mon problème c'est que automatiquement une nouvelle ligne d'enregistrement est crée et je voudrais ne pas avoir nouvelle ligne dans cette situation. Je peux annuler la ligne avec la touche Esc, mais comment le faire avec la macro? J'ai essaie avec Undo et Cancel mais je n'arrive pas à résoudre le problème. De l'aide, s.v.p. A Costa
Bonjour,
Pour intercepter les séquences de touches du clavier sur un formulaire, il
faut définir la propriété "Aperçu des touche" (KeyPreview) à Oui (True)
De là, vous pouvez très bien faire ce que bon vous semble :
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
On Error Resume Next
MsgBox "Pour annuler il faut écrire :" & vbCrLf & "DoCmd.RunCommand
acCmdUndo", 64, "Appuie sur Esc"
End If
End Sub
Espérant que cela vous aidera...
--
Argy
http://argyronet.developpez.com/
Ce qui donne son sens à la communication, c´est la réponse que l´on obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment
Bonjour,
Je remplie une tab à l'aide d'un formulaire.
J'ai crée un message qui me dit si une pièce n'existe plus en stock, le
message m'informe et le champ devient vide.
Dans le champ Piece:
Private Sub Piece ID_AfterUpdate()
If Test.Value = True Then
MsgBox "attention, plus de piéces"
Piece ID.Value = Empty
DoCmd.GoToControl " Piece ID"
End If
End Sub
Mon problème c'est que automatiquement une nouvelle ligne d'enregistrement
est crée et je voudrais ne pas avoir nouvelle ligne dans cette situation. Je
peux annuler la ligne avec la touche Esc, mais comment le faire avec la macro?
J'ai essaie avec Undo et Cancel mais je n'arrive pas à résoudre le problème.
De l'aide, s.v.p.
A Costa
Pour intercepter les séquences de touches du clavier sur un formulaire, il faut définir la propriété "Aperçu des touche" (KeyPreview) à Oui (True) De là, vous pouvez très bien faire ce que bon vous semble :
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyEscape Then On Error Resume Next MsgBox "Pour annuler il faut écrire :" & vbCrLf & "DoCmd.RunCommand acCmdUndo", 64, "Appuie sur Esc" End If End Sub
Espérant que cela vous aidera... -- Argy http://argyronet.developpez.com/
Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment
Bonjour, Je remplie une tab à l'aide d'un formulaire. J'ai crée un message qui me dit si une pièce n'existe plus en stock, le message m'informe et le champ devient vide.
Dans le champ Piece:
Private Sub Piece ID_AfterUpdate() If Test.Value = True Then MsgBox "attention, plus de piéces" Piece ID.Value = Empty DoCmd.GoToControl " Piece ID" End If End Sub
Mon problème c'est que automatiquement une nouvelle ligne d'enregistrement est crée et je voudrais ne pas avoir nouvelle ligne dans cette situation. Je peux annuler la ligne avec la touche Esc, mais comment le faire avec la macro? J'ai essaie avec Undo et Cancel mais je n'arrive pas à résoudre le problème. De l'aide, s.v.p. A Costa
A Costa
Merci pour la reponse Je vais essayer. A Costa
Bonjour,
Pour intercepter les séquences de touches du clavier sur un formulaire, il faut définir la propriété "Aperçu des touche" (KeyPreview) à Oui (True) De là, vous pouvez très bien faire ce que bon vous semble :
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyEscape Then On Error Resume Next MsgBox "Pour annuler il faut écrire :" & vbCrLf & "DoCmd.RunCommand acCmdUndo", 64, "Appuie sur Esc" End If End Sub
Espérant que cela vous aidera... -- Argy http://argyronet.developpez.com/
Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment
Bonjour, Je remplie une tab à l'aide d'un formulaire. J'ai crée un message qui me dit si une pièce n'existe plus en stock, le message m'informe et le champ devient vide.
Dans le champ Piece:
Private Sub Piece ID_AfterUpdate() If Test.Value = True Then MsgBox "attention, plus de piéces" Piece ID.Value = Empty DoCmd.GoToControl " Piece ID" End If End Sub
Mon problème c'est que automatiquement une nouvelle ligne d'enregistrement est crée et je voudrais ne pas avoir nouvelle ligne dans cette situation. Je peux annuler la ligne avec la touche Esc, mais comment le faire avec la macro? J'ai essaie avec Undo et Cancel mais je n'arrive pas à résoudre le problème. De l'aide, s.v.p. A Costa
Merci pour la reponse
Je vais essayer.
A Costa
Bonjour,
Pour intercepter les séquences de touches du clavier sur un formulaire, il
faut définir la propriété "Aperçu des touche" (KeyPreview) à Oui (True)
De là, vous pouvez très bien faire ce que bon vous semble :
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
On Error Resume Next
MsgBox "Pour annuler il faut écrire :" & vbCrLf & "DoCmd.RunCommand
acCmdUndo", 64, "Appuie sur Esc"
End If
End Sub
Espérant que cela vous aidera...
--
Argy
http://argyronet.developpez.com/
Ce qui donne son sens à la communication, c´est la réponse que l´on obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment
Bonjour,
Je remplie une tab à l'aide d'un formulaire.
J'ai crée un message qui me dit si une pièce n'existe plus en stock, le
message m'informe et le champ devient vide.
Dans le champ Piece:
Private Sub Piece ID_AfterUpdate()
If Test.Value = True Then
MsgBox "attention, plus de piéces"
Piece ID.Value = Empty
DoCmd.GoToControl " Piece ID"
End If
End Sub
Mon problème c'est que automatiquement une nouvelle ligne d'enregistrement
est crée et je voudrais ne pas avoir nouvelle ligne dans cette situation. Je
peux annuler la ligne avec la touche Esc, mais comment le faire avec la macro?
J'ai essaie avec Undo et Cancel mais je n'arrive pas à résoudre le problème.
De l'aide, s.v.p.
A Costa
Pour intercepter les séquences de touches du clavier sur un formulaire, il faut définir la propriété "Aperçu des touche" (KeyPreview) à Oui (True) De là, vous pouvez très bien faire ce que bon vous semble :
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyEscape Then On Error Resume Next MsgBox "Pour annuler il faut écrire :" & vbCrLf & "DoCmd.RunCommand acCmdUndo", 64, "Appuie sur Esc" End If End Sub
Espérant que cela vous aidera... -- Argy http://argyronet.developpez.com/
Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment
Bonjour, Je remplie une tab à l'aide d'un formulaire. J'ai crée un message qui me dit si une pièce n'existe plus en stock, le message m'informe et le champ devient vide.
Dans le champ Piece:
Private Sub Piece ID_AfterUpdate() If Test.Value = True Then MsgBox "attention, plus de piéces" Piece ID.Value = Empty DoCmd.GoToControl " Piece ID" End If End Sub
Mon problème c'est que automatiquement une nouvelle ligne d'enregistrement est crée et je voudrais ne pas avoir nouvelle ligne dans cette situation. Je peux annuler la ligne avec la touche Esc, mais comment le faire avec la macro? J'ai essaie avec Undo et Cancel mais je n'arrive pas à résoudre le problème. De l'aide, s.v.p. A Costa
Eric
Bonjour,
Je pense que le controle de la quantité disponible doit être fait avant la mise à jour et non après.
Ayant du mal à comprendre la méthode, le code donné m'amène à me poser les questions suivantes: - Que représente Test.Value ? Ne serait-pas un champ de la table référencée par Piece_ID ? - La ligne: Piece ID.Value = Empty ne génère-t-elle pas une erreur ? De même, le nom de la procédure n'est pas bon, ça devrait être Private Sub Piece_ID_AfterUpdate()
Tel que donné, le contrôle est effectué trop tard car la mise à jour a eu lieu et donc la ligne est écrite.
En définitive, des questions en lieu et place de réponse ;-)
Bonjour, Je remplie une tab à l'aide d'un formulaire. J'ai crée un message qui me dit si une pièce n'existe plus en stock, le message m'informe et le champ devient vide.
Dans le champ Piece:
Private Sub Piece ID_AfterUpdate() If Test.Value = True Then MsgBox "attention, plus de piéces" Piece ID.Value = Empty DoCmd.GoToControl " Piece ID" End If End Sub
Mon problème c'est que automatiquement une nouvelle ligne d'enregistrement est crée et je voudrais ne pas avoir nouvelle ligne dans cette situation. Je peux annuler la ligne avec la touche Esc, mais comment le faire avec la macro? J'ai essaie avec Undo et Cancel mais je n'arrive pas à résoudre le problème. De l'aide, s.v.p. A Costa
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
Je pense que le controle de la quantité disponible doit être fait avant
la mise à jour et non après.
Ayant du mal à comprendre la méthode, le code donné m'amène à me poser
les questions suivantes:
- Que représente Test.Value ? Ne serait-pas un champ de la table
référencée par Piece_ID ?
- La ligne: Piece ID.Value = Empty ne génère-t-elle pas une erreur ?
De même, le nom de la procédure n'est pas bon, ça devrait être Private
Sub Piece_ID_AfterUpdate()
Tel que donné, le contrôle est effectué trop tard car la mise à jour a
eu lieu et donc la ligne est écrite.
En définitive, des questions en lieu et place de réponse ;-)
Bonjour,
Je remplie une tab à l'aide d'un formulaire.
J'ai crée un message qui me dit si une pièce n'existe plus en stock, le
message m'informe et le champ devient vide.
Dans le champ Piece:
Private Sub Piece ID_AfterUpdate()
If Test.Value = True Then
MsgBox "attention, plus de piéces"
Piece ID.Value = Empty
DoCmd.GoToControl " Piece ID"
End If
End Sub
Mon problème c'est que automatiquement une nouvelle ligne d'enregistrement
est crée et je voudrais ne pas avoir nouvelle ligne dans cette situation. Je
peux annuler la ligne avec la touche Esc, mais comment le faire avec la macro?
J'ai essaie avec Undo et Cancel mais je n'arrive pas à résoudre le problème.
De l'aide, s.v.p.
A Costa
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Je pense que le controle de la quantité disponible doit être fait avant la mise à jour et non après.
Ayant du mal à comprendre la méthode, le code donné m'amène à me poser les questions suivantes: - Que représente Test.Value ? Ne serait-pas un champ de la table référencée par Piece_ID ? - La ligne: Piece ID.Value = Empty ne génère-t-elle pas une erreur ? De même, le nom de la procédure n'est pas bon, ça devrait être Private Sub Piece_ID_AfterUpdate()
Tel que donné, le contrôle est effectué trop tard car la mise à jour a eu lieu et donc la ligne est écrite.
En définitive, des questions en lieu et place de réponse ;-)
Bonjour, Je remplie une tab à l'aide d'un formulaire. J'ai crée un message qui me dit si une pièce n'existe plus en stock, le message m'informe et le champ devient vide.
Dans le champ Piece:
Private Sub Piece ID_AfterUpdate() If Test.Value = True Then MsgBox "attention, plus de piéces" Piece ID.Value = Empty DoCmd.GoToControl " Piece ID" End If End Sub
Mon problème c'est que automatiquement une nouvelle ligne d'enregistrement est crée et je voudrais ne pas avoir nouvelle ligne dans cette situation. Je peux annuler la ligne avec la touche Esc, mais comment le faire avec la macro? J'ai essaie avec Undo et Cancel mais je n'arrive pas à résoudre le problème. De l'aide, s.v.p. A Costa
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour, et merci d'abord Effcetivement c'est PieceID et non Piece ID Le Text.value c'est Combo1.Value (une case à cocher que j'itilise dans un autre form pour indiquer qu'il n'y a plus de pieces. A Costa
Bonjour,
Je pense que le controle de la quantité disponible doit être fait avant la mise à jour et non après.
Ayant du mal à comprendre la méthode, le code donné m'amène à me poser les questions suivantes: - Que représente Test.Value ? Ne serait-pas un champ de la table référencée par Piece_ID ? - La ligne: Piece ID.Value = Empty ne génère-t-elle pas une erreur ? De même, le nom de la procédure n'est pas bon, ça devrait être Private Sub Piece_ID_AfterUpdate()
Tel que donné, le contrôle est effectué trop tard car la mise à jour a eu lieu et donc la ligne est écrite.
En définitive, des questions en lieu et place de réponse ;-)
Bonjour, Je remplie une tab à l'aide d'un formulaire. J'ai crée un message qui me dit si une pièce n'existe plus en stock, le message m'informe et le champ devient vide.
Dans le champ Piece:
Private Sub Piece ID_AfterUpdate() If Test.Value = True Then MsgBox "attention, plus de piéces" Piece ID.Value = Empty DoCmd.GoToControl " Piece ID" End If End Sub
Mon problème c'est que automatiquement une nouvelle ligne d'enregistrement est crée et je voudrais ne pas avoir nouvelle ligne dans cette situation. Je peux annuler la ligne avec la touche Esc, mais comment le faire avec la macro? J'ai essaie avec Undo et Cancel mais je n'arrive pas à résoudre le problème. De l'aide, s.v.p. A Costa
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour, et merci d'abord
Effcetivement c'est PieceID et non Piece ID
Le Text.value c'est Combo1.Value (une case à cocher que j'itilise dans un
autre form pour indiquer qu'il n'y a plus de pieces.
A Costa
Bonjour,
Je pense que le controle de la quantité disponible doit être fait avant
la mise à jour et non après.
Ayant du mal à comprendre la méthode, le code donné m'amène à me poser
les questions suivantes:
- Que représente Test.Value ? Ne serait-pas un champ de la table
référencée par Piece_ID ?
- La ligne: Piece ID.Value = Empty ne génère-t-elle pas une erreur ?
De même, le nom de la procédure n'est pas bon, ça devrait être Private
Sub Piece_ID_AfterUpdate()
Tel que donné, le contrôle est effectué trop tard car la mise à jour a
eu lieu et donc la ligne est écrite.
En définitive, des questions en lieu et place de réponse ;-)
Bonjour,
Je remplie une tab à l'aide d'un formulaire.
J'ai crée un message qui me dit si une pièce n'existe plus en stock, le
message m'informe et le champ devient vide.
Dans le champ Piece:
Private Sub Piece ID_AfterUpdate()
If Test.Value = True Then
MsgBox "attention, plus de piéces"
Piece ID.Value = Empty
DoCmd.GoToControl " Piece ID"
End If
End Sub
Mon problème c'est que automatiquement une nouvelle ligne d'enregistrement
est crée et je voudrais ne pas avoir nouvelle ligne dans cette situation. Je
peux annuler la ligne avec la touche Esc, mais comment le faire avec la macro?
J'ai essaie avec Undo et Cancel mais je n'arrive pas à résoudre le problème.
De l'aide, s.v.p.
A Costa
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour, et merci d'abord Effcetivement c'est PieceID et non Piece ID Le Text.value c'est Combo1.Value (une case à cocher que j'itilise dans un autre form pour indiquer qu'il n'y a plus de pieces. A Costa
Bonjour,
Je pense que le controle de la quantité disponible doit être fait avant la mise à jour et non après.
Ayant du mal à comprendre la méthode, le code donné m'amène à me poser les questions suivantes: - Que représente Test.Value ? Ne serait-pas un champ de la table référencée par Piece_ID ? - La ligne: Piece ID.Value = Empty ne génère-t-elle pas une erreur ? De même, le nom de la procédure n'est pas bon, ça devrait être Private Sub Piece_ID_AfterUpdate()
Tel que donné, le contrôle est effectué trop tard car la mise à jour a eu lieu et donc la ligne est écrite.
En définitive, des questions en lieu et place de réponse ;-)
Bonjour, Je remplie une tab à l'aide d'un formulaire. J'ai crée un message qui me dit si une pièce n'existe plus en stock, le message m'informe et le champ devient vide.
Dans le champ Piece:
Private Sub Piece ID_AfterUpdate() If Test.Value = True Then MsgBox "attention, plus de piéces" Piece ID.Value = Empty DoCmd.GoToControl " Piece ID" End If End Sub
Mon problème c'est que automatiquement une nouvelle ligne d'enregistrement est crée et je voudrais ne pas avoir nouvelle ligne dans cette situation. Je peux annuler la ligne avec la touche Esc, mais comment le faire avec la macro? J'ai essaie avec Undo et Cancel mais je n'arrive pas à résoudre le problème. De l'aide, s.v.p. A Costa
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Argyronet
Humm effectivement, ma réponse ne vous apportera pas grand chose... En fait, si vous indiquez manuellement qu'il n'y a plus de pièce dans un autre formulaire, il faut que le formulaire actif soit en mesure de déterminer que cette case est cochée ou non ; or, avec le code que vous nous avez transmi, j'ai un gros doute.
Tout comme Eric, il serait souhaitable que vous soyez plus clair dans ce que vous désirez faire en exposant les objets que vous utilisez.
Là, on pourra vous aider sans problèmes
-- Argy http://argyronet.developpez.com/
Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment
"A Costa" wrote:
Bonjour, et merci d'abord Effcetivement c'est PieceID et non Piece ID Le Text.value c'est Combo1.Value (une case à cocher que j'itilise dans un autre form pour indiquer qu'il n'y a plus de pieces. A Costa
Bonjour,
Je pense que le controle de la quantité disponible doit être fait avant la mise à jour et non après.
Ayant du mal à comprendre la méthode, le code donné m'amène à me poser les questions suivantes: - Que représente Test.Value ? Ne serait-pas un champ de la table référencée par Piece_ID ? - La ligne: Piece ID.Value = Empty ne génère-t-elle pas une erreur ? De même, le nom de la procédure n'est pas bon, ça devrait être Private Sub Piece_ID_AfterUpdate()
Tel que donné, le contrôle est effectué trop tard car la mise à jour a eu lieu et donc la ligne est écrite.
En définitive, des questions en lieu et place de réponse ;-)
Bonjour, Je remplie une tab à l'aide d'un formulaire. J'ai crée un message qui me dit si une pièce n'existe plus en stock, le message m'informe et le champ devient vide.
Dans le champ Piece:
Private Sub Piece ID_AfterUpdate() If Test.Value = True Then MsgBox "attention, plus de piéces" Piece ID.Value = Empty DoCmd.GoToControl " Piece ID" End If End Sub
Mon problème c'est que automatiquement une nouvelle ligne d'enregistrement est crée et je voudrais ne pas avoir nouvelle ligne dans cette situation. Je peux annuler la ligne avec la touche Esc, mais comment le faire avec la macro? J'ai essaie avec Undo et Cancel mais je n'arrive pas à résoudre le problème. De l'aide, s.v.p. A Costa
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Humm effectivement, ma réponse ne vous apportera pas grand chose...
En fait, si vous indiquez manuellement qu'il n'y a plus de pièce dans un
autre formulaire, il faut que le formulaire actif soit en mesure de
déterminer que cette case est cochée ou non ; or, avec le code que vous nous
avez transmi, j'ai un gros doute.
Tout comme Eric, il serait souhaitable que vous soyez plus clair dans ce que
vous désirez faire en exposant les objets que vous utilisez.
Là, on pourra vous aider sans problèmes
--
Argy
http://argyronet.developpez.com/
Ce qui donne son sens à la communication, c´est la réponse que l´on obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment
"A Costa" wrote:
Bonjour, et merci d'abord
Effcetivement c'est PieceID et non Piece ID
Le Text.value c'est Combo1.Value (une case à cocher que j'itilise dans un
autre form pour indiquer qu'il n'y a plus de pieces.
A Costa
Bonjour,
Je pense que le controle de la quantité disponible doit être fait avant
la mise à jour et non après.
Ayant du mal à comprendre la méthode, le code donné m'amène à me poser
les questions suivantes:
- Que représente Test.Value ? Ne serait-pas un champ de la table
référencée par Piece_ID ?
- La ligne: Piece ID.Value = Empty ne génère-t-elle pas une erreur ?
De même, le nom de la procédure n'est pas bon, ça devrait être Private
Sub Piece_ID_AfterUpdate()
Tel que donné, le contrôle est effectué trop tard car la mise à jour a
eu lieu et donc la ligne est écrite.
En définitive, des questions en lieu et place de réponse ;-)
Bonjour,
Je remplie une tab à l'aide d'un formulaire.
J'ai crée un message qui me dit si une pièce n'existe plus en stock, le
message m'informe et le champ devient vide.
Dans le champ Piece:
Private Sub Piece ID_AfterUpdate()
If Test.Value = True Then
MsgBox "attention, plus de piéces"
Piece ID.Value = Empty
DoCmd.GoToControl " Piece ID"
End If
End Sub
Mon problème c'est que automatiquement une nouvelle ligne d'enregistrement
est crée et je voudrais ne pas avoir nouvelle ligne dans cette situation. Je
peux annuler la ligne avec la touche Esc, mais comment le faire avec la macro?
J'ai essaie avec Undo et Cancel mais je n'arrive pas à résoudre le problème.
De l'aide, s.v.p.
A Costa
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Humm effectivement, ma réponse ne vous apportera pas grand chose... En fait, si vous indiquez manuellement qu'il n'y a plus de pièce dans un autre formulaire, il faut que le formulaire actif soit en mesure de déterminer que cette case est cochée ou non ; or, avec le code que vous nous avez transmi, j'ai un gros doute.
Tout comme Eric, il serait souhaitable que vous soyez plus clair dans ce que vous désirez faire en exposant les objets que vous utilisez.
Là, on pourra vous aider sans problèmes
-- Argy http://argyronet.developpez.com/
Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment
"A Costa" wrote:
Bonjour, et merci d'abord Effcetivement c'est PieceID et non Piece ID Le Text.value c'est Combo1.Value (une case à cocher que j'itilise dans un autre form pour indiquer qu'il n'y a plus de pieces. A Costa
Bonjour,
Je pense que le controle de la quantité disponible doit être fait avant la mise à jour et non après.
Ayant du mal à comprendre la méthode, le code donné m'amène à me poser les questions suivantes: - Que représente Test.Value ? Ne serait-pas un champ de la table référencée par Piece_ID ? - La ligne: Piece ID.Value = Empty ne génère-t-elle pas une erreur ? De même, le nom de la procédure n'est pas bon, ça devrait être Private Sub Piece_ID_AfterUpdate()
Tel que donné, le contrôle est effectué trop tard car la mise à jour a eu lieu et donc la ligne est écrite.
En définitive, des questions en lieu et place de réponse ;-)
Bonjour, Je remplie une tab à l'aide d'un formulaire. J'ai crée un message qui me dit si une pièce n'existe plus en stock, le message m'informe et le champ devient vide.
Dans le champ Piece:
Private Sub Piece ID_AfterUpdate() If Test.Value = True Then MsgBox "attention, plus de piéces" Piece ID.Value = Empty DoCmd.GoToControl " Piece ID" End If End Sub
Mon problème c'est que automatiquement une nouvelle ligne d'enregistrement est crée et je voudrais ne pas avoir nouvelle ligne dans cette situation. Je peux annuler la ligne avec la touche Esc, mais comment le faire avec la macro? J'ai essaie avec Undo et Cancel mais je n'arrive pas à résoudre le problème. De l'aide, s.v.p. A Costa
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Eric
re,
Je controlerai sur l'évènement Avant Mise à jour du contrôle PieceID. Fait à main levée, je mettrai quelque chose comme ceci en adaptant le nom du formulaire contenant Test:
Private Sub PieceID_BeforeUpdate(Cancel as integer) If Forms!NomFormulaireContenantTest!Test Then MsgBox "Attention, plus de pièces !", vbExclamation Cancel=True PieceID.Undo End If End Sub
PS: Test est une CheckBox et non une ComboBox
Bonjour, et merci d'abord Effcetivement c'est PieceID et non Piece ID Le Text.value c'est Combo1.Value (une case à cocher que j'itilise dans un autre form pour indiquer qu'il n'y a plus de pieces. A Costa
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
re,
Je controlerai sur l'évènement Avant Mise à jour du contrôle PieceID.
Fait à main levée, je mettrai quelque chose comme ceci en adaptant le
nom du formulaire contenant Test:
Private Sub PieceID_BeforeUpdate(Cancel as integer)
If Forms!NomFormulaireContenantTest!Test Then
MsgBox "Attention, plus de pièces !", vbExclamation
Cancel=True
PieceID.Undo
End If
End Sub
PS: Test est une CheckBox et non une ComboBox
Bonjour, et merci d'abord
Effcetivement c'est PieceID et non Piece ID
Le Text.value c'est Combo1.Value (une case à cocher que j'itilise dans un
autre form pour indiquer qu'il n'y a plus de pieces.
A Costa
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Je controlerai sur l'évènement Avant Mise à jour du contrôle PieceID. Fait à main levée, je mettrai quelque chose comme ceci en adaptant le nom du formulaire contenant Test:
Private Sub PieceID_BeforeUpdate(Cancel as integer) If Forms!NomFormulaireContenantTest!Test Then MsgBox "Attention, plus de pièces !", vbExclamation Cancel=True PieceID.Undo End If End Sub
PS: Test est une CheckBox et non une ComboBox
Bonjour, et merci d'abord Effcetivement c'est PieceID et non Piece ID Le Text.value c'est Combo1.Value (une case à cocher que j'itilise dans un autre form pour indiquer qu'il n'y a plus de pieces. A Costa
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
A COSTA
Effectivement Test est une CheckBox et non une ComboBox
J'ai remplacé: If Forms!NomFormulaireContenantTest!Test Then par If Forms!NomFormulaireContenantTest!Test = TrueThen mais j'ai le message :
The value in the field or record violates the validation rule for the record or field.
Je pense que je dois aussi informer que le formulaire est lié à 4 tables (Tbl_Distrubution, Pieces, Service et Nom) et je fais l'attribution des pièces à quelqu'un qui est dans un quelque Service.
Avec le code que j'ai envoyé la première fois ça marche bien sauf la ligne que s'ajoute. Si je veux annuler l'enregistrement je dois faire Escape et je voudrais le faire automatiquement en ajoutant un command à :
Private Sub PieceID_AfterUpdate() If Test.Value = True Then MsgBox "attention, plus de piéces de cette reference" PieceID.Value = Empty DoCmd.GoToControl "PieceID" End If End Sub
Un tres gand merci d'avance A Costa
re,
Je controlerai sur l'évènement Avant Mise à jour du contrôle PieceID. Fait à main levée, je mettrai quelque chose comme ceci en adaptant le nom du formulaire contenant Test:
Private Sub PieceID_BeforeUpdate(Cancel as integer) If Forms!NomFormulaireContenantTest!Test Then MsgBox "Attention, plus de pièces !", vbExclamation Cancel=True PieceID.Undo End If End Sub
PS: Test est une CheckBox et non une ComboBox
Bonjour, et merci d'abord Effcetivement c'est PieceID et non Piece ID Le Text.value c'est Combo1.Value (une case à cocher que j'itilise dans un autre form pour indiquer qu'il n'y a plus de pieces. A Costa
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Effectivement Test est une CheckBox et non une ComboBox
J'ai remplacé:
If Forms!NomFormulaireContenantTest!Test Then
par
If Forms!NomFormulaireContenantTest!Test = TrueThen
mais j'ai le message :
The value in the field or record violates the validation rule for the record
or field.
Je pense que je dois aussi informer que le formulaire est lié à 4 tables
(Tbl_Distrubution, Pieces, Service et Nom) et je fais l'attribution des
pièces à quelqu'un qui est dans un quelque Service.
Avec le code que j'ai envoyé la première fois ça marche bien sauf la ligne
que s'ajoute. Si je veux annuler l'enregistrement je dois faire Escape et je
voudrais le faire automatiquement en ajoutant un command à :
Private Sub PieceID_AfterUpdate()
If Test.Value = True Then
MsgBox "attention, plus de piéces de cette reference"
PieceID.Value = Empty
DoCmd.GoToControl "PieceID"
End If
End Sub
Un tres gand merci d'avance
A Costa
re,
Je controlerai sur l'évènement Avant Mise à jour du contrôle PieceID.
Fait à main levée, je mettrai quelque chose comme ceci en adaptant le
nom du formulaire contenant Test:
Private Sub PieceID_BeforeUpdate(Cancel as integer)
If Forms!NomFormulaireContenantTest!Test Then
MsgBox "Attention, plus de pièces !", vbExclamation
Cancel=True
PieceID.Undo
End If
End Sub
PS: Test est une CheckBox et non une ComboBox
Bonjour, et merci d'abord
Effcetivement c'est PieceID et non Piece ID
Le Text.value c'est Combo1.Value (une case à cocher que j'itilise dans un
autre form pour indiquer qu'il n'y a plus de pieces.
A Costa
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Effectivement Test est une CheckBox et non une ComboBox
J'ai remplacé: If Forms!NomFormulaireContenantTest!Test Then par If Forms!NomFormulaireContenantTest!Test = TrueThen mais j'ai le message :
The value in the field or record violates the validation rule for the record or field.
Je pense que je dois aussi informer que le formulaire est lié à 4 tables (Tbl_Distrubution, Pieces, Service et Nom) et je fais l'attribution des pièces à quelqu'un qui est dans un quelque Service.
Avec le code que j'ai envoyé la première fois ça marche bien sauf la ligne que s'ajoute. Si je veux annuler l'enregistrement je dois faire Escape et je voudrais le faire automatiquement en ajoutant un command à :
Private Sub PieceID_AfterUpdate() If Test.Value = True Then MsgBox "attention, plus de piéces de cette reference" PieceID.Value = Empty DoCmd.GoToControl "PieceID" End If End Sub
Un tres gand merci d'avance A Costa
re,
Je controlerai sur l'évènement Avant Mise à jour du contrôle PieceID. Fait à main levée, je mettrai quelque chose comme ceci en adaptant le nom du formulaire contenant Test:
Private Sub PieceID_BeforeUpdate(Cancel as integer) If Forms!NomFormulaireContenantTest!Test Then MsgBox "Attention, plus de pièces !", vbExclamation Cancel=True PieceID.Undo End If End Sub
PS: Test est une CheckBox et non une ComboBox
Bonjour, et merci d'abord Effcetivement c'est PieceID et non Piece ID Le Text.value c'est Combo1.Value (une case à cocher que j'itilise dans un autre form pour indiquer qu'il n'y a plus de pieces. A Costa
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
A COSTA
Bonjour J'ai trouvé. La solution c'est ajouter Me.Undo
Private Sub PieceID_AfterUpdate() If Test.Value = True Then MsgBox "attention, plus de piéces" PieceID.Value = Empty DoCmd.GoToControl " PieceID"