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é:
Si je ne suis pas claire dans mes propos dite le mois je répondrais pour vous donner des precisions.
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
Merci d'avance
Partager