Bonjour,
En raison d'une migration vers Office 2010 dans mon entreprise, il me faut tester toutes nos applications Access 2002 (et oui ca fait faire un sacré saut) pour s'assurer de leur bon fonctionnement. Sans surprise, pas mal de problèmes sont apparus et parmi eux, la récupération d'une Séquence Oracle.
Avec la version Access 2002, j'utilisais alors sans problème le code suivant :
Cette fonction fait appel à la fonction connexion qui permet d'accèder aux tables Oracle via le code suivant :
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 Dim conn As Connection Dim wrkODBC As Workspace Function Sequence(lenomseq As String) As Long Dim rec As Recordset On Error Resume Next Set rec = conn.OpenRecordset("SELECT APP_PP." & lenomseq & ".NEXTVAL as ident FROM dual") MsgBox rec!ident If err.Number <> 0 Then Call Connexion Set rec = conn.OpenRecordset("SELECT APP_PP." & lenomseq & ".NEXTVAL as ident FROM dual") End If On Error GoTo traitement_erreur Sequence = rec!ident rec.Close Exit Function traitement_erreur: Sequence = 0 End Function
tout cela me permettait donc de récupérer rapidement et efficacement ma séquence Oracle (ex : 3758).
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 Function Connexion() As Boolean Dim wsk As Workspace Dim dbOP As Database Dim nom As String Dim pwd As String Dim laBase As String On Error GoTo traitement_erreur nom = "XXXX" pwd = "xxx" laBase = leDataSourceName Screen.MousePointer = 11 Set wsk = DBEngine.Workspaces(0) Set wrkODBC = CreateWorkspace("MonWorkspace", "admin", "", dbUseODBC) Workspaces.Append wrkODBC '-----OP connexion Set conn = wrkODBC.OpenConnection("", dbDriverNoPrompt, False, "ODBC;dsn=" & laBase & ";UID=" & nom & ";pwd=" & pwd) Set dbOP = wsk.OpenDatabase(laBase, dbDriverNoPrompt, False, "ODBC;dsn=" & laBase & ";UID=" & nom & ";pwd=" & pwd) Screen.MousePointer = 0 Connexion = True Exit Function traitement_erreur: wsk.Close MsgBox ("Connexion impossible !!") Connexion = False Screen.MousePointer = 0 End Function
Désormais sous Access 2010, la séquence renvoyée est 0 ?!! D'autre part, il m'est impossible d'effectuer la connexion aux tables Oracle via la fonction connexion (-> erreur qui déclenche le message "Connexion impossible !!").
Bref, après avoir parcouru le forum de long en large, je ne sais pas si les deux problèmes sont vraiment liés mais j'avoue que je commence à avoir urgemment besoin d'une solution qui continue à m'échapper !
Merci à tous pour l'aide (et les solutions) que vous pourrez m'apporter
![]()
Partager