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
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[/list]
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 -)
Partager