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 :

Lancement script SQL+ depuis excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 13
    Par défaut Lancement script SQL+ depuis excel
    Bonjour,

    J'aimerais savoir comment exécuter un script SQL sur SQL*Plus via une macro dans un fichier excel.
    J'ai déjà inséré une commande shell qui ouvre SQL*Plus et se connecte à la base de données selon les identifiants de l'utilisateur, cela fonctionne bien, mais je ne sais pas comment lui dire d'exécuter le script voulu (un fichier .sql), ni même si c'est possible.

    Merci d'avance de votre aide.
    Bonne journée

  2. #2
    Invité
    Invité(e)
    Par défaut
    bonjour, regarde ça
    Fichiers attachés Fichiers attachés

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 13
    Par défaut
    Merci pour la réponse rapide!

    C'est un peu chinois pour moi qui ne maîtrise pas du tout la syntaxe vba, donc j'ai fait du copier-coller pour voir...

    mais j'ai déjà un problème au niveau de la 1ère ligne de commande: Dim Con As New ADODBRD
    >> erreur "Type défini par l'utilisateur non défini"
    Je suppose que le terme ADODBRD fait appel à qqch qui n'est pas accessible sur ma version d'excel??

    Comme la connexion à la base est déjà établie lors de l'ouverture de SQL*Plus, je pense que ça peut se contourner, mais je ne sais évidemment pas comment.
    Si je supprime la partie qui concerne la connexion et que je garde seulement la lecture du fichier, la commande "execute sql" m'indique une erreur : "Sub ou Fontion non définie"

    Parcontre pour la lecture du fichier, ça a l'air de fonctionner (bon, il ne se passe rien, du coup, mais on avance)

  4. #4
    Invité
    Invité(e)
    Par défaut
    ADODBRD c’est une classe elle est dans mon fichier Excel :
    Onglet modules de classe dans VB
    En suite tu donne les infos du serveur et le reste ce fait tout seule juste à donner le chemin et le non de ton fichier SQL.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Con.TYPEBASE = SQLServer2008R2
    Con.Server = "Myser"
    Con.BASE = "MyBase"
    Con.PassWord = "123"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Open "c:\test\FICHTEST.sql" For Input As #1
    Pour intégrer la classe ADODBRD dans ton projet, c’est comme windows exploreur tu fais un glissé déplacé de mon classeur vers le tien.

  5. #5
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 13
    Par défaut
    Super, merci!
    J'ai malheureusement encore un souci, ma connexion habituelle se fait avec SQL+, sur une base ORACLE, en entrant user, mot de passe et chaîne hôte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Con.TYPEBASE = ORACLE
    Con.Server = "Myser"  ???
    Con.BASE = "ABCD"
    Con.PassWord = "motdepasse"
    Pour le paramètre Server, mystère... et je ne vois pas où renseigner le nom d'utilisateur (pourtant utilisé dans la fonction GenereCSTRING), du coup je l'ai ajouté à tout hasard.
    Aucune erreur au lancement de la macro, parcontre rien ne se passe au niveau de la connexion, et évidemment aucun résultat.
    La fenêtre d'exécution affiche bien le script du fichier SQL.
    Je sèche...

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Désolé de cet oubli !
    Cette Classe à été créé pour fonctionner sur un serveur. Personne pour cliqué sur un bouton, voilà pourquoi il n’y à pas d’erreur.
    Fait du pas à pas [F8]

  7. #7
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 13
    Par défaut
    pas de souci, c'est déjà sympa de m'aider!
    j'avais ajouté ce morceau, mais ça ne change rien.

    Je n'obtiens pas le fichier de sortie prévu dans le script, du coup je me demande si la connexion au serveur est vraiment établie.

  8. #8
    Invité
    Invité(e)
    Par défaut
    GenereCSTRING me permet de me connecter sur n’importe quelle base de données, ces un pense bête accumulé durant des années en fonction de ce que j’avais besoin. C’est l’auberge Espagnole chaque un y apporte ce qu’il a. attention a oracleG11 ou autre il n’y est pas forcément le rajouter si nécessaire.

    Dis mois ta version oracle ?

  9. #9
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 13
    Par défaut
    Oracle9i

  10. #10
    Invité
    Invité(e)
    Par défaut
    Ajoute dans GenereCSTRING avant la Case Else :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Case Oracle9i
         GenereCSTRING = "Data Source=Oracle9i;User Id=" & PassWord & ";Password==" & PassWord & ";"
    Et remplace Enum MyAdo par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Enum MyAdo
        ACCESS97 = 1
        ACCESS2000 = 2
        ACCESS2012 = 1
        ODBC = 4
        Oracle9i = 10
        ORACLE = 5
        SQLSERVER2005 = 6
        SQLServer2008R2 = 7
        SQLite = 8
        SQLite3 = 9
    End Enum

  11. #11
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 13
    Par défaut
    toujours rien, ni fichier spool ni résultat.
    Je pense que la connexion ne se fait pas car le résultat de la requête prend un peu de temps, je suppose que la macro ne finirait pas instantanément. J'ai essayé avec des scripts quasi-vide (extraire juste la date du jour, créer un fichier de sortie sans rien dedans), mais rien ne se passe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Case ORACLE9i
         GenereCSTRING = "Provider=ORACLE9i;User Id=" & User & ";Password=" & PassWord & ";Data Source=" & Fichier & ";"

  12. #12
    Invité
    Invité(e)
    Par défaut
    dans la Class le fonction OpenConnetion retire les commentaires affin d'afficher les mesages d'erreurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If Err = 0 Then
     
            OpenConnetion = True
           Connexion.CommandTimeout = 14400
        Else
            MsgBox Err.Description
     
        End If
    c'est effectivement un problème de GenereCSTRING et tan que ta connexion à la base ne ce ferra pas!!!!

  13. #13
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 13
    Par défaut
    Gagné, c'est bien ça le problème :
    Erreur "Impossible de trouver le fournisseur. Il est peut-être mal installé"
    Vais voir avec le service informatique pour en savoir plus, ça devient trop technique pour moi.
    Merci en tout cas pour votre aide!

  14. #14
    Invité
    Invité(e)
    Par défaut
    sorry

Discussions similaires

  1. [SQL] Executer un script SQL depuis php
    Par sly3333 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 07/12/2007, 01h33
  2. Réponses: 2
    Dernier message: 23/03/2007, 15h16
  3. Executer un script SQl depuis VB
    Par Sytchev3 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 22/03/2007, 20h06
  4. [VB] lancement de BO depuis excel
    Par debmlc dans le forum SDK
    Réponses: 3
    Dernier message: 23/01/2007, 16h45
  5. Lancement script Sql en ligne de commande
    Par Poisson59 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 23/11/2006, 10h27

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