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 :

Excel-VBA-SQL -> Oracle


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut Excel-VBA-SQL -> Oracle
    Bonjour,

    J'ai un souci, car je n'arrive pas à faire la chose suivante :

    J'ai créé une feuille Excel qui comporte tous les éléments de ma requète.
    Je récupère ces éléments, et en concaténant je recompose ma requète.
    Cela se déroule sans problème. Il m'a juste fallu mettre une fonction filtre pour éliminer les caractéres de contrôles non éditables que je récupère.
    Le problème c'est que je n'arrive pas à passer cette requète à Oracle.
    J'ai en permanence une erreur.

    En faisant un copié-collé de la requète dans SQL Plus, il me trouve une erreur sur un champs. Ors le champs existe bien et la requète semble correcte.
    Est-ce que vous pourriez m'aider, car j'avoue que je craque un peut.

    Voici ma requète :
    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
    35
    36
    37
    38
    39
    40
    41
     
     
     
     
    SELECT 
    	sum(nvl(a0,0)) "A0", 
    	sum(nvl(a1,0)) "A1", 
    	sum(nvl(a2,0)) "A2", 
    	sum(nvl(a3,0)) "A3", 
    	sum(nvl(a4,0)) "A4", 
    	sum(nvl(a5,0)) "A5", 
    	sum(nvl(a6,0)) "A6", 
    	sum(nvl(autoa0,0)) "Auto A0", 
    	sum(nvl(autoa1,0)) "Auto A1", 
    	sum(nvl(autoa2,0)) "Auto A2", 
    	sum(nvl(autoa3,0)) "Auto A3", 
    	sum(nvl(autoa4,0)) "Auto A4", 
    	sum(nvl(autoa5,0)) "Auto A5", 
    	sum(nvl(autoa6,0)) "Auto A6", 
    	sum(nvl(b0,0)) "B0", 
    	sum(nvl(b1,0)) "B1", 
    	sum(nvl(b2,0)) "B2", 
    	sum(nvl(b3,0)) "B3", 
    	sum(nvl(b4,0)) "B4", 
    	sum(nvl(b5,0)) "B5", 
    	sum(nvl(b6,0)) "B6", 
    	sum(nvl(autob0,0)) "Auto B0", 
    	sum(nvl(autob1,0)) "Auto B1", 
    	sum(nvl(autob2,0)) "Auto B2", 
    	sum(nvl(autob3,0)) "Auto B3", 
    	sum(nvl(autob4,0)) "Auto B4", 
    	sum(nvl(autob5,0)) "Auto B5", 
    	sum(nvl(autob6,0)) "Auto B6", 
    	sum(recette) "Recette", 
    	sum(cap_a) "Cap A", 
    	sum(cap_b) "Cap B", 
    	type_outil "Type outil", 
    	sum(traf_a + traf_b) "Trafic total", 
    	niveau "Niveau"  
    FROM 
    	base_outils
    Bien entendu je vous réindenté le code pour que ça soit lisible.

    Par avance merci.

    Marco.

  2. #2
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut,
    A vue de nez, la requête, semble en effet, correcte (sauf le ; de fin qui manque mais j'imagine qu'il est resté coincé lors de la copie sur le Post )...mais quel est le message d'erreur sur SQL?

    Hormis ça, quel est le but, je comprends pas bien tes manipulations, pourquoi utiliser Excel pour monter une Requete "Select" à passer dans Oracle?

    A+
    N'oubliez pas le si votre problème est solutionné.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    Salut,

    Mon problème est la suivant : je crée ma requète SQL en concaténant la chaine (les éléments sont sockés dans un tableau Excel), mais lorsque je veux ajouter la connection j'ai une erreur...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
     
        StrBaseConnexion = "ODBC;DRIVER={Microsoft ODBC pour Oracle}" & _
                ";UID=" & StrUsr1 & _
                ";PWD=" & StrPwd1 & _
                ";SERVER=" & StrNomBase
    J'avoue que eje suis un peut en train de manger mon chapeau...

    Merci à toi.

    Bonne soirée.

    Marco.

  4. #4
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Re,
    Pour être honnête, je me suis aussi cassé les dents avec la connection ODBC (peut-être parce que la base Oracle n'est pas "chez toi"), je me suis tourné vers une connection OLEDB
    Voici un 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
     
    LaDateD = Sheets("Parametres").Cells(2, 4)
    LeUser = LCase(Environ("Username")) 'récupère l'identification pour le chemin d'accès vers "MyDataSource"
                With ActiveSheet.QueryTables.Add( _
                    Connection:="OLEDB;Provider=MSDAORA.1;Password=xxxxxx;User ID=xxxxxx;Data Source=bpty001", Destination:=Sheets("Datas").Cells(1, 1))
                    .CommandType = xlCmdTable
                    .CommandText = Array("""UPTY000"".""SC_CMPT_RRD"" where ""UPTY000"".""SC_CMPT_RRD"".""xxx_JUMEAUX_PCT"" > " & LePourcent & " and ""UPTY000"".""SC_CMPT_RRD"".""DPT_DATE"" > '" & LaDateD & "'")
                    .Name = "bpty001 (Default) SC_CMPT_RRD"
                    .FieldNames = True
                    .RowNumbers = False
                    .FillAdjacentFormulas = False
                    .PreserveFormatting = True
                    .RefreshOnFileOpen = False
                    .BackgroundQuery = True
                    .RefreshStyle = xlInsertDeleteCells
                    .SavePassword = False
                    .SaveData = True
                    .AdjustColumnWidth = True
                    .RefreshPeriod = 0
                    .PreserveColumnInfo = True
                    .SourceConnectionFile = _
                    "C:\Documents and Settings\" & LeUser & "\My Documents\My Data Sources\bpty001 (Default) SC_CMPT_RRD.odc"
                    .Refresh BackgroundQuery:=False
                End With
    J'ai évidement remplacé les userId et mot de passe mais j'ai laissé les noms de champs qui te rappelerons peut-être quelque chose (cfr Message Perso )
    A+

    P.S. regarde bien le montage de " dans la ligne CommandText, c'est un peu chaud, et comme tu devras l'adapter pour ton cas...
    N'oubliez pas le si votre problème est solutionné.

Discussions similaires

  1. [Mission/Télétravail] Consultant Développeur Excel VBA SQL confirmé
    Par Pythonesque dans le forum Demandes
    Réponses: 0
    Dernier message: 11/03/2013, 19h54
  2. Access Excel Vba Sql
    Par bzh_touch dans le forum Access
    Réponses: 1
    Dernier message: 29/06/2007, 12h05
  3. [VBA-A2003] Export d'un Recordset vers Excel, avec SQL statement
    Par Wanoo14 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/04/2006, 22h06
  4. [VBA]SQL dans Excel manipulation de données
    Par Deejoh dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 08/02/2006, 16h56

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