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

Modélisation Discussion :

Problème utilisation liaison Mysql ODBC ACCESS 2007 Conflit d'ecriture


Sujet :

Modélisation

  1. #1
    Membre habitué Avatar de B_SKO
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 95
    Points : 125
    Points
    125
    Par défaut Problème utilisation liaison Mysql ODBC ACCESS 2007 Conflit d'ecriture
    Bonsoir,

    Je démarre l'écriture d'un application Access 2007 / My SQL ODBC 5.1 Driver / MySQL mysqlnd 5.0.5-dev

    J'ai super souvent des conflits d'écriture en particulier quand je mets à jours des données.
    J'ai solutionné une partie des problèmes en ajoutant des champs timestamp à chaque table mais il en reste...
    J'ai essaye avec des objets DAO ou directement des "Docmd.runsql" idem

    Par exemple dans ce code je ne peux pas mettre le champ Timestamp donc problème !

    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sql = "UPDATE encarts SET encarts.PrixVente=12"
    Sql = Sql & " WHERE (((encarts.Num_Encart) = """ & NumEncart & """))"
    DoCmd.RunSQL Sql

    Je pense avoir un problème de fond dans mon application et pas seulement sur mon exemple.

    Merci de votre aide.

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour,

    Je n'ai jamais expérimenté de connexion Access /MySQL ... mais je serai toi, j'éviterai la commande DOcmd.RunSQL...

    Dans le monde DAO, il vaut mieux je pense utiliser la commande Execute.
    Par exemple, dans le cas d'un objet database:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaDatabase.execute "UPDATE..." ,dbFailOnError

    Cela étant, dans ce cas (comme pour le RunSQL) tu fais travailler le moteur Access et non directement celui de ton MySQL...
    Dans ce cas il vaut mieux passer par:
    • des procédures stockées (je suppose que cela existe maintenant dans MySQL),
    • des requêtes SQL Direct (requêtes écrites dans Access mais envoyées telles qu'elles sont à ton serveur SQL)
    • des objets ADODB.Command




    PS: il s'agit de remarques qui me viennent à l'esprit en lisant ton message, sans espérer que cela puisse être la cause de tes soucis.
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  3. #3
    Membre habitué Avatar de B_SKO
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 95
    Points : 125
    Points
    125
    Par défaut
    Bonsoir,

    Merci pour le début de réponse qui m'aideront plus tard je pense...

    J'ai toujours le problème après plus de recherche le problème doit être vraiment dans la liaison car même en ouvrant directement la table sous access j'ai le pb mais uniquement quand je modifie en champ puis en remettant la même valeur.

    exemple voir l'images j'ai effectué et remis le 18 puis ...

    Nom : Capture.JPG
Affichages : 537
Taille : 51,6 Ko

    Merci de votre temps.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 65
    Points : 55
    Points
    55
    Par défaut
    A tu essayer le verrouillage? option-> avancé-> avancé (tout en bas) -> verrouillage par défaut. Essayer de le changer pour voir ce que ça donne.

  5. #5
    Membre habitué Avatar de B_SKO
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 95
    Points : 125
    Points
    125
    Par défaut
    J'ai testé les 3 verrouillage pas de changement

    Merci pour la piste

  6. #6
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Bonjour,
    J'avais un problème semblable entre Acc2003 et SQL Server 2005, j'ai trouvé la solution dans ce lien : http://support.microsoft.com/kb/278696/EN-US/

    Si ça peut aider ...
    "Always look at the bright side of life." Monty Python.

  7. #7
    Membre habitué Avatar de B_SKO
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 95
    Points : 125
    Points
    125
    Par défaut Conflit d'écriture access / serveur SQL
    Merci mais Je suis toujours bloqué j'ai fait un test simple avec une nouvelle table de base voir image.
    J'ai pris mes recommandation sur le pb trouvé : Champ TimeStamp ...
    Toujours pareil sur la modif d'un champ 30 par 30 dans exemple.

    Help !

    Nom : Capture2.JPG
Affichages : 488
Taille : 106,6 Ko

  8. #8
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    En effet ton pb est different du mien :dans les colonnes de la table, j'avais un booleen (de type Bit) qui était null pour certaines lignes et cela suffisait à générer systématiquement ces messages.

    Je suppose que tu as bien des clés primaires sur chaque table ...

    A+
    "Always look at the bright side of life." Monty Python.

  9. #9
    Membre habitué Avatar de B_SKO
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 95
    Points : 125
    Points
    125
    Par défaut
    Oui clés primaire sur chaque tables et Time stamp aussi

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 65
    Points : 55
    Points
    55
    Par défaut
    C'est toujours le dernier enregistrement de table que tu arrive pas à changer? les autres enregistrement ne pose pas de problèmes?

  11. #11
    Membre habitué Avatar de B_SKO
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 95
    Points : 125
    Points
    125
    Par défaut
    Non tous les enregistrement sont concernées

  12. #12
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour,

    Vu le comportement, je chercherai plutôt du coté du driver ODBC.
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  13. #13
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Autre piste, as-tu essayé avec le type DbSeeChanges :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaDB.execute "UPDATE..." ,DbSeeChanges
    "Always look at the bright side of life." Monty Python.

  14. #14
    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 : 40
    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
    Ne serait ce pas le OnUpdateCurrentTimeStamp du champ TS qui poserait un problème et agirait un peu comme un trigger ?

  15. #15
    Membre habitué Avatar de B_SKO
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 95
    Points : 125
    Points
    125
    Par défaut
    Merci à vous des propositions.
    J'ai le même problème sans champ Timestamp
    J'ai rechargé ODBC en version 64 bit pour mon Win 7 mais toujours pareil.

    "dbSeeChanges" Effectivement avec ce paramètre pas d'erreur
    MArche :
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Sql As String
          Dim MaDB As DAO.Database
          Set MaDB = CurrentDb
          Sql = "UPDATE test SET test.Val = 10"
          Sql = Sql & " WHERE (((test.Num)=21));"
          MaDB.Execute Sql, dbSeeChanges

    Mais sans l'option ça marche aussi :
    Marche

    Par contre dans le même programme :
    Plante :


    Donc Ok pour la partie traitement des données dans VBA mais pour l'accès directement dans des formulaires comment faire ?

  16. #16
    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 : 40
    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
    Attention, il ne faut pas oublier le dbFailOnError faute de quoi tu ne seras plus en mesure de recevoir les éventuelles erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaDB.Execute Sql, dbFailOnerror
    Est ce que ça fonctionne toujours ?

    Aussi, peux tu créer une table sur le serveur MySQL avec deux champs de type Integer, sans clé primaire, sans index, sans extra et sans auto increment.

    Est ce que sur cette table, le fonctionnement est correct ? Si oui, ajoute les fonctionnalités une par une jusqu'à ce que ça bloque. Si non, il ya un problème au niveau du lien ODBC, et dans la mesure où mysql avec Access c'est plutot déconseillé, tu risques d'être bloqué

  17. #17
    Membre habitué Avatar de B_SKO
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 95
    Points : 125
    Points
    125
    Par défaut
    Oui avec :

    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    MaDB.Execute Sql, dbFailOnerror
    ça fonctionne toujours

    Avec la table test et les 2 INT j'ai toujours le même problème.
    Que conseil tu comme autres bases que MySQL vu que je suis sur le début il est temps de changer !

  18. #18
    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 : 40
    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
    Sql server express.

    Mais le hic, ça va être pour trouver un hébergeur à bas tarif

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 65
    Points : 55
    Points
    55
    Par défaut
    Salut B sko,
    Ce week end j'ai travaillé pour créer une connexion MySQL Access, j'ai eu le même problème que toi quand j'ai essayé de faire une mise à jour à partir de Access, tout à fait le même message. Je l'ai résolu en enlevant le champ timestamp qui avais aussi une action on update set current_timestamp, en enlevant ce champ ça à marché. D'après ce que j'ai lu, tu à fait la même chose et ça n'a marché. Alors si tu peux passer la structure de ta table MySQL (exporter-> SQL) je peux essayer de voir d'où ça vient, et aussi il ne faut pas oublier qu’après avoir fait la modification sur ta table en MySQL, il faut utiliser le gestionnaire de liaison pour mettre à jour la liaison entre MySQL et Access.

  20. #20
    Membre habitué Avatar de B_SKO
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 95
    Points : 125
    Points
    125
    Par défaut
    Bonjour,

    Merci d'avoir essayer voici la structure d'une table

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE IF NOT EXISTS `test3` (
      `Num` int(11) NOT NULL AUTO_INCREMENT,
      `Entier` int(11) NOT NULL,
      PRIMARY KEY (`Num`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=3 ;

    Lors de mes essais je fait bien une mise à jours de ma liaison.
    A aujourd'hui je pense plus à un problème avec la liaison ODBC quel version utilise tu ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Conflit d'ecriture MySQL ODBC ACCESS
    Par B_SKO dans le forum MySQL
    Réponses: 0
    Dernier message: 14/04/2010, 18h58
  2. [AC-2007] utilisation de QueryDefs avec access 2007
    Par da_latifa dans le forum VBA Access
    Réponses: 4
    Dernier message: 17/09/2009, 21h05
  3. Liaisons entre tables (Access 2007)
    Par Michel580 dans le forum Access
    Réponses: 4
    Dernier message: 19/01/2008, 19h41
  4. mysql / odbc / access
    Par amandine_drooplette dans le forum Installation
    Réponses: 3
    Dernier message: 07/06/2007, 09h13
  5. Problème utilisation API MySQL
    Par naiko dans le forum C
    Réponses: 4
    Dernier message: 11/05/2006, 09h55

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