Bonjour à tous !
J'utilisais le code suivant pour insérer automatiquement des lignes dans une table en fonction d'un paramètre de date :
Et pour m'affranchir de la création de doublons si les lignes existaient déjà j'avais créé dans ma table Horaire un Index sans doublon basé sur la fk_contrat et Ho_jourscontrat.
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 Private Sub Bt_Heure_Click() DtDeb = Me.Date_Deb DtFin = Me.Date_Fin Fk_contrat = Me.Co_id For Boucle = 0 To DateDiff("d", DtDeb, DtFin) MaDate = DtDeb + Boucle DoCmd.SetWarnings False DoCmd.RunSQL ("INSERT INTO Horaire ( fk_contrat, Ho_jourscontrat) SELECT " & Fk_contrat & " AS Co_id, #" & Format(MaDate, "mm/dd/yyyy") & " # AS Ho_jourscontrat;") DoCmd.SetWarnings True Next Me.Refresh End Sub
Hors notre informaticien nous a migré sur SQL server qui ne prends pas en compte les possibilités d'index. Donc je dois adapter mon code pour tester l'existence d'une ligne contenant déjà la clé et le champs, si oui je n'insère rien, si non j'insère les infos correspondantes.
Contraintes supplémentaires cette table est destinée à contenir un grand nombre de lignes (>80 000). Une recherche par ligne ne risque-t-elle pas d'allonger considérablement le temps de création ?
Merci d'avance !
Sardaucar
Partager