Savez vous si c possible d'attaquer une base Oracle a partir du logiciel Excel ????
Savez vous si c possible d'attaquer une base Oracle a partir du logiciel Excel ????
Oui de plusieurs manières, moi j'ai une préférence pour la méthode suivante :
Pré-requis : Installer Oracle Objects for OLE depuis l'installer Oracle
Voila un exemple de macro :
Si ça ne fonctionne pas bien, préviens moi, j'ai un peu purger mon code et j'ai pu faire des erreurs [/list]
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
42
43
44
45
46
47
48
49
50
51
52
53 Global OraSession As Object Global OraDatabase As Object Global theDynaset As Object Sub macro1() Connect = "easi/easi" base = "easpas1" ' Connexion à la base Set OraSession = CreateObject("OracleInProcServer.XOraSession") Set OraDatabase = OraSession.OpenDatabase(base, Connect, 0&) ' Définition de la requête stmt = "select * from all_tables where rownum < 11" ' Parsing de la requête Set theDynaset = OraDatabase.CreateDynaset(stmt, 0&) ' theDynaset.Fields(n).Name -> nom de la n-iéme colonne ' theDynaset.Fields(n).Value -> valeur de la n-iéme colonne ' theDynaset.DbMoveNext -> enregistrement suivant ' theDynaset.RecordCount -> nombre de lignes ' theDynaset.Fields.Count -> nombre de colonne ' par exemple reccount = theDynaset.RecordCount fldcount = theDynaset.Fields.Count For Nocolonne = 1 To fldcount Cells(1, Nocolonne) = theDynaset.Fields(Nocolonne - 1).Name Columns(Nocolonne).ColumnWidth = 40 Next Nocolonne If (reccount = 0) Then Application.StatusBar = "The table " + Cells(4, 6) + " is empty." Else Application.StatusBar = Str(theDynaset.RecordCount) & " lines into " + Cells(4, 6) + "." ' Display data For NoLigne = 2 To reccount + 1 For Nocolonne = 1 To fldcount Cells(NoLigne, Nocolonne) = theDynaset.Fields(Nocolonne - 1).Value If (Nocolonne Mod 2) = 0 Then Cells(NoLigne, Nocolonne + 1).Interior.ColorIndex = 40 End If Next Nocolonne If Nocolonne <> reccount Then theDynaset.DbMoveNext End If Next NoLigne End If End Sub
j'ai corrigé l'ignominie que j'avais osé posté
J'ai oublié de préciser que le client Oracle doit aussi être installé contrairement (je crois) à la méthode via ODBC mais là je ne connais pas
bonjour,
tout dépend bien sur des besoins, mais une solution simple sans avoir à 'sortir la grande artillerie' est d'utiliser MSQuery : interfaçage simple + requetes QBE (comme Access) pour obtenir un fichier excel d'exportation.
@
Dans ce cas, SQL*Plus fait tout autant l'affaire
I'm agree with you -)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager