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 :

Connexion base de données ODBC via VB Excel [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Par défaut Connexion base de données ODBC via VB Excel
    Bonjour,

    Désolé du dérangement..

    J'ai un soucis que j'aimerais résoudre rapidement :oops.

    Je suis sous vB Excel.
    Je cherche la syntaxe pour me connecter à une base de donnée ODBC.
    Pour ensuite via une macro, exécuter une requête..

    Voilà déjà le code que j'ai fais mais sa me met une erreur :

    Erreur d'exécution '-2147467259(......)'
    [DBNETLIB][ConnectionOpen (Connect()).]Ce serveur SQL n'existe pas ou son accès est refusé
    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
    25
    26
    27
    28
    29
    Sub Macro1()
     
    Dim valcel As String
    valcel = Excel.Range("Feuil2!B4").Value
     
    Dim cnBat As ADODB.Connection
    Set cnBat = New ADODB.Connection
     
    Dim strConn As String
    strConn = "PROVIDER=sqloledb;"
    strConn = strConn & "DATA SOURCE=DNS_Intranet;UID=user_odbc;PWD=mdpusrodbc;DATABASE=DNS_Intranet"
    cnBat.Open strConn
     
    Dim rsBat As ADODB.Recordset
    Set rsBat = New ADODB.Recordset
     
    Set rsBat = cnBat.OpenRecordset _
                         ("SELECT Designation FROM produits_test WHERE code_produit = '& valcel'", _
                         dbOpenDynaset)
    While Not rsBat.EOF
    rsBat.MoveNext
    Wend
    rsBat.Close
     
    cnBat.Close
     
    Set rsBat = Nothing
    Set cnBat = Nothing
    End Sub
    Dans panneau de configuration --> Outils d'administration...J'ai bien crée ce qu'il fallait et dans Excel j'arrive à me connecter mais via vB non ..

    Si vous pouviez m'aider..

    Merci d'avance de votre aide.

    Cordialement,
    DexX

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Par défaut
    Désolé du double post..

    J'ai modifié 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
    Sub Macro2()
     
    Dim strDSN As String, strAttr As String, strODBCDrv As String
     
    ' Nom de la source de données ODBC
    strDSN = "DNS_Intranet"
    ' Nom du pilote ODBC
    strODBCDrv = "MySQL ODBC 3.51 Driver"
    ' Attributs
    ' OPTION est spécifique à MySQL dans cet exemple
    strAttr = "SERVER=LZ2" & vbCr & "DATABASE=bddintranetpol" & vbCr & "OPTION=3" & vbCr & _
              "UID=user_odbc" & vbCr & "PWD=mdpusrodbc"
     
    DBEngine.RegisterDatabase strDSN, strODBCDrv, True, strAttr
     
    End Sub
    Met sa me met une erreur :

    ODBC - L'appel à échoué
    J'aimerais pouvoir me connecter pour ensuite faire une requête ..

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut,sans doute un probleme de syntaxe de la chaine de connexion, faire une recherche sur le net par exemple sur carlprothman.net

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Par défaut
    D'accord,

    Je viens de consulter ce lien : http://www.carlprothman.net/Technolo...9/Default.aspx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    oConn.Open "DSN=DNS_Intranet;" & _
               "Uid=user_odbc;" & _
               "Pwd=mdpusrodbc"
    Il faut déclarer " oConn " en objet.

    Comme ceci ?? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim oConn As ODBCConnection
    Set oConn = New ODBCConnection

  5. #5
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Par défaut
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Sub Macro2()
     
    'Dim strDSN As String, strAttr As String, strODBCDrv As String
     
    ' Nom de la source de données ODBC
    'strDSN = "DNS_Intranet"
    ' Nom du pilote ODBC
    'strODBCDrv = "MySQL ODBC 3.51 Driver"
    ' Attributs
    ' OPTION est spécifique à MySQL dans cet exemple
    'strAttr = "SERVER=LZ2" & vbCr & "DATABASE=bddintranetpol" & vbCr & "OPTION=3" & vbCr & _
              '"UID=user_odbc" & vbCr & "PWD=mdpusrodbc"
     
    'DBEngine.RegisterDatabase strDSN, strODBCDrv, True, strAttr
     
    'Dim oConn As Object
    'Set oConn = New ODBCConnection
     
    'oConn.Open "DSN=DNS_Intranet;" & _
               '"Uid=user_odbc;" & _
               '"Pwd=mdpusrodbc"
     
     
    ' Déclaration des objets
    Dim wrkJet As Workspace
    Dim db As Connection
    Dim rs As Recordset
    Dim Qd As QueryDef
     
    ' Création de la liaison
    Set wrkJet = CreateWorkspace("", "", "", dbUseODBC)
    Set db = wrkJet.OpenConnection("", dbDriverNoPrompt, False, "ODBC;DSN=DNS_Intranet;UID=user_odbc;PWD=mdpusrodbc")
     
    End Sub
    Erreur d'incompatibilité de type

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

Discussions similaires

  1. [PowerShell] connexion à base de donnés oracle via Powershell
    Par phinestra dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 02/10/2012, 16h33
  2. [C#] Connexion base de donnée .db via Odbc
    Par Hurin dans le forum Accès aux données
    Réponses: 10
    Dernier message: 24/02/2012, 00h57
  3. connexion à une base de données MySQL via un pilote ODBC
    Par gentelmand dans le forum Administration
    Réponses: 3
    Dernier message: 21/07/2010, 17h04
  4. Réponses: 1
    Dernier message: 04/08/2009, 17h34
  5. Comment écrire dans une base de données ODBC via Excel (VBA)
    Par Shark777 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/04/2008, 04h56

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