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 55 56 57
| Public Function MajMainTbl()
Dim rstSrce As DAO.Recordset
Dim rstDest As DAO.Recordset
Dim sql As String
Dim Z As Integer
Dim I As Integer
' Mise à jour du champ "Modif" de la "tblBasePrincipale" depuis les 3 autres...
For Z = 1 To 3
' On ouvre le recordset de la table de destination (tblBasePrincipale)
Set rstDest = CurrentDb.OpenRecordset("SELECT * FROM tblBasePrincipale ORDER BY NumCarte")
rstDest.MoveLast
rstDest.MoveFirst
' On ouvre le recordset de la table source (tblBase_2)
Set rstSrce = CurrentDb.OpenRecordset("SELECT * FROM tblBase_" & Z & " ORDER BY NumCarte")
' On explore la table source (tblBase_1 à _3)
With rstSrce
While Not .EOF
' On teste si la ligne de la table source existe déjà dans la table de destination
For I = 1 To rstDest.RecordCount
If !NumCarte = rstDest!NumCarte Then
If !Modif > rstDest!Modif Then ' On teste si la "modif" source est > que la "modif" destination
rstDest.Edit ' Si la valeur de la source est supérieure à celle de la destination, on modifie
rstDest!Modif = !Modif
rstDest.Update
End If
End If
rstDest.MoveNext
Next I
Suite:
rstDest.MoveFirst ' On retourne au premier enregistrement de la table de destination
.MoveNext ' On passe à l'enregistrement suivant dans la table source
Wend
End With
Next Z
' Ajout de nouveaux clients à la "tblBasePrincipale" depuis les 3 autres...
For Z = 1 To 3
sql = "INSERT INTO tblBasePrincipale ( NumCarte, Montants, Modif ) " & _
"SELECT tblBase_" & Z & ".NumCarte, tblBase_" & Z & ".Montants, tblBase_" & Z & ".Modif " & _
"FROM tblBase_" & Z & " " & _
"WHERE (((tblBase_" & Z & ".[NumCarte]) Not In (Select [NumCarte] From tblBasePrincipale)))"
CurrentDb.Execute (sql)
Next Z
' Rapport visuel pour indiquer le nombre de lignes ajoutées
I = DCount("NumCarte", "tblBasePrincipale", "isnull(Nom)")
If I > 0 Then
MsgBox "Après la mise à jour de la base principale, " & I & _
IIf(I > 1, " lignes sont ", " ligne est ") & "à compléter."
' ... et là, tu peux ouvrir le formulaire de tes clients
' pour renseigner les différents champs de ta tblBasePrincipale
End If
End Function |
Partager