Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/01/2011, 12h05   #1
Membre habitué
 
Homme jean maury
Inscription : mars 2009
Messages : 116
Détails du profil
Informations personnelles :
Nom : Homme jean maury
Âge : 42
Localisation : Pologne

Informations professionnelles :
Secteur : Distribution

Informations forums :
Inscription : mars 2009
Messages : 116
Points : 111
Points : 111
Par défaut ADO rajout/modif champ dans MySQL montant valeur * par 100

Bonjour.

J'ai besoin d'envoyer des donnees a MySQL ou de les modifier des donnees.
Je le fais avec ADO.

Si j'ouvre un curseur cote client, lorsque je rajoute un montant, celui-ci est correctement rajoute en table.
Pour modifier les enregistrements, je suis oblige d'ouvrir un curseur cote serveur car, avec un curseur cote client, il y a de temps en temps un probleme comme quoi on ne peut pas modifier car la valeur a peut etre change etc etc.

Du coup j'ouvre un curseur cote serveur. J'arrive sans probleme a mettre a jour les donnees, le update se fait correctement.
Par contre, le montant est multiplie par 100 que ce soit en rajout de nouvel enregistrement ou en modif de champ d'un enregistrement existant.

Voici la partie de mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
 
' Connexion ŕ base MySQL
        ' Crée objet Connection
        Set oCnMySQL = New ADODB.Connection
        ' Définit chaîne de connexion
        ' * Le provider MSDASQL (ODBC) étant celui par défaut, on peut l'omettre
        oCnMySQL.ConnectionString = "Provider=MSDASQL;" & _
        "DSN=" & serveur & ";" & _
        "UID=" & util & ";PWD=" & passe
        ' Ouvre la connexion
        oCnMySQL.Open
 
        TableM1 = "pub_facture_entete"
        ' Crée recordset
        Set rsms = New ADODB.Recordset
        rsms.CursorLocation = adUseServer
        'Ouvre la table
        rsms.Open "SELECT * FROM " & TableM1, oCnMySQL, adOpenKeyset, adLockOptimistic, adCmdText
 
            rsms.AddNew
            rsms("Nr_societe") = 60
            rsms("Nr_ID") = 91
            rsms("Nr_fact") = "essai montant"
            rsms("TTC_fact") = 100
            rsms.Update
J'ai essaye en remplacant :
Code :
1
2
3
 
 
        rsms.Open "SELECT * FROM " & TableM1, oCnMySQL, adOpenKeyset, adLockOptimistic, adCmdText
par :

Code :
1
2
 
        rsms.Open "SELECT * FROM " & TableM1, oCnMySQL, adOpenKeyset, adLockOptimistic, adCmdTable
Mais mon programme s'est arrete sur cette ligne en indiquant qu'ODBC ne prend pas en charge.

J'ai lance manuellement un update sur la base MYSQL est le montant saisi dans la requete SQL Update, est correctement saisi dans le champ montant.

Savez-vous d'ou peut provenir le probleme ?
Merci.
Cdlt.
jj4822 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 19h11   #2
Membre habitué
 
Homme jean maury
Inscription : mars 2009
Messages : 116
Détails du profil
Informations personnelles :
Nom : Homme jean maury
Âge : 42
Localisation : Pologne

Informations professionnelles :
Secteur : Distribution

Informations forums :
Inscription : mars 2009
Messages : 116
Points : 111
Points : 111
Bonjour.

J'ai resolu mon probleme grace a mon collegue de l'informatique.

En fait, il faut installer le pilote ODBC MYSQL version 5.1.8 ou versions superieures (la version 5.1.8 est la derniere en date).

Cette version corrige le probleme des decimales.

Et ca resout le probleme simplement.

Cdlt.
jj4822 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h56.


 
 
 
 
Partenaires

Hébergement Web