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 :

Creer une connexion vers une base SQL


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 30
    Points : 18
    Points
    18
    Par défaut Creer une connexion vers une base SQL
    Bonjour,

    Je cherche a creer une connexion vers une base SQL et lancer une requete SQL lorsque je clique sur un bouton

    Le bouton est cree ( facile !! ) - j'ai tous les paramètres de ma base sql, j'ai aussi ma requete ....

    Aujourd'hui je passe par le menu DONNEE / DONNEES EXTERNE je creer ma connexion, j'entre les paramètres, je colle ma requette SQL ....

    De facon reguliere je viens mettre a jour les données en cliquant sur ACTUALISER TOUT

    Comme je vais devoir faire ca de facon répéter je voulais creer un modele excel, creer une variable en A1 qui serait le paramètre variable de ma requete SQL ( je souhaite creer un fichier par parametre - car je dois l'envoyer a des personnes differentes )


    Est il possible que cette connexion apparaisse aussi dans le menu DONNEE/CONNEXION afin de la mettre a jour manuellement ? et facilement ? ( au cas ou je voudrais voir la tete de la requete SQL aussi )



    PS : la base SQL n'a pas besoin de nom de user et mdp, tout le monde a le droits d'attaquer la base avec son compte courrant .....


    Ps2 : c'est que de la lecture ... aucune écriture

    Merci

  2. #2
    Membre habitué Avatar de Basicnav
    Profil pro
    Inscrit en
    Février 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2008
    Messages : 245
    Points : 193
    Points
    193
    Par défaut
    Bonjour,

    tout d'abord, il faut savoir qu'il n'existe pas de BdD SQL, le sql est un langage permettant d'intervenir sur ta base de données; il faut connaître ton SGBD :

    Access,
    Oracle,
    Sybase,
    MySQL
    ...
    ...

    ensuite voilà comment on "attaque" une BdD Oracle par exemple :

    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
    Private Sub CommandButton2_Click()
     On Error Resume Next
       Dim n As Integer
     
           USER = "mon_login"
           MDP = "mon_password"
           DRV_ODBC = "Microsoft ODBC for Oracle"
           INSTANCE = "le_lien_ODBC_de_ta_Base"
           PL_SQL = "ici tu as le code de ta requette SQL"
     
                 With Sheets("resultat_requette")
                  Sheets("resultat_requette").Select
                  Range("A1").Select
                  Cells.Select
                  Selection.ClearContents
                  Selection.QueryTable.Delete
                  Range("A1").Select
                 End With
     
                With ActiveSheet.QueryTables.Add(Connection:= _
                 "ODBC;DRIVER={" & DRV_ODBC & "};UID=" & USER & ";PWD=" & MDP & ";SERVER=" & INSTANCE & ";", Destination:=Range("A1"))
                 .Sql = PL_SQL
                 .FieldNames = False
                 .HasAutoFormat = False
                 .Refresh BackgroundQuery:=False
                 .RefreshStyle = xlOverwriteCells
                 .AdjustColumnWidth = False
                 Sheets("Feuil1").Select
               End With
    voilà, à adapter en fonction de ton SGBD.
    on ne parvient jamais à bien jouir de soi sans le recours d'autrui
    JJ Rousseau

    http://funz.labrute.fr/

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    Oui excuse moi,

    j'attaque une base avec ca
    Provider=SQLOLEDB


    Est ce que ta manip, permet de voir les connexion creee dans le menu CONNEXION du classeur sous excel ???

    merci

  4. #4
    Membre habitué Avatar de Basicnav
    Profil pro
    Inscrit en
    Février 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2008
    Messages : 245
    Points : 193
    Points
    193
    Par défaut
    Re,

    non, tu ne peux pas voir les connexions puisqu'elles sont fermées avec le "end with" et je ne pense pas que tu auras le temps d'accéder aux infos pendant le déroulement de la requêtte.

    Après, je pense pas dire de bêtise en mettant le code de ta requêtte dans une cellule par exemple
    on ne parvient jamais à bien jouir de soi sans le recours d'autrui
    JJ Rousseau

    http://funz.labrute.fr/

Discussions similaires

  1. Ouvrir une connexion vers une BDD SQL
    Par Anduriel dans le forum VB.NET
    Réponses: 5
    Dernier message: 31/05/2013, 21h04
  2. [VB.Net] Comment copier une DataRow d'une table vers une autre ?
    Par YLF dans le forum Accès aux données
    Réponses: 7
    Dernier message: 05/09/2012, 23h23
  3. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  4. copier une partie d'une image vers une autre
    Par gregcat dans le forum Langage
    Réponses: 1
    Dernier message: 14/04/2006, 13h39
  5. [VB.NET] Copie d'une table d'une DB vers une autre
    Par SergeF dans le forum Windows Forms
    Réponses: 9
    Dernier message: 20/11/2004, 09h54

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