Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 7 sur 7
  1. #1
    Invité régulier
    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 : 5
    Points
    5

    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
    Responsable
    Libres & Open source

    Avatar de zoom61
    Homme Profil pro Vincent ...
    MOA/MOE & DWH
    Inscrit en
    janvier 2005
    Messages
    7 090
    Détails du profil
    Informations personnelles :
    Nom : Homme Vincent ...
    Âge : 41
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : MOA/MOE & DWH
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2005
    Messages : 7 090
    Points : 44 214
    Points
    44 214
    Billets dans le blog
    1

    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.

    Vous souhaitez participer à une des deux rubriques Logiciels Libres & Open source et/ou OpenOffice & LibreOffice ? Contactez-moi.

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


  3. #3
    Rédacteur/Modérateur

    Avatar de Philippe JOCHMANS
    Homme Profil pro Philippe JOCHMANS
    Développeur informatique
    Inscrit en
    mai 2005
    Messages
    19 132
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe JOCHMANS
    Âge : 46
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : mai 2005
    Messages : 19 132
    Points : 45 066
    Points
    45 066

    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
    Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
    Vous pouvez consulter mes articles sur Access et PowerPoint

    Si vous avez des c'est peut-être moi, car vous postez un fichier en pièce jointe sans explications.

  4. #4
    Invité régulier
    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 : 5
    Points
    5

    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 :
    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
    Expert Confirmé

    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 2 396
    Points : 3 773
    Points
    3 773

    Par défaut prob access-excel

    Bonjour,

    Excel ne laisserai pas la connexion avec la base ouverte ?

  6. #6
    Invité régulier
    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 : 5
    Points
    5

    Par défaut

    Je viens de voir que la commande VBA du fichier Excel de reporting:

    Code :
    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
    Invité régulier
    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 : 5
    Points
    5

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •