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

Outils PostgreSQL Discussion :

Conflit d'écriture, Outil PostGres - Geoconcept - Access


Sujet :

Outils PostgreSQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Décembre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2016
    Messages : 18
    Points : 17
    Points
    17
    Par défaut Conflit d'écriture, Outil PostGres - Geoconcept - Access
    Bonsoir,

    J'ai un nouveau soucis lié à Access et Postgres.
    En effet, pour un projet, j'ai lié sur une base postgres : une interface access, dédiée au suivi du projet et une interface geoconcept (un SIG : logiciel de cartographie).
    Le principe et les liaisons marchent bien.

    J'ai un soucis sur la mise à jour manuelle d'enregistrements depuis l'interface access. Que ce soit directement sur la table, ou depuis un formulaire, j'ai un message d'erreur qui m'empêche de mettre à jour certains enregistrements.
    Nom : Conflit d'écriture.jpg
Affichages : 497
Taille : 35,1 Ko

    Je ne comprends pas d'où vient ce soucis. Surtout qu'il apparaît même lorsque je suis seul sur la base.
    Il apparaît que sur certains enregistrements (pas sur tous, mais la majorité) que je modifie depuis access. Pas sur toutes les tables.
    Je n'ai pas de soucis pour modifier les valeurs depuis postgres.

    Bref, je ne comprends pas bien le message d'access...

    Merci d'avance pour votre aide,

    Patrick

  2. #2
    Membre à l'essai
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Décembre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2016
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Pour compléter,

    Sur d'autres sujets qui ressemblent à mon problème, j'ai lu que plusieurs personnes proposaient, dans différentes situations, de rajouter un champ de type timestamp.

    J'ai donc ajouté un champ dans la base postgres de type "timestamp with time zone"
    Nom : Ajouter une colonne....jpg
