[OLE DB] Problème de connexion et de compréhension
Etat :
Oracle 9.i (installé en client ) / Windows Xp Pro
Bonjour à tous ...
Je suis débutante en Oracle et je dois faire des tests pour un de mes enseignants ...
Je vous explique : Je dois réaliser une base de données sur Oracle ( c'est fait ) et je dois, par couche OLE DB lier mes tables dans une base de données Access.
En fait voici un bout de code qui vient de : orafrance qui est Rédacteur / Modérateur.
Code:
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 |
Je ne comprend pas très bien comment faire marcher ce code ... Où dois-je le copier ( dans un module Access ??? ) et que dois-je paramètrer ???
Es ce que quelqu'un pourrait m'expliquer svpl ??? Merci de votre aide à tous ...
Re: [OLE DB] Problème de connexion et de compréhension
D'abord c'est du vba donc une macro excel ;)
Citation:
Global OraSession As Object
Global OraDatabase As Object
Global theDynaset As Object
Sub macro1()
Connect = "easi/easi" :arrow: user/password
base = "easpas1" :arrow: sid de la base
' 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"
:arrow: stmt contient la requête a exécuter
' 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
:arrow: bah là je peux pas commenter plus quand même :?
' par exemple
reccount = theDynaset.RecordCount
fldcount = theDynaset.Fields.Count
:arrow: ici on boucle pour écrire le nom des colonnes dans la feuille excel
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
:arrow: ici on bloucle pour afficher les lignes retournées par le select
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
:arrow: on continue à parcourir les lignes retournées par la requête
End If
Next NoLigne
End If
End Sub