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

Macros et VBA Excel Discussion :

Acces à une base de données MySQL à partir de VBA Excel - Pb du type d'erreur au moment du connect


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 14
    Par défaut Acces à une base de données MySQL à partir de VBA Excel - Pb du type d'erreur au moment du connect
    Bonjour,

    Mon application est du type client - serveur. Le client est écrit en VBA for Excel, le serveur est MYSQL
    Versions de logiciels
    - Windows 10
    - MYSQL 8.0 (en version MYSQL COMMODITY SERVER - GPL)
    - MySQL ODBC 8.0 ANSI Driver
    - Excel 2016

    ODBC est configuré de la manière suivante :

    DSN : MYSQL ODBC 8.0 ANSI DRIVER (32 bits)

    DSN : localhost
    TCP/IP Server : 3306
    User : root
    Password : xyztuv

    La connexion est du type

    DANS MODULE MAIN
    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
    Public cn As ADODB.Connection
    Public rs As ADODB.Recordset
    Public Function ConnectDB() As ADODB.Connection
    'Fonction connexion à MySQL
    Dim S, DatabaseName, MySQLUser ,Pwd As String
    DatabaseName = "TestDB"
    Set ConnectDB = New ADODB.Connection
    S = "DRIVER={MySQL ODBC 8.0 ANSI Driver};" & _
           "SERVER=localhost" & ";" & _
           "DATABASE=" & DatabaseName & ";" & _
           "USER=root" & ";" & _
        	"PASSWORD=xyztuv & ";" & _
        	"Option=3"
    ConnectDB.Open S
    End Function
    DANS MODULE APPELANT
    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
    Private Sub Main()
    Dim requete as String
    On Error GoTo Connect_Error
     
    Set cn = ConnectDB()
    …
     
    Requete = "SELECT count(*) FROM Client"
     
    Set Rs = New ADODB.Recordset
    requete = "SELECT count(*) as NbClient FROM CLIENT "
    Rs.Open requete, cn
    Msgbox "Nombre de clients" & NbClient
    ...
    Rs.Close
    Set Rs = Nothing
    Exit Function
     
    Connect_Error:
    If Not IsNull(Err.Number) Then msgerror = msgerror & vbCrLf & "Error number : " & Err.Number
    If Not IsNull(Err.Description) Then msgerror = msgerror & vbCrLf & "Error description : " & Err.Description
    MsgBox msgerror
    End function
    Tout cela fonctionne parfaitement bien sur un PC stand-alone
    Cette application doit passer dans un mode multi-users avec plusieurs PC et MySQL hébergé sur un serveur Windows

    J'ai 2 questions
    - Pour la connexion ai-je intérêt à utiliser un seul user MySQL (type root mais avec des droits plus restreints ?)
    ou un user MySQL différent par utilisateur ?
    - Comment gérer les différents cas d'erreurs de connexion au serveur au moment du ConnectDB () ?

    Le pb étant que quelque soit le type d'erreur
    - on a le même Err.Number
    - un Err.Message ne permettant pas de distinguer les différents types d'erreur : pn de login, password (dans le cas où j'opte pour plusieurs users), pb réseau, serveur down ...

    Je n'ai rien trouver dans la doc MySQL
    Si quelqu'un a des idées, je serais ravi

    Merci
    Images attachées Images attachées  

Discussions similaires

  1. [Portlet] portlet avec un accès à une base de donné mysql
    Par prodit96 dans le forum Portails
    Réponses: 1
    Dernier message: 12/01/2009, 15h41
  2. [MySQL] Accés à une base de données MySQL
    Par apt dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/10/2008, 19h35
  3. Réponses: 1
    Dernier message: 19/07/2007, 21h09
  4. Accès à une base de données MySQL
    Par cybernikkos dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/05/2007, 22h03
  5. [JDBC]acces à une base de données mysql
    Par sehaba dans le forum JDBC
    Réponses: 13
    Dernier message: 07/12/2004, 00h39

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