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

Access Discussion :

Application Access et reporting Excel (Accès concurrentiel)


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2010
    Messages : 32
    Points : 15
    Points
    15
    Par défaut Application Access et reporting Excel (Accès concurrentiel)
    Bonjour,

    J'ai des problèmes d'accès concurrentiel sur ma base Access et mes fichiers de reporting Excel et j'aimerai savoir si il existe une solution au problème.

    Quelques explications sur le fonctionnement de mon application Access et du pourquoi en ce qui concerne l'utilisation d'un reporting Excel.

    Voici le fonctionnement de mon application :

    Mon application Access se décompose en 3 fichiers Access:
    - Partie Data (les données de la base)
    - Partie Application (l'application avec des tables liés vers les données de la base Data)
    - Partie Administration

    J'ai mis en place ce système pour avoir un accès concurrentiel et donc multi-utilisateurs sur ma base de données Access (Data). Cela semble marcher correctement (j'ai pas encore tester à 200% et fait tous mes tests de robustesses, mais d'après les infos que j'ai cela semble être fiable).

    J'ai décidé de faire mon reporting (création des rapports : diagrammes, résultats, etc...) sous Excel. Vous allez peut être trouvé cette stratégie atypique, mais c'est pour moi un très bon moyen d'avoir une certaine flexibilité sur le reporting.

    En effet les utilisateurs de l'application voit leurs résultats tombés directement dans leur fichier Excel et peuvent en direct exploiter à leur manière ces résultats par des diagrammes ou autres tableaux. De plus ils peuvent "trafiquer" (dans le fichier Excel) les résultats sans modifier les valeurs réelles de la base de données Access. Pour finir, les utilisateurs ont l'habitude d'Excel pour le reporting et cela leur permet d'assurer de nouveaux types de reporting même si il n'y a aucun informaticien dans le service pour programmer un reporting Access (plus compliqué à mettre en oeuvre pour des non informaticiens d'après moi).

    Pour faire ce reporting Excel, j'utilise dans les fichiers Excel l'outil : "Données Externes" en faisant : "Importation des données" et je vais chercher ma requête en sélectionnant ma base access (La base Data) contenant mes requêtes construite à partir des données. Tout fonctionne très bien.

    Le problème arrive quand un utilisateur se trouve à la foi sur le fichier Excel de reporting où se trouve les requêtes de données (venant de la base Data) et dans l'application Access ( Partie Application ).

    Un certain nombre de bugs apparaissent aléatoirement :
    -Impossibilité de saisir des données dans l'application (on peut lire les données mais il ne propose plus dans les formulaires la dernière ligne qui sert à saisir).


    Je me demande pourquoi et si il est possible de contrer ce problème. Car je me dis que ça devrait fonctionner puisque le fichier Excel fait un accès temporaire vers la base de données (Partie Data) pour mettre à jour l'ensemble des requêtes et non un accès permanent. Il devrait donc bien laisser la main la majorité du temps à la Partie Application...



    Merci d'avance pour vos réponses et pour le temps consacré à me lire...

    Cordialement.

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 609
    Points
    58 609
    Billets dans le blog
    11
    Par défaut
    Salut,

    Une idée, pourquoi ne pas faire qu'Access pilote la création des fichiers Excel ?

    @+.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Un fichier Excel n'admet qu'une seule connexion externe, si tu l'ouvres tu as déjà une connexion, et donc ta base Access peine à y accéder.

    Philippe

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2010
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par zoom61 Voir le message
    Salut,

    Une idée, pourquoi ne pas faire qu'Access pilote la création des fichiers Excel ?

    @+.
    C'est une possibilité que je prévois en dernier recours uniquement.

    Ma méthode à l'avantage (d'après moi) :

    - de réaliser plus rapidement tous les différents reporting (c'est plus rapide de récupérer uniquement des données dans le fichier Excel qui lui gérera automatiquement la mise à jour des différents diagrammes et d'autres tableaux plutôt que de générer l'intégralité du reporting via Access : Tableaux, Diagrammes, Présentation, Forme du fichier, etc...)

    - de ne pas avoir une multiplication inutile des reporting : on a un seul fichier Excel pour un type de reporting, l'utilisateur va sur le fichier Excel et imprime son reporting. (Sans avoir besoin de passer par l'application Access qui elle créera un nième fichier du même type de reporting)

    - de garder les habitudes des utilisateurs

    - de bien dissocier l'application Access du Reporting Excel (Un utilisateur peut très bien avoir besoin d'utiliser un reporting sans connaitre l'existence de l'application Access et sans avoir eu la formation pour saisir les données via l'interface de l'application Access)

    Citation Envoyé par Philippe JOCHMANS Voir le message
    Bonjour

    Un fichier Excel n'admet qu'une seule connexion externe, si tu l'ouvres tu as déjà une connexion, et donc ta base Access peine à y accéder.

    Philippe
    Je pense que c'est l'inverse qui se passe en terme de connexion :

    C'est mon fichier Excel qui accède à une des connexions de la base Access DATA. La base Access n'accède jamais au fichier Excel pour récupérer une information ou autres.

    Je n'ai pas précisé une petite chose au niveau de mon fichier Excel :
    - Etape 1 : Je clique sur un bouton Excel de mon fichier Excel de reporting qui ouvre une fenêtre pour demander à rentrer une valeur pour un paramètre, ce paramètre est directement écrit dans la base de données Access : DATA (Il faut donc bien qu'Excel puisse avoir accès à la foi en lecture et écriture)
    - Etape 2 : Excel grâce à une macro VBA met à jour les requêtes "données externes" (du fichier excel) qui vont chercher les requêtes de la base Access DATA qui elles mêmes vont se servir du paramètre écrit précédemment en base DATA pour obtenir le bon résultat au niveau de la requête Access, qui retournera à son tour le résultat mis à jour dans le fichier Excel... (J'ai perdu personne?)

    Dans l'étape 1 on a : Excel qui fait un INSERT dans la base Access DATA
    Dans l'étape 2 on a : Excel qui fait un SELECT des requêtes dans la base Access DATA

    Dans aucuns cas la base Access n'accède au fichier Excel.

    Or ma base Access DATA est censé gérer plusieurs connexions si je ne me trompe pas ? Et même si elle ne le fait pas, ici je fais simplement un INSERT d'un paramètre, donc j'utilise la base DATA sur une durée très courte, le reste du temps ce sont uniquement des SELECT qui sont effectué sur la base DATA, et la encore ce traitement est fait très rapidement (en moins d'une seconde).

    De plus lors de l'INSERT, je ferme l'accès à la base DATA directement après l'INSERT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set Db = DAO.OpenDatabase(..., False, False)
    strSQL = "INSERT ..."
    Db.Execute (strSQL)
    Db.Close
    Et je suppose que la fonctionnalité "données externes" d'Excel doit fermer directement la connexion après avoir fait les SELECT.

    Donc pour moi: l'application Access qui utilise la base Access DATA ne devrait pas être bloqué par quelqu'un qui utilise le fichier Excel de reporting, où alors pas être bloqué plus d'une seconde (temps de l'INSERT et du SELECT)...

  5. #5
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 307
    Points : 42 703
    Points
    42 703
    Par défaut prob access-excel
    Bonjour,

    Excel ne laisserai pas la connexion avec la base ouverte ?
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  6. #6
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2010
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Je viens de voir que la commande VBA du fichier Excel de reporting:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Refresh des requête données externes
    ActiveWorkbook.RefreshAll
    que j’exécute lors de la mise à jour de la page, ne ferme pas la connexion vers Access, puisque je ne peux pas lancer deux fois de suite la mise à jour de la page (La deuxième fois : message d'erreur Base de données DATA déjà utilisé).

    Or cette commande met très pratique car elle actualise automatiquement les 20 différentes requête données externes de mon fichier Excel.

    Pour le moment je ne trouve pas le moyen de continuer à utiliser la commande ActiveWorkbook.RefreshAll et de ne pas bloquer la connexion.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2010
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Après de nombreuses recherches je n'ai pas trouvé de solution au problème.

    Mon problème vient peut être principalement du fait je ne connais pas le fonctionnement d'une base Access multiutilisateurs :

    1- Est-ce que le fait que la l'application + la base access soit multiutilisateurs résulte de la combinaison des deux parties (partie application + partie data) ou
    2- vient-elle de l'accès concurrentiel de la partie data ?

    A mon avis c'est la réponse 1, car quand j'essai justement de connecter mon fichier excel à la partie data, je vois bien qu'il bloque l'accès des différentes parties applications...

    Je suis donc toujours preneur de vos remarques et de votre aide.

Discussions similaires

  1. Application en relation avec EXCEL + ACCESS
    Par david71 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/08/2007, 20h09
  2. Accès concurrentiel BDD ACCESS sous BUILDER C++
    Par sfeltan dans le forum C++Builder
    Réponses: 3
    Dernier message: 05/04/2007, 13h16
  3. accès concurrentiel sous access
    Par louroulou dans le forum Access
    Réponses: 1
    Dernier message: 17/06/2006, 18h42
  4. [Access] Accès concurrentiels
    Par Benjamin GAGNEUX dans le forum Bases de données
    Réponses: 4
    Dernier message: 12/07/2004, 18h56
  5. Applications de reporting : Excel ou Access ?
    Par Aurelien38 dans le forum Access
    Réponses: 3
    Dernier message: 02/10/2003, 09h31

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