Bonjour a tous,

Je bosse sur un classeur, qui est la partie graphique d'une base ACCESS.

  1. on importe la table ACCESS dans une feuille.
  2. on modifie, on repère les changements des valeurs
  3. on stocke les les entêtes, les id, et la valeur des champs modifiés
  4. Juste avant d'enregistrer on bouclee sur les valeur stockées et lance un UPDATE pour chacune des lignes.




Nom : 2016-04-13 16_25_34-Microsoft Excel - TEST BDD __ pour SFR.xlsm.png
Affichages : 176
Taille : 28,0 Ko


De temps à autre j'ai des loupés, certaine valeurs ne sont pas transmisent à access.....
J'imagine que c'est un problème sur les close ou peut-être que le UPDATE n'a pas le temps de se faire ?

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
 
Sub update_tot()
    Dim rs As Object
    Dim strSQL As String
    Dim strConnection As String
 
 
    Set cn = CreateObject("ADODB.Connection")
 
    strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
        "Data Source=" & "\\chemin\madb.acdb"
 
    der_li = der_ligne_feuille("a updater", "A")
 
    Dim Range_Update As Range
    Set Range_Update = Sheets("a updater").Range("A2:A" & (der_li - 1))
 
    cn.Open strConnection
 
    For Each cellule In Range_Update
 
        Id_val = Sheets("a updater").Cells(cellule.Row, 1).Value
        Entete = Sheets("a updater").Cells(cellule.Row, 2).Value
        Val_champs = Sheets("a updater").Cells(cellule.Row, 3).Value
 
        strSQL = "UPDATE Table SET [" & Entete & "] = '" & Val_champs & "' WHERE ID = " & Id_val
        Sheets("a updater").Cells(cellule.Row, 8).Value = "UPDATE Table SET [" & Entete & "] = '" & Val_champs & "' WHERE ID = " & Id_val
        Set rs = cn.Execute(strSQL)
 
        rs.Close
        Set rs = Nothing
 
    Next cellule
 
        cn.Close
        Set cn = Nothing
End Sub