Bonjour,
J'essaye de créer une nouvelle ligne dans une table Oracle à partir d'une application Access 2003 en VBA.
La table Oracle est utilisée par un logiciel commercial de gestion, dont l'éditeur nous a fournit des outils affin d'y acceder depuis un programme externe (procédures stockées, ouverture des tables en lecture et écriture). Jusqu'ici tout marche très bien et je peux me connecter et appeler des procédures stockées. Par contre je n'arrive pas a accéder directement aux tables (j'utilise du SQL mais peut être faut-il faire autrement). Peut être aussi tout simplement ma requête SQL est elle fausse. Voici le code:
La connexion est assurée par un module fourni par l'éditeur et qui fonctionne jusqu'à maintenant, je ne pense pas que le problème vienne de là donc, voici son code au cas où:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim strSQL As String strSQL = "INSERT INTO TARIFPARTICULIERGAMME (CODE1, CODE2, CODEGAMME1, CODEGAMME2, CODECOMPOGAMME1, CODECOMPOGAMME2, MODETARIF, PRIX) VALUES ('04FCHGUFLOFRA', 'MONT', 'T', 'C', 40, 'AN', 'U', 8)" mcmd.CommandText = strSQL mcmd.Execute
L'erreur renvoyée est: "Erreur de syntaxe dans {call...} ODBC Escape"
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 Private ODBC As Workspace Private Oracle As Connection Private bConnecteAOracle As Boolean Public stDocName As String Public stLinkCriteria As String Public madoConn As ADODB.Connection Public mcmd As ADODB.Command Public msConnectString As String Public Sub ConnectToOracle(Optional WithPrompt As Boolean = False) On Error GoTo Err_Connect bConnecteAOracle = False Dim dbDriver If WithPrompt = False Then dbDriver = dbDriverNoPrompt Else dbDriver = dbDriverPrompt End If msConnectString = "Provider=MSDAORA;Data Source=API_ALIAS;User ID=xxxxxxxxxxxxxxxxxx;Password=xxxxxxxxxxxxxxxxxx;" Set madoConn = New ADODB.Connection madoConn.ConnectionString = msConnectString madoConn.Open "", "", "", 0 Set mcmd = New ADODB.Command Set mcmd.ActiveConnection = madoConn 'Indique un traitement qui peut être long Call DoCmd.Hourglass(True) mcmd.CommandText = getDossier() & ".GES_APPEL_EXT.OPENSESSION" mcmd.CommandType = adCmdStoredProc mcmd.Parameters.Refresh mcmd.Parameters("User").Value = getLogin() mcmd.Parameters("Pwd").Value = getPassword() mcmd.Execute "", "", ADODB.adExecuteNoRecords Call DoCmd.Hourglass(False) bConnecteAOracle = True Exit_Connect: Exit Sub Err_Connect: Call DoCmd.Hourglass(False) bConnecteAOracle = False Resume Exit_Connect End Sub
J'espère avoir été assez clair dans mes explications![]()
Merci de votre aide!
Partager