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

VB.NET Discussion :

Partageons une base access


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 261
    Par défaut Partageons une base access
    Bonjour à tous,

    J'ai regardé à droite et à gauche, consultés des dizaines de topics concernant le partage d'une base access par plusieurs personnes, lu des articles comme celui-ci :
    https://support.office.com/fr-fr/art...2b54db252c#bm3
    etc...

    Mais n'arrive toujours pas à me décider.
    J'ai une configuration ou je ne peux pas faire autre chose que mettre une base access sur un disque réseau ou chaque personne se connecte avec une application VbNet pour se connecter et charger les bdd dans des datagridviews.
    Ces bases access sont en mode partagés. Le soucis que je rencontre est que si un utilisateur fait une modif, qu'un autre en fasse une autre, je reçois des erreurs d'index car entre temps la base a du changer entre son premier téléchargement dans les datagridviews et lorsqu'il essaie de faire ensuite une saisie, modification ou suppression via son Form.
    Suffit qu'il veuille modifier une ligne qu'il voit dans son tableau et qu'entre temps un autre utilisateur depuis un autre poste l'aurait supprimé de la BDD .

    J'ai un bouton rafraichir qui recharge les données mais c'est trop long car il recharge tous les tableaux de plusieurs bdd.

    J'ai lu des trucs sur des notification dans les bindings, etc .... Mais j'aimerais trouvé un truc léger qui permettrait de savoir si des changements ont eu lieu par rapport au dernier chargement des données que l'utilisateur aurait fait.
    J'ai pensé à comparer les dates de modifications des bdd. Je me posais la question s'il existe un truc que je pourrais intégrer que dès lorsque l'utilisateur veuille faire une saisie/modif/suppression, il puisse disposer des derniers données ....

    Merci d'avance pour vos remarques et suggestions

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    J'avais préparé ça mais je vois que tu y a pensé!

    http://www.developpez.net/forums/d14...t/#post8029576

    Je suppose que tes tables son lié à ton control datagrid ou autre?

    Si ce n'est pas le cas il faut faire une requête de vérification avant la mise à jour.

    Si tes enregistrement était verrouillés alors qu'il sont utilisés par qq un autre te ne n'aurais pas ce problème!

    Regardes quand même le lien que je viens de te donner!

    Verrouiller les enregistrements modifiés

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 261
    Par défaut
    Hello,

    Pour répondre à ta question, j'explique ici comment j'ai lié ma BDD à mon Datagridview :
    http://www.developpez.net/forums/d15...w/#post8623235

    Je vais aller jeter un oeil à ton lien et te ferais savoir

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 261
    Par défaut
    Re,

    Ma base est en mode partagée. Les autres utilisateurs n'ont pas access d'installé et ils se connectent en utilisant mon application.
    Le lien que tu m'as donné est lorsque plusieurs personnes modifient la même ligne. Même si je un peu de mal à comprendre les variantes de verrouillage.

    Moi sans çà j'ai des soucis de d'affichages des données les plus récents. Je m'explique par un exemple :

    Utilisateur 1 se connecte et son Tableau Datagridview se remplit avec les données.
    Utilisateur 2 se connecte et son Tableau Datagridview se remplit avec les données.

    Utilisateur 1 supprime une ligne et la BDD se met à jour et son Tableau Datagridview est à jour
    Utilisateur 2 ne voit pas le changement dans son Tableau.... Il décide de supprimer la même ligne et là erreur lorsqu'il valide car elle n'existe déjà plus dans la BDD

    Même exemple mais Utilisateur 2 ajoute ou modifie une ligne. Comme Utilisateur 1 avait supprimé une ligne, l'index a changé et pour Utilisateur 2, l'application n'arrive pas à modifier ou ajouter dans la BDD car sa "composition a changée" entre temps ....

    Edit : J'ai le fichier .ldb qui apparait quand un utilisateur ouvre la base si çà peut te servir comme info

  5. #5
    Invité
    Invité(e)
    Par défaut
    Il faut que dans ton application tu décale une variable qui passe à True quand tu modifies la valeur du datagrid et repasse à false quand l'opération Update est effective.

    Tant que cette variable est à false un timer vient réactualise ta datagrid !

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 261
    Par défaut
    Je déclare une variable --> OK je vois
    Elle prend un statut en fonction de si je change quelque chose ou pas --> OK je vois
    Mettre en place un Timer --> OK je vois

    Pour l'instant, concernant mon application, elle est installée sur chaque PC. Ce fichier d'installation est mis sur le serveur. Lors de l'installation sur le PC hôte, je crée un dossier, met dedans le .exe et les dll que j'ai besoin. C'est tout.
    A chaque lancement, l'application va vérifier si une nouvelle version est disponible sur le serveur.

    J'avais essayé de faire un rafraîchissement automatique à intervalle régulier mais c'est trop long ...
    Car à chaque fois, je recharge la BDD complète et je filtre le binding... pour n'afficher que ce que je veux.
    J'ai environ 6 tableaux différents reliés à 6 BDD différentes ....

    Je ne sais pas comment faire pour éventuellement ne recharger que ce qui a changé et non tout. Peut-être je gagnerais du temps . Peut-être pas....
    Comment ma variable de Utilisateur 1 pourrait interagir sur Utilisateur 2 pour qu'il sache éventuellement par un message qu'il doit rafraîchir ses données ?

Discussions similaires

  1. Problème de connexion à une base access
    Par caco19 dans le forum ASP
    Réponses: 4
    Dernier message: 13/08/2004, 16h19
  2. Compacter et réparer une base Access
    Par UPNE387 dans le forum Bases de données
    Réponses: 7
    Dernier message: 25/06/2004, 14h12
  3. [MFC] Comment créer et utiliser une base Access
    Par maitre hibou dans le forum MFC
    Réponses: 3
    Dernier message: 10/05/2004, 18h11
  4. bug dans une base Access
    Par bizouard dans le forum Access
    Réponses: 5
    Dernier message: 29/12/2003, 12h41
  5. [ODBC] Intranet en PHP : Lister les tables d'une base Access
    Par fblouet dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 28/10/2003, 14h46

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