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

VBA Access Discussion :

[A-00] Suppression du message de confirmation de Windows


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Par défaut [A-00] Suppression du message de confirmation de Windows
    Bonsoir,

    J'exécute une commande par du code VBA permettant de mettre des fichiers à la corbeille.
    J'aimerais que le message de confirmation de Windows de placement des fichiers à la corbeille n'apparaisse pas.
    Je cherche une commande équivalente à "SetWarnings" donc ...

    Merci de votre aide.

  2. #2
    Membre Expert Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Par défaut
    Bonjour,

    La , encore la , toujours la

    Comment supprimer les messages d'alertes ?

    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Par défaut
    Merci Gabout,

    J'ai consulté la FAQ de long en large ... mais la commande "SetWarnings" ne permet pas d'éviter l'affichage des messages provenant de Windows, d'après le test que j'ai effectué.

    Le code suivant trouvé également sur la FAQ ne donne pas non plus de résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.DisplayAlerts = False
    Il s'agit bien ici d'un message généré par Windows qui demande confirmation de placement d'objets dans la corbeille.

    As-tu une autre suggestion ? Merci à toi

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Par défaut hum hum
    C'est quoi ta commande, dans quel contexte tu l'executes?

    Tu as pas un moyen de forcer la suppression définitive?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Par défaut
    Bonsoir,
    La commande vient d'un code trouvé sur la FAQ

    Comme spécifié, j'ai mis dans un module le code
    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
    35
    Option Compare Database
     
    Private Type SHFILEOPSTRUCT
       hwnd As Long
       wFunc As Long
       pFrom As String
       pTo As String
       fFlags As Long
       fAnyOperationsAborted As Long
       hNameMappings As Long
       lpszProgressTitle As String
    End Type
     
    Private Const FO_DELETE As Long = &H3
    Private Const FOF_ALLOWUNDO As Long = &H40
     
    Private Declare Function SHFileOperation Lib "Shell32.dll" Alias "SHFileOperationA" _
                                             (lpFileOp As SHFILEOPSTRUCT) As Long
     
    Public Function DansCorbeille(fichier As String, handle As Long) As Boolean
     
        Dim DelFileOp As SHFILEOPSTRUCT
        Dim Result As Long
     
        With DelFileOp
           .hwnd = handle
           .wFunc = FO_DELETE
           .pFrom = fichier & vbNullChar & vbNullChar
           .fFlags = FOF_ALLOWUNDO
        End With
     
        Result = SHFileOperation(DelFileOp)
        DansCorbeille = (Result = 0) And (DelFileOp.fAnyOperationsAborted = 0)
     
    End Function
    Et ensuite dans mon formulaire le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DoCmd.SetWarnings False
    'Vider le contenu du répertoire "Envoi" dans la corbeille
        Call DansCorbeille("c:\cmi\envoi\*.*", Me.hwnd)
    DoCmd.SetWarnings True
    "Nightfall" (l'auteur du code sur la FAQ) ajoutait :"La fonction DansCorbeille renvoie True si l'envoi du fichier dans la corbeille a été effectué. Ses paramètres sont le
    chemin complet du fichier et le handle de la fenêtre utilisé pour afficher les éventuelles boîtes de dialogue d'avertissement ou
    de demande de confirmation. Ce deuxième paramètre peut être une valeur nulle". Et j'imagine que c'est là qu'il y a une astuce pour éviter le message de confirmation d'envoi des données à la corbeille ...

  6. #6
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 134
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Le SetWarning ne pourra rien pour toi, ce n'est pas le même processus.
    Il te manque simplement une constante :
    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
    Public Sub SendToRecycleBin(ByVal FileName As String, ByVal ShowMessage As Boolean)
        '---------------------------------------------------------------------------
        ' Procedure     : SendToRecycleBin
        ' DateTime      : 12/10/2002 11:16
        ' Author        : jp.ambrosino
        ' Purpose       : Supprime un fichier dans la corbeille avec ou sans confirmation
        '...........................................................................
        ' Parameters    : Filename = Nom du fichier à supprimer dans la corbeille
        '                 ShowMessage = True si le message de confirmation apparaît
        ' Return Codes  :
         '---------------------------------------------------------------------------
        Const FO_DELETE                                    As Long = &H3
        Const FOF_ALLOWUNDO                                As Long = &H40
        Const FOF_NOCONFIRMATION                           As Long = &H10&
        Dim tshFOP                                         As SHFILEOPTSTRUCT
     
        With tshFOP
            .wFunc = FO_DELETE
            .pFrom = FileName
            .fFlags = IIf(ShowMessage, FOF_ALLOWUNDO, FOF_ALLOWUNDO Or FOF_NOCONFIRMATION)
        End With
        SHFileOperation tshFOP
    End Sub
    Argy
    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.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0

  7. #7
    Membre émérite Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 961
    Par défaut
    C'est peut-être une remarque à la con, mais j'appuie presque systématiquement sur la touche shift quand je supprime un fichier sous windows, ce qui a pour effet de le supprimer directement sans passer par la corbeille.
    Ne pourrait-on pas utiliser ce raccourci clavier pour ce cas ?
    Idée à l'arrache :
    Après, il faudrait le laisser pressé

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Par défaut
    Merci à tous pour votre collaboration et en particulier à Argyronet qui a vu juste !
    Il manquait bien la constante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Const FOF_NOCONFIRMATION As Long = &H10&
    Voici le code final qui fonctionne parfaitement :

    1) A mettre dans un module standard :
    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
    Option Compare Database
     
    Private Type SHFILEOPSTRUCT
       hwnd As Long
       wFunc As Long
       pFrom As String
       pTo As String
       fFlags As Long
       fAnyOperationsAborted As Long
       hNameMappings As Long
       lpszProgressTitle As String
    End Type
     
    Private Const FO_DELETE As Long = &H3
    Private Const FOF_ALLOWUNDO As Long = &H40
    Private Const FOF_NOCONFIRMATION As Long = &H10&
     
     
    Private Declare Function SHFileOperation Lib "Shell32.dll" Alias "SHFileOperationA" _
                                             (lpFileOp As SHFILEOPSTRUCT) As Long
     
    Public Sub SendToRecycleBin(ByVal FileName As String, ByVal ShowMessage As Boolean)
     
    'Si ShowMessage = false, le message de confirmation de suppression des données n'apparaît pas
     
        Dim tshFOP As SHFILEOPSTRUCT
     
        With tshFOP
            .wFunc = FO_DELETE
            .pFrom = FileName
            .fFlags = IIf(ShowMessage, FOF_ALLOWUNDO, FOF_ALLOWUNDO Or FOF_NOCONFIRMATION)
        End With
        SHFileOperation tshFOP
    End Sub
    2) Commande à appeler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Vider le contenu du répertoire "Envoi" dans la corbeille sans message de confirmation
        Call SendToRecycleBin("c:\cmi\envoi\*.*", False)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Message de confirmation avant suppression
    Par trax020 dans le forum JSF
    Réponses: 6
    Dernier message: 17/06/2007, 22h06
  2. Message de confirmation sur window.close()
    Par the java lover dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 19/09/2006, 15h33
  3. Afficher un message de confirmation avant suppression des messages
    Par JackBeauregard dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 18/08/2006, 13h17
  4. Requête SQL d'ajout, suppression du message de confirmation ?
    Par Jeff77 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 24/07/2006, 22h52
  5. Réponses: 2
    Dernier message: 03/08/2004, 16h24

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