Bonjour.
Je suis confus entre Macro, Macro Access, VBA, voir Macro VBA, et code, et il y aussi la fenêtre SQL.
Je ne suis pas vraiment surpris car c'est un peu mêlant, surtout que nous ne sommes pas très stricte sur l'usage.
Ici quelques explications qui j'espère t'aideront.
- Macro : ce peut être 2 choses, soit une macro pure et dure (objet de type Macro), soit du code VBA (objet de type module) appelé par un bouton ou autre chose,
Note qu'une macro peut être dans un module ou dans une macro ou bien directement "dans" un formulaire ou un rapport. - Macro Access : à mon avis cela désigne les macros pures et dures.
- Macro de données : disponible à partir de Access 2010, ce sont des macros (mais différentes des macros pures et dures) qui sont enregistrées dans et exécutées par les tables.
- Code : terme générique pour toutes les sortes de programmation possible mais qui le plus souvent désigne du code VBA.
la fenêtre SQL est simplement l'endroit où on peut voir et taper du code SQL pour une requête. Personnellement je m'en sert le moins souvent possible. L'éditeur de requête permet de faire 95% des choses dont on a besoin et l'éditeur de SQL est vraiment limité. Même Notepad est meilleur que lui.
Pour en revenir à ton problème.
Oui, il faut que tu crée un nouveau module, ce que tu sembles avoir fait.
Ensuite tu double-cliques sur ce module pour accéder à l'éditeur de code VBA (ou simplement appelé Éditeur et parfois VBE).
Tu copies le code et tu vérifies qu'il compile (menu débug / compiler). Je n'ai pas testé mon code donc il pourrait y avoir des erreurs et/ou des fautes de frappe.
Une règle de bonne "hygiène" est de toujours avoir du code (VBA) qui compile sans erreur.
C'est le 1er pas pour s'éviter des bugs et des ennuis en production.
Une autre bonne règle est de toujours sauvegarder son code AVANT de l'exécuter. Cela évite d'avoir à refaire son travaille si Access plante soudainement à l'exécution.
Aussi, avant de me lancer dans son usage réel, je crée généralement une procédure de test (dans mon module, juste au dessus de la fonction).
1 2 3
| private sub Test_ConvertirMinuteSecondeCentieme()
debug.print ConvertirMinuteSecondeCentieme("3'17''82")
end sub |
Cela envoie le résultat de l'exécution dans la fenêtre d'exécution immédiate (pour la faire afficher [Ctrl][g]).
Je peux ainsi valider que la fonction ou la procédure donne bien le résultat attendu.
Pour l'utiliser dans une requête, il suffit de créer une nouvelle colonne et de lui donner un nom puis de mettre l'appel de la fonction.
Quelque chose comme :
chronosV : ConvertirMinuteSecondeCentieme([NomTaTable].[chronosV])
Tu peux le taper directement dans l'éditeur de requête, pas la peine de passer par l'éditeur de SQL.
A+
Partager