Salut à tous,
j'ai un petit problème concernant la vérification des données que je dois ajouter dans une table.
Ma table se présente de la forme suivante :
subir (idarret (texte), code_arret (numérique), code_machine (texte), dureeAM (numérique), observation (texte))
L'idarret est de la forme suivante : AAAAWW-XX avec AAAA l'année en cours, WW la semaine en cours et XX le numéro de l'arrêt qui s'incrémente à chaque nouvel arrêt. Donc en gros, aujourd'hui on aurait 200918-1.
Voilà maintenant que j'ai situé mon contexte, je vous explique mon problème.
Je veux qu'avant chaque ajout dans la table "subir" (les champs sont récupérés dans des zones de textes), il y ait un contrôle sur le code_machine et le code_arret saisie qui envoie un message si il y a déjà un enregistrement pour la semaine et l'année en cours.
C'est un peu compliqué à expliquer donc je donne un exemple :
Lignes déjà présente dans la table :
idarret code_arret code_machine dureeAM observation
200918-1 222 A1 5 blibli
200918-2 223 A2 9 blabla
Imaginons maintenant que je veuille rentrer cette nouvelle ligne:
idarret code_arret code_machine dureeAM observation
200918-3 222 A1 18
Cela ne va pas poser de problème à l'ajout car ce n'est pas le même idarret (clé) mais il y a une redondance que je veux signaler à l'utilisateur.
J'ai donc pensé à utiliser des Recordset avec du SQL mais le problème est qu'il faut faire des comparaisons avec des champs du formulaire et puis il y a 4 conditions, et je ne sais pas comment faire quelque chose de rapide et performant.
Pour la vérification de l'année et de la semaine, j'utilise la fonction Mid de cette façon:
Mid(idarret,1,4) = " & ztYear & " And Mid(idarret,5,2) = " & ztNumSemaine & "
Mais je sais pas si faire des vérifications sur le formulaire à chaque ajout ne va pas alourdir celui ci.
J'ai vu qu'il existait une fonction FindFirst avec les Recordset, mais je ne vois pas trop comment lui imposer mes 4 conditions.
Bref si quelqu'un a une piste à me donner, ça m'aiderait beaucoup, je reste dispo pour toute autre question si je n'ai pas été assez clair.
Merci à ceux qui se pencheront sur le sujet
A+
Partager