De Oracle à Excel

kadden

XLDnaute Nouveau
Bonjour,
Un service m'envoie quelques tables (données) dans un fichier Excel,
l'affichage n'est pas très propre du à l'extraction que le service fait à partir
d'une base de donnée (Oracle).

je cherche un moyen ou une méthode qui me permettrait d'extraire directement des données d'une table donnée,
j'ai une première solution, d'écrire dans une requete HArry et sortir le résultat en Excel, sauf que je cherche une manière (outil décisionnel) qui puisse à travers ma base m'afficher ce que je souhaite dans Excel.

Merci pour votre Aide.
 

JNP

XLDnaute Barbatruc
Re : De Oracle à Excel

Bonjour Kadden et bienvenue :),
Une petite connexion ODBC te permettra de récupérer ce que tu veux dans Oracle. Par contre, la connexion ensuite dépends de ta version Excel...
Bon courage :cool:
 

kadden

XLDnaute Nouveau
Re : De Oracle à Excel

Bonjour Kadden et bienvenue :),
Une petite connexion ODBC te permettra de récupérer ce que tu veux dans Oracle. Par contre, la connexion ensuite dépends de ta version Excel...
Bon courage :cool:

Si je comprends bien ta solution connexion ODBC, c'est que Excel devient tous simplement un autre affichage de mes tables ?..?

Sinon il n'y a pas un exemple de code VBA qui me permettrai d'extraire
une colonne d'une tables de la base de donnée.

Je vous remercie bien de votre aide, car je n'ai jamais codé en VBA.

Merci.
 

JNP

XLDnaute Barbatruc
Re : De Oracle à Excel

Re :),
En gros (tout au moins sous 2007, je n'ai pas les anciennes versions pour vérifier :eek:), tu demandes une connexion ODBC, tu t'identifies, et après, tu sélectionne la table et les colonnes qui t'intéresse... Avec l'enregistreur de macro, tu récupères le VBA et tu l'adaptes à tes besoins...
Bon courage :cool:
 

kadden

XLDnaute Nouveau
Re : De Oracle à Excel

Re :),
En gros (tout au moins sous 2007, je n'ai pas les anciennes versions pour vérifier :eek:), tu demandes une connexion ODBC, tu t'identifies, et après, tu sélectionne la table et les colonnes qui t'intéresse... Avec l'enregistreur de macro, tu récupères le VBA et tu l'adaptes à tes besoins...
Bon courage :cool:

Merci pour ton aide, mais crois moi ça reste de la science fiction pour moi
y'a pas un tuto que je pourrai suivre, car je n'ai aucune idée
de comment commencer celà.

Merci beaucoup de m'y indiquer.
 

JNP

XLDnaute Barbatruc
Re : De Oracle à Excel

Re :),
Tu t'attaques à un gros morceau :p...
Si mes quelques mots sont déjà de la science-fiction, la suite va être démoniaque :D...
J'essaie de t'en dire plus tout à l'heure...
Bon courage :cool:
 

JNP

XLDnaute Barbatruc
Re : De Oracle à Excel

Re :),
Premièrement, il te faut un client Oracle installé sur ton poste (voir ton administrateur de réseau pour cela, avec la bonne version...).
Ensuite, sur ton disque, tu dois trouver un fichier nommé tnsnames.ora dans un chemin de ce style (version10g.02 installée pour ma part)
Code:
C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora
Dans ce fichier, tu dois avoir une déclartion de ta base type
Code:
# tnsnames.ora Network Configuration File: C:\oracle\product\10.2.0\client_3\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
[COLOR=red][B]NomDeLaConnexionDeTonServeur[/B][/COLOR] =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = [B][COLOR=#ff0000]NomDeTonServeur[/COLOR][/B])(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = [B][COLOR=#ff0000]IdentifiantDeTonServeur[/COLOR][/B])
      (SERVER = DEDICATED)
    )
  )
A ce moment-là, ta requête (OK sous 2007) doit ressembler à cela
Code:
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
        "ODBC;DSN=[COLOR=red][B]IdentifiantBDD[/B][/COLOR];UID=[B][COLOR=#ff0000]MotDePasseBDD[/COLOR][/B];;DBQ=[B][COLOR=#ff0000]NomDeLaConnexionDeTonServeur[/COLOR][/B] ;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BAM=IfAllSuccessfu" _
        ), Array("l;NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=O;")), _
        Destination:=Range("$A$1")).QueryTable
        .CommandText = Array( _
        "SELECT [B][COLOR=#ff0000]NomDesChampsQueTuSouhaites[/COLOR][/B]" _
        , ".OCUPA" & Chr(13) & "" & Chr(10) & "FROM [B][COLOR=#ff0000]NomDeTaTable[/COLOR][/B]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "Tableau_Lancer_la_requête_à_partir_de_[B][COLOR=#ff0000]Connexion[/COLOR][/B]"
        .Refresh BackgroundQuery:=False
    End With
D'où tous mes souhaits de bon courage :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 298
Messages
2 086 979
Membres
103 417
dernier inscrit
abaabdelghani