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 :

fichier ldb non supprimé


Sujet :

VBA Access

  1. #1
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut Timers indépendants d'arkham46 - fichier ldb non supprimé
    Bonjour,

    Je me suis rendu compte par hasard que j'avais des fichiers .ldb (frontale et dorsale) qui n'étaient parfois pas supprimés.

    Après de nombreuses vérifications de mon code de fermeture d'application, il semble (le conditionnel est de mise), que l'exécution du code sur clic d'un bouton ou par menu fonctionne à tout coup, les fichiers .ldb étant supprimés correctement.

    Par contre, si ce code est appelé au cours d'un processus utilisant des timers, tout le code s'exécute correctement, l'application ferme, mais les fichiers .ldb ne se suppriment pas !

    Quelqu'un aurait-il déjà rencontré ce problème ? Et l'a-t-il résolu ?

    J'ai fait un certain de recherches, mais sans succés

    Le code, mais je ne pense pas qu'il soit à incriminer :

    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
    'On Error Resume Next
     
        'Désactivation timer no 1
        DesactivationTimer1
     
        'Désactivation timer no 2
        DesactivationTimer2
     
        'Désactivation timer no 3
        DesactivationTimer3
     
        'Désactivation timer no 4
        DesactivationTimer4
     
        'Inhibe les messages d'erreurs
        DoCmd.SetWarnings False
     
        'Mise à jour du champ UtilisateurOrdinateur
        DoCmd.RunSQL ("UPDATE tblUtilisateurs SET tblUtilisateurs.UtilisateurOrdinateur = Null WHERE tblUtilisateurs.UtilisateurId= '" & UserName & "';")
     
        'Mise à jour du champ UtilisateurConnection
        DoCmd.RunSQL ("UPDATE tblUtilisateurs SET tblUtilisateurs.UtilisateurConnection = Null WHERE tblUtilisateurs.UtilisateurId= '" & UserName & "';")
     
        'Réactive les messages d'erreurs
        DoCmd.SetWarnings True
     
        'Ferme le formulaire frmLoc
        DoCmd.Close acForm, "frmMLoc"
     
        'Ferme le formulaire frmMenuGeneral
        DoCmd.Close acForm, "frmMenuGeneral"
     
        'Fermeture de l'application
        Application.Quit acQuitSaveAll
    Merci d'avance de votre aide.

    Domi2

  2. #2
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Par défaut
    Hi Domi2

    J'avais eu le problème lorsque je demandai le compactage à la fermeture.
    Je l'ai désactivé -> Problème terminé

    Jeannot
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  3. #3
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

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

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

    J'avais eu le problème lorsque je demandai le compactage à la fermeture.
    Hélas, pas mieux... Merci quand même...

    Cela semble bien lié à l'utilisation des timers.

    Quelque chose ou un processus ne se termine pas ou reste connecté, mais quoi ?

    Domi2

  4. #4
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

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

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

    Bon, alors j'ai fait des tests de déconnexion en utilisant 3 sortes de timers.

    1) Les timers VBA d'Arkham

    2) La MsgBoxEx, d'Arkham toujours

    3) La minuterie d'un formulaire

    Le problème ne se pose que lors de l'utilisation des timers VBA.

    Si quelqu'un à une idée

    Ou peut-être qu'Arkham pourra nous en dire plus...

    Excellent week-end.

    Domi2

  5. #5
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

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

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

    J'ai essayé diverses solutions, notamment de placer des DoEvents (mais je ne suis pas sûr de bien maîtiser).

    Sans résultat aucun, le problème persiste.

    Quelqu'un aurait-il une une autre idée ?

    Domi2

  6. #6
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    Salut,
    C'est pas simple cette histoire...
    Il faudrait demander un arrêt asynchrone de l'application pour laisser le traitement du timer se terminer avant de fermer l'appli.
    Seul problème avec l'envoi d'un message : il n'y a pas d'option acQuitSaveAll.
    On peut utiliser une message différent pour avoir ou ne pas avoir de demande de confirmation en cas d'objet non sauvegardé.

    En déclaration, ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" _
     (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal _
     lParam As Long) As Long
    Private Const WM_CLOSE = &H10
    Private Const WM_ENDSESSION = &H16
    Puis remplacer Application.Quit par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ' Arrêt avec confirmation si objet non sauvegardé (même arrêt que si on clique sur la croix de fermeture)
    PostMessage Application.hWndAccessApp, WM_CLOSE, 0, 0
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ' Arrêt sans confirmation et sans sauvegarde (même arrêt que si la session windows est fermée)
    PostMessage Application.hWndAccessApp, WM_ENDSESSION, 1, 1
    Apparement le fichier ldb est correctement supprimé.

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

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Bonjour Arkham,

    Je viens de tester les deux solutions...

    C'est parfait dans les deux cas, les fichiers .ldb sont bien supprimés...

    Ca m'aurait un peu chagriné de ne pouvoir utiliser tes timers pour ces déconnexions automatiques.

    Grand merci encore

    Domi2

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

Discussions similaires

  1. [11gR2] RMAN-08138 / Fichiers d'archivages non supprimés
    Par ecureuilmasque dans le forum Oracle
    Réponses: 8
    Dernier message: 03/01/2014, 19h29
  2. Avec la commande rm -f certains fichiers non supprimés! (noglob) ?
    Par alexmirage dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 02/10/2012, 11h15
  3. Rman Fichier obsolete non supprimé
    Par McM dans le forum Administration
    Réponses: 8
    Dernier message: 21/06/2011, 10h07
  4. [Fichier - LDB] N'arrive pas à supprimer.
    Par GarsDuCalvados dans le forum Access
    Réponses: 5
    Dernier message: 27/08/2009, 13h03

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