Bonjour,

je viens faire appel à vous car je désespère après quelques heures de recherches...

J'essaye d'éxécuter une requête d'insertion dans une base Oracle en VBA en utilisant de l'ADO.

J'arrive à me connecter sur la base sans problèmes, lancer des requêtes SQL et les récupérer dans des recordset.

En revanche, quand il s'agit d'éxécuter un INSERT INTO, la plupart du temps, cela aboutit sur un gros freeze d'excel et de temps en temps, cela marche mais bizarrement, la valeur que j'ai ajouté est systématiquement placée en tête de la table alors que la clé primaire (qui est un N° d'ID est sensé être le dernier)

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
 
    Dim Cn As ADODB.Connection
    Dim CP As ADODB.Command
    Dim Rs As ADODB.RecordSet
    Dim connectionString As String
    Dim SQLQuery As String
 
    'Connexion au serveur Oracle
    connectionString = "XXXXXXXXXXXXXXXXXXXXXXXXX"
    Set Cn = New ADODB.Connection
    Set CP = New ADODB.Command
    Set Rs = New ADODB.RecordSet
    With Cn
        .connectionString = connectionString
        .CursorLocation = adUseClient
        .Open
    End With
 
    With CP
        .ActiveConnection = Cn
        SQLQuery = "Insert into FIELDS(ID_FIELD, TYPE_FIELD, NAME_FIELD) VALUES ('221', 'No', 'TEST')"
        .CommandType = adCmdText
        .CommandText = SQLQuery  
        .Execute
    End With
 
    Debug.Print CP.CommandText
    ' Close ADO objects
    Cn.Close
    Set Cn = Nothing
    Set Rs = Nothing
    Set CP = Nothing
Merci pour votre aide.