IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

suppression enregistrement en cours impossible sur un formulaire.


Sujet :

IHM

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 482
    Points : 142
    Points
    142
    Par défaut suppression enregistrement en cours impossible sur un formulaire.
    Bonjour,

    Dans un formulaire impossible de supprimer l'enregistrement sur lequel je me trouve, je dois me plaçer sur un autre enregistrement et clicker sur le bouton de commande de l'enregistrement que je veux supprimer pour que cela marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Command52_Click()
    If Me.Employee = Me.User Then
            If MsgBox("Do you really want to delete this record ?" & vbCrLf & vbCrLf & "Be careful ! This action is irreversible !", _
            vbYesNo + vbExclamation + vbDefaultButton2, "CTX") = vbYes Then
            Me.NomClef.Requery
                 DoCmd.SetWarnings False
                 DoCmd.RunCommand acCmdSelectRecord
                 DoCmd.RunCommand acCmdDelete
                 DoCmd.SetWarnings True
            End If
            Else
    MsgBox "You don't have permission to delete this record." & vbCrLf & vbCrLf & "Only the user who registered this record can delete it.", vbExclamation, "CTX"
    End If
    End Sub
    Explications supplémentaires :

    - Mon champ "Employee" s'alimente grâce à un autre champ "Contracts"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Contracts_AfterUpdate()
        If IsNull(Me.Employee.Value) Or Me.Employee.Value = "" Then
             Me.Employee.Value = Environ("UserName")
       End If
    End Sub
    - Mon champ "User" a comme source contrôle =Utilisateur()

    Je pense qu'il ne supprime pas l'enregistrement sur lequel je me plaçes parce qu'il ne "reconnaît" pas mon champ "Employee" et que donc il y a un problème de refresh mais j'ai essayé un requery un peu partout et je n'y arrive pas ...

  2. #2
    Débutant
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 482
    Points : 142
    Points
    142
    Par défaut
    En fait, il est impossible de supprimer un enregistrement en cours à mois de le sauvegarder avant.

    J'ai donc utilisé DoCmd.RunCommand acCmdSaveRecord dans mon code mais cela ne marche toujours pas.
    VB me met comme message : Function isn't available now

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub Command52_Click()
    DoCmd.RunCommand acCmdSaveRecord
    If Me.Employee = Me.User Then
            If MsgBox("Do you really want to delete this record ?" & vbCrLf & vbCrLf & "Be careful ! This action is irreversible !", _
            vbYesNo + vbExclamation + vbDefaultButton2, "CTX") = vbYes Then
            Me.NomClef.Requery
                 DoCmd.SetWarnings False
                 DoCmd.RunCommand acCmdSelectRecord
                 DoCmd.RunCommand acCmdDelete
                 DoCmd.SetWarnings True
            End If
            Else
    MsgBox "You don't have permission to delete this record." & vbCrLf & vbCrLf & "Only the user who registered this record can delete it.", vbExclamation, "CTX"
    End If
    End Sub

  3. #3
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut Effacer l'enregistrement
    Bonsoir,

    L'enregistrement en cours s'efface en appuyant sur Escape

    On peut également l'enregistrer avec F9 puis l'effacer en le sélectionnant (en cliquant sur le carré gris avec un triangle noir qui se trouve à gauche puis Delete.

  4. #4
    Débutant
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 482
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par rjamin Voir le message
    Bonsoir,

    L'enregistrement en cours s'efface en appuyant sur Escape

    On peut également l'enregistrer avec F9 puis l'effacer en le sélectionnant (en cliquant sur le carré gris avec un triangle noir qui se trouve à gauche puis Delete.
    Bonjour et merci pour ta réponse

    Cela marche en effet en appuyant sur F9 mais bon en se mettant sur un autre enregistrement aussi quoi.

    Ce que j'aimerais, c'est automatiser l'enregistrement par le code

    Comment cela se fait qu'en utilisant DoCmd.RunCommand acCmdSaveRecord sur mon bouton qui sert à enregistrer, l'enregistrement ne s'enregistre pas ???

  5. #5
    Débutant
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 482
    Points : 142
    Points
    142
    Par défaut
    J'ai essayé en remplaçant DoCmd.RunCommand acCmdSaveRecord par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If NewRecord And Not Dirty Then
        Recordset.AddNew
        Recordset.Update
    End If
    mais l'enregistrement ne se passe pas (il s'agit d'un formulaire lié)

  6. #6
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    Tu es dans un formulaire en mode continu ?

    Dans la situation ou ton code crée l'erreur, si tu regardes dans le menu Enregistrements, la commande Sauvegarder l'enregistrement est grisée ?

    Et la commande Actualiser ?

    Domi2

  7. #7
    Débutant
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 482
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par Domi2 Voir le message
    Bonjour,

    Tu es dans un formulaire en mode continu ?

    Dans la situation ou ton code crée l'erreur, si tu regardes dans le menu Enregistrements, la commande Sauvegarder l'enregistrement est grisée ?

    Et la commande Actualiser ?

    Domi2
    Oui, il s'agit en effet d'un formulaire en mode continu.

    Non, REFRESH et SAVE RECORD sont clickables via le menu mais lorsque je click sur SAVE RECORD et que je veux supprimer mon enregistrement, SAVE RECORD n'est plus clickable et j'ai ce message d'erreur :

    Run-time error '2046':
    The command or action 'SaveRecord' isn't available now.

  8. #8
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Ben, je ne sais pas trop...

    Il faudrait que je fasse des tests...

    Juste une question encore. As-tu des champs calculés ?

    Domi2

  9. #9
    Débutant
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 482
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par Domi2 Voir le message
    Re,

    Ben, je ne sais pas trop...

    Il faudrait que je fasse des tests...

    Juste une question encore. As-tu des champs calculés ?

    Domi2
    Des champs calculés non ; j'ai un champ NomClef dont la source contrôle est =NombreLigne([Form];"N°";[N°]) pour numéroter mes enregistrements et des évènements afterupdate mais pas de champs calculés.

  10. #10
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Essaie de remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DoCmd.RunCommand acCmdSaveRecord
    If Me.Employee = Me.User Then
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.Refresh
    If Me.Employee = Me.User Then
    Ca change quelque chose ?

    Domi2

  11. #11
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.undo
    Me.recordset.Delete

  12. #12
    Débutant
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 482
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par Domi2 Voir le message
    Re,

    Essaie de remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DoCmd.RunCommand acCmdSaveRecord
    If Me.Employee = Me.User Then
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.Refresh
    If Me.Employee = Me.User Then
    Ca change quelque chose ?

    Domi2
    Non ca ne change rien ; mais je ne vois pas comment l'enregsitrement s'actualiserait en mettant Me.Refresh sur mon bouton de commande supprimer ...

  13. #13
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Citation Envoyé par lucas-18 Voir le message
    Non ca ne change rien ; mais je ne vois pas comment l'enregsitrement s'actualiserait en mettant Me.Refresh sur mon bouton de commande supprimer ...
    La suppression intervient après, donc une actualisation est encore possible...

    Bon, j'ai fait des tests... Et je ne reproduis pas le problème...

    En forçant la sauvegarde de l'enregistrement, est-ce que l'événement Après Maj du formulaire se produit bien ? (Tu peux simplement afficher un petit message, par exemple).

    Domi2

  14. #14
    Débutant
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 482
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par Domi2 Voir le message
    La suppression intervient après, donc une actualisation est encore possible...

    Bon, j'ai fait des tests... Et je ne reproduis pas le problème...

    En forçant la sauvegarde de l'enregistrement, est-ce que l'événement Après Maj du formulaire se produit bien ? (Tu peux simplement afficher un petit message, par exemple).

    Domi2
    Pour voir si j'ai bien compris :

    Le Me.Refresh je le mets sur un évènement du sous-formulaire (comme par exemple OnCurrent) ?

  15. #15
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Citation Envoyé par lucas-18 Voir le message
    Pour voir si j'ai bien compris :

    Le Me.Refresh je le mets sur un évènement du sous-formulaire (comme par exemple OnCurrent) ?
    Je vais sortir la "12.7"...

    Avant, tu parles de formulaire en continu, et maintenant de sous-formulaire....

    C'est pas la même chose...

    Domi2

  16. #16
    Débutant
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 482
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par Domi2 Voir le message
    Je vais sortir la "12.7"...

    Avant, tu parles de formulaire en continu, et maintenant de sous-formulaire....

    C'est pas la même chose...

    Domi2
    Je me suis trompé c'est bien un formulaire en mode continu

  17. #17
    Débutant
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 482
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par Domi2 Voir le message
    Je vais sortir la "12.7"...

    Avant, tu parles de formulaire en continu, et maintenant de sous-formulaire....

    C'est pas la même chose...

    Domi2
    Bonjour Domi2 , tu as peu trouver qqch pour mon problème ???

Discussions similaires

  1. [AC-2007] Navigation entre enregistrements impossible sur un formulaire
    Par neiluj26 dans le forum IHM
    Réponses: 3
    Dernier message: 03/09/2010, 13h37
  2. Réponses: 2
    Dernier message: 18/11/2008, 15h49
  3. Enregistrement en cours d'un sous-formulaire
    Par marcb03 dans le forum IHM
    Réponses: 6
    Dernier message: 03/10/2007, 18h30
  4. Suppression enreg en cours impossible
    Par _developpeur_ dans le forum Access
    Réponses: 17
    Dernier message: 25/10/2005, 18h37
  5. Réponses: 2
    Dernier message: 11/10/2004, 00h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo