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 :

commande suppression fonctionne depuis un autre formulaire, bug dans le formulaire


Sujet :

IHM

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 41
    Points : 18
    Points
    18
    Par défaut commande suppression fonctionne depuis un autre formulaire, bug dans le formulaire
    j'ai trouvé la solution ici :
    http://jeannot45.developpez.com/arti...ingv2/#LIV-C-1

    cependant j'ai encore un petit bug :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Private Sub suppression_Click()
    ' Déclaration variable locale
        Dim strDeleteFinance As String
     
        ' Initialisation de la syntaxe SQL nécessaire à la suppression
        strDeleteFinance = "DELETE IDfinance, CA, [autres données relatives...] FROM Finance WHERE [ID projet] = " & [ID projet]
        strDeleteProjet = "DELETE [ID projet], [autres données relatives...] FROM PROJET WHERE [ID projet] = " & [ID projet]
     
        ' annule l'affichage des messages système
        DoCmd.SetWarnings False
     
        ' interrogation de l'utilisateur
        intReponse = MsgBox("Vous allez supprimer définitivement le projet " & nomProjet & "'" _
                            & vbCrLf & "Souhaitez-vous continuer ?", vbQuestion + vbYesNo, cstDVP)
     
        ' Traitement de la réponse de l'utilisateur
        ' Confirmation de la suppression
     
        If intReponse = vbYes Then
            ' Exécute la requete de suppression
            DoCmd.RunSQL strDeleteFinance
            DoCmd.RunSQL strDeleteProjet
     
        Else
            ' Annule la suppression des enregistrements
            MsgBox "La demande de suppression de projet a été annulée !", vbInformation, cstDVP
        End If
     
        ' Réactivation des messages système
        DoCmd.SetWarnings True
        Me.Refresh
     
    End Sub
    avec une relation multiple entre la table Finance et PROJET (une table PROJET peut avoir plusieurs tables Finance).

    IDfinance est la clef primaire de la table finance
    [ID projet] celle de la table projet (donc clef secondaire dans table finance)

    Cela fonctionne, mais quand le bouton est sur le formulaire PROJET avec un sous formulaire Finance, il faut que j'appuie deux fois sur le bouton supprimer (une première fois pour supprimer les données de la table Finance, une autre fois pour celles de PROJET)
    Cependant si je mets le bouton dans un autre formulaire, tout se fait en une fois...

  2. #2
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 41
    Points : 18
    Points
    18
    Par défaut
    en fait, dans le formulaire, il ne supprime le projet que si il y a des informations dans le sous formulaire. J'ai essayé ce code (en ajoutant un if) mais ça ne marche pas non plus :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Private Sub suppression_Click()
    ' Déclaration variable locale
        Dim strDeleteFinance As String
     
        ' Initialisation de la syntaxe SQL nécessaire à la suppression
        strDeleteFinance = "DELETE IDfinance, CA, [autres champs relatifs...] FROM Finance WHERE [ID projet] = " & [ID projet]
        strDeleteProjet = "DELETE [ID projet], nomProjet, [autres champs relatifs...] FROM PROJET WHERE [ID projet] = " & [ID projet]
     
        ' annule l'affichage des messages système
        DoCmd.SetWarnings False
     
        ' interrogation de l'utilisateur
        intReponse = MsgBox("Vous allez supprimer définitivement le projet " & nomProjet & "'" _
                            & vbCrLf & "Souhaitez-vous continuer ?", vbQuestion + vbYesNo, cstDVP)
     
        ' Traitement de la réponse de l'utilisateur
        ' Confirmation de la suppression
     
        If intReponse = vbYes Then
            ' Exécute la requete de suppression
        If IsNull(IDfinance) = False Or IsNull(CA) = False Or isNull([autres champs relatifs...]) = false Then
            DoCmd.RunSQL strDeleteFinance
        End If
            DoCmd.RunSQL strDeleteProjet
     
        Else
            ' Annule la suppression des enregistrements
            MsgBox "La demande de suppression de projet a été annulée !", vbInformation, cstDVP
        End If
     
        ' Réactivation des messages système
        DoCmd.SetWarnings True
     
    End Sub
    alors que quand je le fais à partir d'un autre formulaire, il n'y a pas de problème, projet et infos de la table Finance rattachés sont supprimés

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/07/2013, 07h18
  2. Réponses: 7
    Dernier message: 17/02/2012, 14h16
  3. Réponses: 3
    Dernier message: 19/05/2010, 12h32
  4. Réponses: 3
    Dernier message: 22/10/2008, 22h54
  5. Réponses: 5
    Dernier message: 13/04/2007, 10h13

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