CreerRequete

Retour vers Access

Créer et sauver des requêtes par VBA

Exposé : pour réaliser une saisie automatique et créer une requête personnalisée

Etat des lieux : nous allons créer une application qui nous permet de tenir à jour les prestations de notre équipe.
Il nous faut une table qui reprend :

  • Un champ "Dates" mais que nous laissons en format texte
  • Un champ "Noms" pour stocker le nom des membres de l'équipe
  • 31 champs qui porteront comme intitulé le numéro du jour, donc 1,2,3,...12,13,....31

Il nous faut un formulaire indépendant avec 2 objets

  • Un bouton de commande
  • Un objet Calendar (un calendrier - Access 97) Sous Access 2010 et supérieur, on place simplement un textbox indépendant sur lequel on règle la propriété "format" sur "Date abrégée" et la propriété "Nom" en "Calendar2" pour notre exemple, vous pouvez lui donner un autre nom, il faudra simplement modifier le code VBA
  • Sous Access 97
  • Sous Access 2010 ou supérieur

But de l'exercice : récupérer la date sélectionnée dans le calendrier, en extraire le jour et créer une requête qui comportera 3 champs (Dates; Noms; et le jour qui nous intéresse, donc il faut à un certain moment injecter la variable jour comme nom de champ). Pas compris ! ok ! exemple, je sélectionne le 01 Sep 2003 sur le calendrier, je pousse sur mon bouton et j'obtiens une réponse qui va créer une requête comportant les champs (Dates; Noms; 21) , et bien sûr,tant qu'à faire on appliquera un filtre sur le champ Dates pour n'avoir à l'écran que les lignes intéressantes.
Cette requête servira de critère pour un second formulaire qui sera du même coup dynamique.
Sauf ! que je rencontre un ennui, ce formulaire est en mode fiche (je préférerais le mode tabulaire) et que je dois le sauvegarder à chaque fois et ça, c'est très embêtant car on ne peut pas demander à un utilisateur d'effectuer cette manœuvre (cela ne fait pas professionnel et s'il change de nom,le nombre de formulaire va augmenter sans cesse car Access incrémente le nom s'il existe déjà)
Voyons le code attaché au bouton "Créer une requête"