Affichages : 346
Taille : 35,3 Ko

    J'ai refait le lien dans mon interface access et le problème persiste.

    Si quelqu'un a des infos, je suis vraiment preneur !! C'est très paralysant et je ne plus quoi faire pour trouver une solution.

    Bonne journée,

    Patrick

  3. #3
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    J'ai remarqué ce comportement sur des vues ayant un trigger INSTEAD OF et retournant NULL au lieu de NEW ou OLD.
    Il faut donc voir de ce coté.
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Décembre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2016
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Salut,

    Merci pour la réponse.
    Je pense avoir isolé le problème qui cause ce conflit d'écriture. Il est dans mes modules vba.
    En effet, pour pouvoir modifier des enregistrements depuis access par vba, je dois ouvrir une connexion. Voici un bout du code concerné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    Public Const connection_postgres_str As String = _
        "DSN=PostgresCEM;" & _
        "UID=postgres;" & _
        "PWD=Infracom21;" & _
        "Database=CEM"
     
     
    Sub Import
     
    Dim connection_postgres As ADODB.Connection
    Set connection_postgres = New ADODB.Connection
    connection_postgres.Open connection_postgres_str
     
    Dim rec as recordset
    Set rec …
    rec.edit
    ‘ppp
    rec.update
     
    connection_postgres.Close
    Set connection_postgres = Nothing
     
    End sub
    Le problème vient a priori d'ici, mais je ne sais pas comment le résoudre.
    J'ai l'impression que la connexion reste ouverte d'où le conflit d'écriture.
    Je me suis dit que par exemple, lorsque la procédure ne s'achève pas, cette connexion n'est jamais fermée.

    Pensez vous que cette raison soit crédible ?
    Si oui, comment gérez vous ces connexions pour éviter ces conflits ?

    Merci d'avance,

    Patrick

  5. #5
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Avec ...
    Citation Envoyé par PatrickLC Voir le message
    ...Voici un bout du code concerné...
    Citation Envoyé par PatrickLC Voir le message
    ...Le problème vient a priori d'ici...
    tu trouve qu'une aide est possible
    Par ailleurs tu n'a donné aucune suite à ma suggestion.
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  6. #6
    Membre à l'essai
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Décembre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2016
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Salut,

    Est-ce qu'une aide est possible ?
    Je ne sais pas, j'espère !

    Pour ne pas avoir répondu ;
    a priori, ta réponse ne m'aidait pas, mais comme je n'en étais pas convaincu, j'ai préféré ne rien dire.
    Merci d'avoir proposé quelque chose.

    Aujourd'hui, j'ai isolé l'élément qui faisait que la table sur access considérait que la table était en cours de modification.
    Et c'est je pense à cause de la connexion ouverte par le module vba qui est mal fermée.
    Je ne sais pas comment gérer proprement ces connections. Par exemple, si la procédure rencontre une erreur, la connexion n'est pas close.

    Patrick

  7. #7
    Membre à l'essai
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Décembre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2016
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Le problème persiste, je vais essayer de l'expliquer différemment :


    J'ai créé une application avec Access liée à une base de données postgres.
    Depuis Access, je travaille beaucoup avec vba. Quand je veux modifier une donnée, il faut donc que j'ouvre un connexion vers la base de données.
    La procédure contient une ligne pour fermer cette connexion ensuite à chaque fois.

    Quand les procédures se passent bien, il n'y a pas de soucis sur le fonctionnement de la base de données et la modification des données depuis access.

    Par contre, de temps en temps, il y a une erreur dans une procédure qui du coup empêche de fermer la connexion ensuite.
    Dans ces cas là, quelque chose quelque part considère que la table est à partir de ce moment en cours de modification par quelqu'un d'autre. Ce qui créé un conflit d'écriture.

    Je peux redémarrer mon PC, compacter l'interface access, la redémarrer, refaire les liens ODBC vers les tables, le conflit d'écriture persiste, ...
    En revanche, je peux toujours modifier les données depuis PGadmin.

    Je suppose que le problème vient que la connexion est mal fermée, et que c'est pour cette raison qu'access comprend que les enregistrements sont en lecture seule.
    Savez-vous comment traiter ce problème ?
    Y a t'il un moyen de fermer toutes les connexions ODBC ouvertes vers une base de données depuis pgadmin ?

    Merci d'avance,

    Patrick

  8. #8
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Citation Envoyé par PatrickLC Voir le message
    ...
    Je peux redémarrer mon PC, compacter l'interface access, la redémarrer,...
    à cet instant il n'y a plus de connexion ouverte depuis access!
    Citation Envoyé par PatrickLC Voir le message
    ...En revanche, je peux toujours modifier les données depuis PGadmin.
    preuve qu'il n'y a pas de verrou sur les lignes en question.
    Question, ton formulaire est-il indépendant, c'est à dire non lié à une table ou requête?
    Si tu veux une aide sur un code IL FAUT LA DONNER EN ENTIER et préciser les lignes qui posent problème.
    Je soupçonne un code VBA fourni par un expert, permettant de capter les erreurs ODBC puisque les tables liées ne fournissent pas de précision sur ces erreurs J'ai une fois vu le code mais je ne l'ai pas utilisé car cela complexifie les choses.
    le code détourne par ADO l'opération d'insertion ou de mise à jour du formulaire dépendant et actualise le formulaire sinon récupère les erreurs rencontrées
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  9. #9
    Membre à l'essai
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Décembre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2016
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Mon problème semble résolu.

    Le problème ne venait pas du formulaire, car il était aussi présent quand je modifiais les infos depuis la table sur Access.

    Après avoir fait une recherche documentaire et plusieurs tests, ce pas le fait d'ouvrir et fermer la connexion qui pose problème. Un test a été particulièrement parlant : en coupant toutes les connexions avec une requête dans Postgresql, le problème persistait.
    J'ai d'abord modifié mon code vba pour qu'il ne modifie plus le recordset, mais pour qu'il transmette une requête sql à Postgresql. Les modifications se faisaient correctement, mais je ne pouvais toujours pas modifier les valeurs de ma table principale depuis Access.

    Bref, pour résoudre le problème j'ai coché l'option OID option/Show column. Mais dès que quelqu'un ouvre la base avec une connexion paramétrée dans cette option, le problème réapparait pour tout le monde.

    Pour pallier à cette éventualité, j'ai configuré la connexion dans un fichier que j'ai mis sur le serveur. Ainsi, les gens n'auront qu'à copier le fichier sans avoir à paramétrer de connexion.

    Bon week end,

    Patrick

  10. #10
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Juste une question: la table dans PostgreSQL a-t-elle une clé primaire?
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  11. #11
    Membre à l'essai
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Décembre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2016
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Oui, la table concernée (la table principale) en a une.

    Mais étrangement, j'ai une dizaine de tables sur mon projet, dont 2 sans clé primaire, et seule la table principale était concernée par le problème.

    Je ne sais pas du tout expliquer ce phénomène.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Barre d'outils en VBA Access 2003
    Par lulu Co dans le forum VBA Access
    Réponses: 7
    Dernier message: 17/10/2008, 12h08
  2. Outils de dev Access ?
    Par ybabel dans le forum Sondages et Débats
    Réponses: 3
    Dernier message: 06/12/2007, 16h20
  3. Réponses: 1
    Dernier message: 24/04/2007, 13h25

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