Bonjour,
Je n'arrive pas a trouver la réponse sur le net ni sur ce forum et j'aurai donc besoin de votre aide SVP
J'ai une macro pour mettre a jour des informations sur des articles dans une base oracle.
N'étant pas pro des macro j'utilise sans doute des méthodes qui feront hurler plus d'un puriste mais bon ça fonctionne.
le problème?: justement .... ça fonctionne!!
Je m'explique: dans un tableau les utilisateurs remplissent une liste d'article avec certaines informations afin de les mettre jour dans notre base oracle. Ce que je voudrai faire c'est pour toute la liste de requêtes de mise a jour tester tout d'abord ces requêtes et si l'update entraîne une violation de nos paramètres annuler l'update.
voici une partie du code
En testant ma macro je me suis rendu compte que dès que je faisais un update le commit est induit ce qui ne m'arrange pas.
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
54 Sub prix() Dim oConn As ADODB.Connection Dim Rst As ADODB.Recordset 'Création de l'objet connexion Set oConn = New ADODB.Connection oConn.ConnectionString = gstrConnGMAO 'Ouverture de la connexion oConn.Open oConn.CommandTimeout = 0 If Err.Number <> 0 Then MsgBox "Problème de connexion": Exit Sub [...suite macro] For i = Ligne To Fin For j = 16 To 27 Requete = Cells(i, j).Value If Requete <> "" Then Set Rst = oConn.Execute(Requete, MAJ) If MAJ > 1 Then nb_error = True Open (chemin & "\" & fichier & extension) For Append As #2 Print #2, "Ligne " & i & " PDR: " & Article & " la Maj concerne " & MAJ & "couple PDR-Fournisseur: ERREUR (une Maj ne peut concerner que 1 couple PDR fournisseur)" Close #2 Set Rst = oConn.Execute("rollback") ElseIf MAJ = 0 Then nb_error = True Open (chemin & "\" & fichier & extension) For Append As #2 Print #2, "Ligne " & i & " PDR: " & Article & " aucune mise a jour: ERREUR sur le couple PDR-Fournisseur: " & Fournisseur & " ne fournit pas cette PDR" Close #2 Set Rst = oConn.Execute("rollback") ElseIf Err.Number <> 0 Then nb_error = True Open (chemin & "\" & fichier & extension) For Append As #2 Print #2, "Erreur SQL dans la requete " & Err.Description Close #2 Set Rst = oConn.Execute("rollback") Err.Number = 0 End If End If Next Next [suite macro] end sub
Y aurait il un moyen en vba de "tester" les updates, et si cela ne convient pas annuler ces requêtes afin d'avertir l'utilisateurs qu'il fait une ou plusieurs erreurs.
J'espère avoir été suffisamment clair
Merci par avance
Partager