Bonjour tout le monde, je voudrais créer une procédure qui me permette de mettre à jour des recorsets des contrôles Data.
J'ai une feuille avec plusieurs contrôles Data (ctrlDataA, ctrlDataB, etc. par exemple) chaune reliée à une table spécifique (TableA, TableB, etc.). Seulement dans ma base de donnée toutes ces tables reliées aux contrôles Data ont une partie de la clé en commun (Nom, Modèle, Entité, Année) et l'autre partie des clés des tables varie (Couleur pour TableA, Taille pour TableB, etc.).
Alors pour ne pas avoir à répéter le même code, j'ai créé une procédure, mais elle ne marche 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
Sub MAJ()
  KeyTables (ctrlDataA)
  KeyTables (ctrlDataB)
End Sub

Public Sub KeyTables(ctrlData As Data)
'Mets tous les ctrlData en mode Ajout et donne les clés des tables
'pour permettre les enregistrements sans doublons dans les Recorsets
With ctrlData.Recordset
    If .EditMode = dbEditNone Then
        .AddNew
        !Nom = "Paul"
        !Modèle = "Test"
        !Entite = Combo1.ListIndex + 1
        !Num_Periode = 2006
  End If
End With
End Sub
Je n 'y arrive pas et je suis donc oblige de réécrire sensiblement le même code comme ci-dessous
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
With ctrlDataA.Recordset
    If .EditMode = dbEditNone Then
        .AddNew
        !Nom = "Paul"
        !Modèle = "Test"
        !Entite = Combo1.ListIndex + 1
        !Num_Periode = 2006
    End If
End With

With ctrlDataB.Recordset
    If .EditMode = dbEditNone Then
        .AddNew
        !Nom = "Paul"
        !Modèle = "Test"
        !Entite = Combo1.ListIndex + 1
        !Num_Periode = 2006
    End If
End With
Merci pour votre coup de main…