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 :

Utilisation d'une base de donnée sous ACCESS en réseau


Sujet :

Access

  1. #1
    En attente de confirmation mail
    Homme Profil pro
    Ingénieur en électronique
    Inscrit en
    Novembre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur en électronique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 24
    Points : 20
    Points
    20
    Par défaut Utilisation d'une base de donnée sous ACCESS en réseau
    Objet :
    Je développe sous ACCESS 2000 une base de données pour gérer des rapports de pannes. Cette base de données sera ensuite mise sur le réseau pour être à disposition de différentes personnes. Chaque personne devrait pouvoir créer, modifier, ajouter supprimer des rapports de pannes.

    Préambule :
    J'ai lu un nombre conséquent de sujets sur le forum et dans les FAQ sans trouver des réponses précises aux questions que je me pose. Peut-être ai-je mal cherché. Si tel est le cas excusez moi. En retour j'accepte avec plaisir les liens qui me permettraient de répondre de façon précise aux questions présentées ci-dessous.

    Les questions que je me pose sont les suivantes :
    [list][*]Puis-je développer mon application sous ACCESS et l'utiliser dans un environnement multi-utilisateurs ?[*]Si oui :
    1. quelle solution adoptée pour être sûr dans un environnement multi-utilisateurs, que les clefs présentes dans mes différentes tables seront uniques et sans doublons?
    2. quelles sont les différentes précautions que je dois prendre lors de la conception de ma base de données pour un bon fonctionnement dans un environnement multi-utilisateurs ?
    3. comment gérer l'accès des personnes à la base de données ?
    [*]A quoi fait référence l'idée de transaction ? Comment puis-je mettre à profit cette idée dans mon cas ?[/list:o:d91ba13eff]
    Par avance merci

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 345
    Points : 23 805
    Points
    23 805
    Par défaut Re: Utilisation d'une base de donnée sous ACCESS en réseau
    Citation Envoyé par jppaysan
    [size=9]Objet :
    Préambule :
    Les questions que je me pose sont les suivantes :
    [list][*]Puis-je développer mon application sous ACCESS et l'utiliser dans un environnement multi-utilisateurs ?
    Oui mais avec quelques reserves !

    Voici mes hypothèse :
    - Une seule base de données contenant les données accessible à tous les utilisateurs.
    - N bases de données contenant le code, les requètes, les forms, etc ... copiée sur chaque poste utlisateur.
    - Pas plus de 5 accés simultanés à la base. C'est un nombre qui revient souvent quand on parle de performance d'Acces, j'ai personnelement eu environ 15 accès sans problème mais c'est à garder en tête comme une limitation de Access.

    [*]Si oui :
    1. quelle solution adoptée pour être sûr dans un environnement multi-utilisateurs, que les clefs présentes dans mes différentes tables seront uniques et sans doublons?
    1. Pas de problème, utilise des champs AutoNum et Access va s'occuper des details.

    2. quelles sont les différentes précautions que je dois prendre lors de la conception de ma base de données pour un bon fonctionnement dans un environnement multi-utilisateurs ?
    Voir hypothèses.
    Il faut aussi verifier la politique de vérrouillage d'enr de Access dans les options. Et tant que tu utilise des forms liés il n'y a pas de problème par contre si tu fais des traitements en code il te faut gérer les verouillages en utilisant des transactions.

  3. comment gérer l'accès des personnes à la base de données ?
Access vient avec un mechanisme de gestion de droits qui n'est pas des plus simple et efficasse. Il y a dans ce forum une discussion sur la sécurité que tu voudra surement consulter. Personnelement je n'utilise pas le mécanisme de Access mais les droits au niveau du réseau. Tout dépend de ton besoin en sécurité.

[*]A quoi fait référence l'idée de transaction ? Comment puis-je mettre à profit cette idée dans mon cas ?[/list:o:cb653dc729]
Une transaction, quelque soit la base de données, te permets de rendre atomique un cretain nombre de mises à jour sur ta base. Une transaction s'effectue complètement ou ne s'effectue pas du tout.

