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 :

Fermer une base externe


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Par défaut Fermer une base externe
    Bonsoir.
    Dans mon application, j'utilise des bases externes qui sont référencées.
    Elles s'ouvrent donc au lancement de l'application.

    En cours de travail, il doit y avoir possibilité de supprimer la référence d'une de ces bases externes, ce qui se fait bien par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each ref In Application.References
        If ref.Name = abrev Then
          References.Remove ref
        End If
      Next
    mais la base en question reste ouverte (le fichier base.ldb est toujours présent dans le répertoire).
    Ce n'est pas bien gênant, quand il n'y en a qu'un, mais j'aimerais pouvoir fermer la base pour assainir la situation.

    Comment fermer cette base en VBA ?
    Amitiés

  2. #2
    Membre éclairé Avatar de zibi7
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 72
    Par défaut
    Bonjour,
    Rentre-il dans la boucle ? car si non ça pourrait être la condition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For Each ref In Application.References
        If ref.Name = "abrev" Then
          References.Remove ref
        End If
      Next
    sinon j'ai trouvée ça dans l'aide de vba:
    Remove, méthode:
    object.Remove(component)

    object Expression d'objet qui prend la valeur d'un objet figurant dans la rubrique "Application".
    component Pour la collection LinkedWindows, un objet. Pour la collection References, une référence à une bibliothèque de types ou à un projet. Pour la collection VBComponents, une constante énumérée représentant un module de classe, une feuille ou un module standard. Pour la collection VBProjects, un projet autonome.

    en espérant que ça va t'aider

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Par défaut
    Merci zibi7,
    La piste que tu signales efface la référence, mais ne ferme pas la base.Je cherche.

    Merci
    amitiés

  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,

    Je suis un peu perplexe...

    Si ton application utilise d'autres bases Access comme "bibliothèque", pourquoi vouloir les fermer en cours d'utilisation ?

    Une explication serait sans doute bienvenue.

    Domi2

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Par défaut
    @Domi2
    Bonjour,
    Je souhaite fermer les bases bibliothèques qui ne sont plus référencées simplement pour nettoyer l'environnement.

    Elles peuvent évidemment rester ouvertes, ce n'est pas catastrophique, mais c'est inutile.
    La fermeture de l'application les fermera.
    Amitiés

  6. #6
    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,

    La fermeture de l'application les fermera
    Ben oui... Et ce que tes utilisateurs sont "perturbés" par les fichiers .ldb (pour autant qu'ils regardent dans le gestionnaire de fichiers ?

    Je n'ai pas d'autre solution qu'un bon "Kill" après avoir supprimé la référence.

    Domi2

Discussions similaires

  1. Fermer une base externe
    Par jneron dans le forum VBA Access
    Réponses: 3
    Dernier message: 28/08/2009, 15h40
  2. Fermer une application externe
    Par jean tof dans le forum C++Builder
    Réponses: 2
    Dernier message: 02/05/2006, 16h18
  3. fermer une base si pas d'activite
    Par jph86 dans le forum Access
    Réponses: 25
    Dernier message: 20/03/2006, 20h33
  4. Attaquer une base externe à partir d'un trigger SQL Server
    Par stephpr44 dans le forum Développement
    Réponses: 5
    Dernier message: 29/10/2005, 15h40
  5. Impossible de fermer une base de données en lecture
    Par requiemforadream dans le forum ASP
    Réponses: 7
    Dernier message: 21/04/2005, 16h58

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