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 :

Err. 3045, Currentdb() ==> Fichier en cours d'utilisation


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Retraité à 65 ans
    Inscrit en
    Juin 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité à 65 ans

    Informations forums :
    Inscription : Juin 2007
    Messages : 62
    Points : 62
    Points
    62
    Par défaut Err. 3045, Currentdb() ==> Fichier en cours d'utilisation
    Bonjour,

    NB : nouvelle discussion ? lire les raisons en fin de message, pour donner la priorité au problème, très souciante comme vous en conviendrez probablement.

    Je me sens complètement désemparé face à ce message :
    Impossible d'utiliser «ma-DB». Fichier en cours d'utilisation. (3045)
    qui survient lorsque le code associé à un bouton d'un formulaire tout simple arrive sur l'instruction "Set MyDB = CurrentDb". Voici mes dernières tentatives pour éviter cette erreur.

    J'ai donc créé une nouvelle DB "mini.mdb' dans la racine D:, avec 1 table ne contenant qu'un champ-clef, 1 formulaire sans source avec 1 bouton qui exécute ce 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
    Dim MyDB As Database
    Private Sub cmdMini_Click() '=================================
        On Error GoTo GestionErreurs
    Stop
        Set MyDB = CurrentDb
        Set MyDB = Nothing
     
    ExitHere:
        Exit Sub
     
    GestionErreurs:
        GestionErreur Err.Number, "cmdMini_Click"
        Resume ExitHere
    End Sub '===============================================
    Exécution ? OK.
    J'ai alors déplacé la base dans le répertoire où je travaille "D:\po2013\ProjetMSA". J'ai ouvert la base, l'ai activée pour éliminer la protection de Win8 après un déplacement de fichier, ouvert le formulaire et cliqué sur le bouton et Arghh, ERR 3045 a de nouveau frappé mes yeux effarés.
    Il est donc possible (who knows ?) que le problème soit lié aux accès aux fichiers et/ou aux dossiers :
    - mini.mdb : accès libre, la case Lecture seule n'est pas cochée. Partie Attributs avancés, 2 cases sont cochées : Le fichier est prêt à être archivé et Autoriser l'indexation du contenu de ce fichier en plus des propritéts de fichier.
    - dossier ProjetMSA : la case Lecture seule (s'applique uniquement aux fichiers du dossiers) est dans un état intermédiaire (petit carré noir à l'intérieur de la case) entre non-cochée (case blanche) et cochée (case blanche avec le V classique). J'ai décoché la case ainsi que celle du dossier supérieur po2013, ce qui donne un message avec e.a. une seule case cochée Appliquer les modifications à ce dossier, aux-sous-dossiers et aux fichiers sans possibilité de la décocher (et l'autre case n'est pas accessible) ; seule option : [OK].
    - racine D : 97,6 Go dont 14,6 utilisés ; je l'avais mise en Partagé alors que cela n'a pas lieu d'être, mais sait-on jamais ? Les Utilisateurs authentifiés, Utilisateurs, Administrateurs et Système ont un contrôle total. Difficile de faire plus ouvert. La gestion de quota n'est pas activée.
    Nouvelle exécution : même erreur et la case Lecture seule pour le dossier "ProjetMSA" est remis en stade intermédiaire à l'insu de mon plein gré ; j'ai lu sur un site de Microsoft que c'est sans impact sur les permission aux niveaux des fichiers.
    J'ai supprimé l'indexation au niveau de mini.mdb. Nouvel essai et toujours l'erreur.
    Où est-elle cette corde pour me pendre ? Non, je vais plutôt investiguer du côté de LibreOffice et en plus c'est gratuit et pas comme Office : des centaines d'euros et des années de pratique et d'expérience à la poubelle.
    Michel

    NB : Je crée une nouvelle discussion pour 2 raisons :
    - ma première discussion «Test de Sub dans un module : erreur 3045, Currentdb() ==> Fichier en cours d'utilisation» est trop limitative par son sujet car maintenant j'ai cette erreur quasi immédiatement et même dans une toute petite MDB toute neuve ;
    - j'y avais indiqué au sommet du 1er message que le problème était résolu en changeant les permissions sur le dossier. Ce n'est plus du tout exact, mais je ne peux modifier mon post en ce sens. Et tout lecteur du début passera ailleurs, bien compréhensiblement.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 351
    Points : 23 816
    Points
    23 816
    Par défaut
    Pas d'idée mais une piste.

    Essaye de typer ta base en ajoutant DAO. devant database.

    Normalement le code suivant :

    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 cmdMini_Click()  '=================================
        On Error GoTo GestionErreurs
        Dim MyDB As DAO.Database
        Set MyDB = CurrentDb
        debug.print MyDB.name
        Set MyDB = Nothing
     
    ExitHere:
        Exit Sub
     
    GestionErreurs:
        GestionErreur Err.Number, "cmdMini_Click"
        Resume ExitHere
    End Sub '===============================================
    Devrait s'exécutrer sans erreur.

    A+

  3. #3
    Membre du Club
    Homme Profil pro
    Retraité à 65 ans
    Inscrit en
    Juin 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité à 65 ans

    Informations forums :
    Inscription : Juin 2007
    Messages : 62
    Points : 62
    Points
    62
    Par défaut
    Bonjour marot_r,

    Merci pour la réponse et les suggestions. J'avais déjà utilisé la déclaration avec DAO avec la même erreur 3045 (voir mon autre discussion sur l'erreur 3045).
    J'ai utilisé tout votre code, dont la différence essentielle (outre DAO) est l'emplacement de la déclaration de MyDB. J'ai compilé sans erreur, exécuté et même erreur.

    A noter : après plusieurs jours de recherches sur plusieurs sites francophones ou anglophones, la seule méthode "workaround" (au détriment de l'environnement de développement et des performances) me permettant de continuer à développer pour l'ONG : reprendre mon PC de 2006 avec WinXP et Access 2003. Je n'ai pas cette erreur et tout fonctionne nickel mais elle reviendra probablement dès que je repasserai avec Win8/Access 2010, ce qui est inévitable. L'ONG utilise Access 2010 32 bits sous Win XP, je ferai un test prochainement.

    Mes dernières tentatives infructueuses :
    - "Emplacements approuvés" (Trusted Locations),
    - mode de compatibilité pour MSACCESS.EXE ==> propriétés, onglets "Compatibilité ==> Mode de compatibilité ==> "... pour tous les utilisateurs" : Vista (3 choix) et Win7 que je choisis. Nouvel essai : toujours l'erreur. J'ai annulé le mode compatibilité et dans le même onglet, j'ai coché "Exécuter ce programme en tant qu'administrateur". J'ai d'abord LA fenêtre d'autorisation de modifier des données sur mon ordinateur ? OK mais toujours l'erreur. Avec les 2 options Win7 ET Admin : pas mieux, j'annule le mode de compatibilité... Encore un espoir qui s'enfuit.

    Bonne journée, le soleil brille ici...

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/10/2016, 18h19
  2. [D7] Lire un fichier en cours d'utilisation
    Par bibi26 dans le forum Delphi
    Réponses: 3
    Dernier message: 05/07/2007, 10h00
  3. [DOM] Fichier en cours d'utilisation - Suppression impossible
    Par schniouf dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 15/12/2006, 13h58
  4. Fichier en cours d'utilisation
    Par kendras dans le forum C
    Réponses: 9
    Dernier message: 29/11/2006, 11h45
  5. [VB.NET] Comment acceder au fichier en cours d'utilisation ?
    Par Aspic dans le forum Windows Forms
    Réponses: 1
    Dernier message: 18/02/2006, 16h40

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