On l'emploi généralement lors de traitements qui ne doivent être interrompus sous aucun prétexte. Par exemple pour ajouter 15% à une liste de prix, il faut que cela se fasse et se fasse en une et une seule fois sinon tu risque d'augmenter seulement une partie de tes prix.

Un dernier consiel, plutôt que de redeveloper ta propre appli, regarde sur le marché si il n'existe pas un produit qui te convienne. C'est généralement plus rapide surtout dans un domaine comme la gestion de matériel.

Je pense notement a BugZilla qui est un gestionnaire de Bugs en code libre, donc gratuit, sachant q'entre un bug et une panne machine au niveau gestion il n'y a pas de difference. Ils ont tout deux un debut, des symptomes, des ressources allouées pour la 'réparation', etc ... et une fin.

A+
Vous voulez une réponse rapide et efficace à vos questions téchniques ?
Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  • #3
    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 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Salut,

    Puis-je développer mon application sous ACCESS et l'utiliser dans un environnement multi-utilisateurs ?
    Oui

    Quelle solution adoptée pour être sûr dans un environnement multi-utilisateurs, que les clefs présentes dans mes différentes tables seront uniques et sans doublons?
    Pour ma part, je crée deux fichiers, un fichier qui contient toutes les tables, et un fichier programme. Les deux fichiers sont au même endroit (je sais certains diront que cela n'est pas bien), mais pour ma part, je fais comme cela car les utilisateurs ne sont pas tout au même lieu, et je gagne du temps à faire la mise à jour du fichier programme (car cela leurs est masqué).

    Quelles sont les différentes précautions que je dois prendre lors de la conception de ma base de données pour un bon fonctionnement dans un environnement multi-utilisateurs ?
    Il faut savoir à peu près le nombre de connections simultanées maxi 15... Sinon tu risques avoir des problèmes de temps de réponses.

    comment gérer l'accès des personnes à la base de données ?
    A quoi fait référence l'idée de transaction ? Comment puis-je mettre à profit cette idée dans mon cas ?
    Leur mettre un raccourci clavier, et de créer des menus qui sont différents suivant les profils que les gens auront...

    J'espère t'avoir donné des idées pour résoudre ton problème...
    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

  • #4
    En attente de confirmation mail
    Homme Profil pro
    Ingénieur en électronique
    Inscrit en
    Novembre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur en électronique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 24
    Points : 20
    Points
    20
    Par défaut Utilisation d'une base de donnée sous ACCESS en réseau
    Tout d'abord merci pour les réponses.

    Citation Envoyé par marot_r
    Pas de problème, utilise des champs AutoNum et Access va s'occuper des details.
    J'ai besoin de fixer une valeur de départ et avec cette méthode c'est impossible. Donc je me retrouve à devoir le faire moi-même par une méthode que j'ai du mal à définir pour garantir l'unicité de chaque valeur de clef. Il y a bien la méthode qui consiste à utiliser une table des clefs mais celle-ci est associée avec une procédure SQL stockée. Or les procédures stockées sous ACCESS sont impossible à mettre en oeuvre; donc il me reste à réaliser la fonction en VBA mais est-ce que cela me garantit l'unicité des valeurs de chaque clef ? Je ne sais pas répondre.

    Citation Envoyé par marot_r
    ....par contre si tu fais des traitements en code il te faut gérer les verouillages en utilisant des transactions.
    Peux-tu m'en dire d'avantage sur les transactions?
    Comment peut-on les coder dans des procédures écrite en VB sous ACCESS?
    Est-il possible d'écrire dans du code VBA une transaction qui réalise les actions suivantes :
    • sélection d'un enregistrement dans une table,
    • copie de cet enregistrement dans une autre table
    • effacement du même enregistrement dans la table d'origine

    Comment mettre en oeuvre des transactions sur des tables qui ont une relation 1 à plusieurs ?
    Existe-t-il une instruction SQL que l'on peut insérer dans du code VBA et qui permet de verrouiller un enregistrement le temps de son utilisation par un opérateur ?

    D'avance merci.

  • #5
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    J'ai besoin de fixer une valeur de départ et avec cette méthode c'est impossible.
    C'est tout à fait possible, cf la FAQ et l'instruction SQL Counter

    Peux-tu m'en dire d'avantage sur les transactions?
    Tu n'as pas vraiment besoin de transaction ici. Les transactions sont plutot réservèes à des traitements par lot.

    Enfin, pour tout la programmation autour des données en VBA, je te recommande de lire ce cours sur DAO :

    http://warin.developpez.com/access/dao

    Bon courage

  • #6
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 345
    Points : 23 805
    Points
    23 805
    Par défaut Re: Utilisation d'une base de donnée sous ACCESS en réseau
    J'ai besoin de fixer une valeur de départ et avec cette méthode c'est impossible. Donc je me retrouve à devoir le faire moi-même par une méthode que j'ai du mal à définir pour garantir l'unicité de chaque valeur de clef. Il y a bien la méthode qui consiste à utiliser une table des clefs mais celle-ci est associée avec une procédure SQL stockée. Or les procédures stockées sous ACCESS sont impossible à mettre en oeuvre; donc il me reste à réaliser la fonction en VBA mais est-ce que cela me garantit l'unicité des valeurs de chaque clef ? Je ne sais pas répondre.
    Le plus simple alors est d'utiliser la date et l'heure système au centième de seconde. Attention tout de même 1/100 de seconde pour un ordinateur c'est ENORME ! Un PC à 1GHz fait 1 milliard d'oppérations à la seconde.

    Peux-tu m'en dire d'avantage sur les transactions?
    Comment peut-on les coder dans des procédures écrite en VB sous ACCESS?
    Est-il possible d'écrire dans du code VBA une transaction qui réalise les actions suivantes :
    • sélection d'un enregistrement dans une table,
    • copie de cet enregistrement dans une autre table
    • effacement du même enregistrement dans la table d'origine

    Comment mettre en oeuvre des transactions sur des tables qui ont une relation 1 à plusieurs ?
    Existe-t-il une instruction SQL que l'on peut insérer dans du code VBA et qui permet de verrouiller un enregistrement le temps de son utilisation par un opérateur ?
    Vois les transactions comme des parenthèses dans un calcul. Tu ouvres ta transaction, tu fais tout ce que tu as a faire, tu ferme ta transaction. Access s'occupe de la plomberie soujacente (verouillage, memorisation des infox, etc..)

    Les transactions sont reliées à l'objet Workspace, il y a un bon exemple de cela dans l'aide.

    Pour le SQL dans le code la réponse est Oui mais j'y suis personnelement alergique. Je ne vois que de très rare cas où je devrais me passer de la sécurité et du confort de l'éditeur de requète d'Access. Avec le SQL dans le code tu n'as aucun controle de la syntaxe avant l'execution et c'est plus difficile de vérifier les résultats.

    Une instruction SQL est une transaction en elle même, c'est le moteur de la base qui s'occupe de cela. Les transactions sont seulement nécessaires dans du code VBA.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  • + Répondre à la discussion
    ActualitésF.A.Q AccessF.A.Q VBATutoriels AccessSourcesOutilsLivresAccess TVOffice 2010

    Discussions similaires

    1. Réponses: 6
      Dernier message: 21/06/2015, 15h39
    2. Réponses: 20
      Dernier message: 11/04/2013, 09h27
    3. [AC-2007] importer des données à partir d'une base de données sous access
      Par skipeemed dans le forum Access
      Réponses: 1
      Dernier message: 29/09/2010, 15h08
    4. securiser une base de donnée sous access 97
      Par mome67 dans le forum Sécurité
      Réponses: 2
      Dernier message: 10/08/2007, 21h38
    5. Réponses: 1
      Dernier message: 17/05/2006, 15h27

    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