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 :

Problème Properties lors connexion MySQL 3.51 Driver


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 27
    Points : 25
    Points
    25
    Par défaut Problème Properties lors connexion MySQL 3.51 Driver
    Bonjour forum,

    Voici mon code

    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
    Public Sub GetInfoProjet(intNoProjet As String)
        Dim Cnn As ADODB.Connection
        Dim rs As ADODB.Recordset
        Dim strSQL As String
     
        Set Cnn = New ADODB.Connection
        Cnn.ConnectionString = "Driver={MySQL ODBC 3.51 Driver};Server=10.10...;Database=Data;User=Gille; Password=se091;Option=3;"
        Cnn.Open
     
        Set rs = New ADODB.Recordset
        strSQL = "SELECT O.NoProjet, E.NomEmploye, E.Departement, O.HrsTotal, E.GrandSecteur, O.CodeActivite, O.DateHrsDebut, O.DateHrsFin " & _
                 "FROM ultrahrsgest.employe E INNER JOIN ultrahrsgest.operation O ON E.NoUtilisateur = O.NoUtilisateur " & _
                 "WHERE O.NoProjet=" & intNoProjet
        rs.Open strSQL, Cnn, adOpenDynamic, adLockReadOnly
     
        Sheets("Feuil1").Range("A10").CopyFromRecordset rs
    End Sub
    J'ai modifier les info perso.

    Le bug survient à cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs.Open strSQL, Cnn, adOpenDynamic, adLockReadOnly
    Je désire garder ces mêmes propriétés pour être certain de ne pas modifier ma base de donnée, avez une solution

    Merci

  2. #2
    Membre actif Avatar de Yolak
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 341
    Points : 206
    Points
    206
    Par défaut
    Bonjour,

    Sans doute une erreur dans la chaîne SQL.
    Essaye de faire une requête simple pour localiser le problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL="SELECT * FROM employe"
    C'est quoi l'intitulé du bug?
    Épargnez votre cerveau : éteignez votre télé !

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 27
    Points : 25
    Points
    25
    Par défaut
    ça fonctionne, alors mon problème est dans mon code SQL, est-ce que tu sais où?, je veux juste spécifier que j'ai un critère que je dois respecter qui est un NoProjet de type string.

    Merci

  4. #4
    Membre actif Avatar de Yolak
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 341
    Points : 206
    Points
    206
    Par défaut
    Essaye d'ajouter O.NoUtilisateur dans ton SELECT

    Et dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "WHERE O.NoProjet=" & intNoProjet
    si ta variable est nulle, il faut lui affecter la chaîne "''" (double quote, quote, quote, double quote)
    Épargnez votre cerveau : éteignez votre télé !

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 27
    Points : 25
    Points
    25
    Par défaut
    Nouveau code

    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
     
    Public Sub GetInfoProjet(intNoProjet As String)
        Dim Cnn As ADODB.Connection
        Dim rs As ADODB.Recordset
        Dim strSQL As String
     
        Set Cnn = New ADODB.Connection
        Cnn.ConnectionString = "Driver={MySQL ODBC 3.51 Driver};Server=10.10...;Database=Data;User=Gille; Password=se091;Option=3;"
        Cnn.Open
     
        Set rs = New ADODB.Recordset
        strSQL = "SELECT O.NoUtilisateur, O.NoProjet, E.NomEmploye, E.Departement, O.HrsTotal, E.GrandSecteur, O.CodeActivite, O.DateHrsDebut, O.DateHrsFin " & _
                 "FROM ultrahrsgest.employe E INNER JOIN ultrahrsgest.operation O ON E.NoUtilisateur = O.NoUtilisateur " & _
                 "WHERE O.NoUtilisateur, O.NoProjet=" & intNoProjet
        rs.Open strSQL, Cnn, adOpenDynamic, adLockReadOnly
     
        Sheets("Feuil1").Range("A10").CopyFromRecordset rs
    End Sub
    Mais toujours la même erreur sur la même ligne

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "WHERE O.NoUtilisateur, O.NoProjet=" & intNoProjet
    where quoi?
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 27
    Points : 25
    Points
    25
    Par défaut
    Je ne comprend pas trop ta question mercatog, ce code SQL, je l'ai pris d'un code que ma sorti MSQuery, voilà le code SQL original

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT operation_0.NoProjet, operation_0.DateHrsDebut, employe_0.NomEmploye, operation_0.Departement, operation_0.HrsTotal, operation_0.Secteur, operation_0.CodeActivite, operation_0.DateHrsDebut, operation_0.DateHrsFin, employe_0.Salaire
     
    FROM ultrahrsgest.employe employe_0, ultrahrsgest.operation operation_0
     
    WHERE employe_0.NoUtilisateur = operation_0.NoUtilisateur AND ((operation_0.NoProjet=?))
    Donc et je ne suis pas un grand expert, j'avais demander de l'aide pour transféré ce code en vba.

  8. #8
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Where Champ1=valeur1 and champ2=valeur2"
    si valeur1 et valeur2 sont des variables (numériques par exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Where Champ1=" & valeur1 &"and champ2=" & valeur2
    Je ne garantie rien quand même
    (pour les valeurs textes peut être il faut ajouter des apostrophes et des dates des dièses encadrant les variables)
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  9. #9
    Membre actif Avatar de Yolak
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 341
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par Yolak Voir le message
    Essaye d'ajouter O.NoUtilisateur dans ton SELECT
    Dans la clause SELECT pas dans la clause WHERE ^^ Mais de toute façon, je ne pense pas que ce soit ça...

    Par contre:

    Ta variable doit être entourée des caractères ' (apostrophes)

    Donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "WHERE O.NoProjet='" & intNoProjet & "'"
    Copie Colle!
    Épargnez votre cerveau : éteignez votre télé !

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 27
    Points : 25
    Points
    25
    Par défaut
    ok avec les modification de Yolak, et j'ai supprimé les propriétés "adOpenDynamic, adLockReadOnly" et la requête fonction.

    Mais je désire garder ces propriétés, y a-t-il d'autres propriété qui on les mêmes fonctions.

    Merci

Discussions similaires

  1. [XL-2010] problème chaîne de connexion MySql/Odbc5.2 + procédure stockée
    Par issoram dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/10/2014, 11h17
  2. [GWT] Problème JEE ? Et connexion MySql
    Par glub0x dans le forum GWT et Vaadin
    Réponses: 2
    Dernier message: 01/07/2011, 18h21
  3. problème innatendu de connexion mysql
    Par gilles74 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 01/11/2005, 18h45
  4. Réponses: 6
    Dernier message: 15/05/2005, 14h11
  5. [JSP] erreur lors d'une connexion à mySQL
    Par Jovial dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 31/08/2004, 16h48

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