Bonjour tout le monde,

Je suis nouveaux sur MS Access et j'ai bien évidement quelque questions. Tout les mois je dois mettre a jour la base de donnée a partir de plusieurs excel template (qui sont exactement pareil).

Le process que je fais actuellement:
1- Je consolide tout les template dans un seul fichier excel. CE fichier excel a exactement les meme header que dans les tables de ma db Access.
La premiere ligne sont les header et ensuite chaque ligne correspond a un clients.

Heureusement la consolidation se fait par code VBA

2- Une fois la consolidation faite, je met a jours la base de donnée via un code VBA. MAIS je dois le faire marcher pour chaque tables car je n'arrive pas a mettre a jour toutes les table correspondante au client. Le code que j'ai a present permets exclusivement de mettre a jour une seule table.

Dans ma base de donnée j'ai 2 tables: "CompanyInformation" et "FY_All" qui sont relié par la "ID"

Ma question est comment faire pour que se code VBA update en une seule fois les 2 tables en VBA?




Voici le code qui est utilisé:

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
Public Sub SupplierPort()
Dim cn As ADODB.Connection, rs As ADODB.Recordset
Dim sDUNS As String, sName As String, cScore As Variant
' connect to the Access database
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " & _
    "Data Source=C:\Users\Gord\Desktop\Database1.accdb;"
' open a recordset
Set rs = New ADODB.Recordset
rs.Open "CompanyInformation", cn, adOpenKeyset, adLockOptimistic, adCmdTable
 
Range("A2").Activate  ' row 1 contains column headings
Do While Not IsEmpty(ActiveCell)
    sDUNS = ActiveCell.Value
    sName = ActiveCell.Offset(0, 1).Value
    cScore = ActiveCell.Offset(0, 2).Value
 
    rs.Filter = "DUNS='" & sDUNS & "' AND Name='" & sName & "'"
    If rs.EOF Then
        Debug.Print "No existing record - adding new..."
        rs.Filter = ""
        rs.AddNew
        rs("DUNS").Value = sDUNS
        rs("Name").Value = sName
    Else
        Debug.Print "Existing record found..."
    End If
    rs("Score").Value = cScore
    rs.Update
    Debug.Print "...record update complete."
 
    ActiveCell.Offset(1, 0).Activate  ' next cell down
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
Si je ne suis pas claire dans mes propos dite le mois je répondrais pour vous donner des precisions.

Merci d'avance