MS Access - Fonctions intégrées
Dans ce chapitre, nous travaillerons avec les fonctions intégrées. Dans Access, il existe près d'une centaine de fonctions intégrées et il est presque impossible de couvrir chacune d'entre elles. Dans ce chapitre, nous couvrirons la structure de base, la syntaxe et utiliserons certaines des fonctions les plus populaires, ainsi que les pièges, afin que vous puissiez explorer par vous-même certaines des autres fonctions.
Les fonctions
Une fonction est une procédure VBA qui effectue une tâche ou un calcul et renvoie un résultat. Les fonctions peuvent généralement être utilisées dans les requêtes, mais il existe d'autres endroits où vous pouvez utiliser des fonctions.
Vous pouvez utiliser des fonctions dans les propriétés du tableau, par exemple, si vous souhaitez spécifier une valeur par défaut pour un champ de date / heure, vous pouvez utiliser la date ou le Now pour appeler les informations de date / heure actuelles de votre système et saisir cette valeur automatiquement.
Vous pouvez également utiliser des fonctions dans une expression lorsque vous créez un champ calculé ou utiliser les fonctions dans des contrôles de formulaire ou d'état. Vous pouvez utiliser des fonctions même dans les arguments de macro.
Les fonctions peuvent être assez simples, ne nécessitant aucune autre information à appeler, ou simplement référencer un champ à partir d'une table ou d'une requête.
D'un autre côté, ils peuvent également devenir assez compliqués, avec plusieurs arguments, des références de champ et même d'autres fonctions imbriquées dans une autre fonction.
Voyons maintenant quelques exemples d'utilisation des fonctions intégrées.
Fonctions de date et d'heure
Comprenons maintenant les fonctions Date et Heure -
La fonction Date () est conçue pour renvoyer la date système actuelle. Cette fonction ne nécessite aucun argument de fonction ni aucune information supplémentaire. Tout ce que vous avez à faire est d'écrire le nom de la fonction et ceux qui ouvrent et ferment les parenthèses.
Il existe deux fonctions intégrées très similaires Time () et Now ().
La fonction Time () renvoie uniquement l'heure système actuelle et la fonction Now () renvoie à la fois la date et l'heure système actuelles.
Selon les données que vous souhaitez suivre, stocker ou interroger, vous disposez de trois fonctions intégrées et faciles à utiliser pour vous aider dans cette tâche.
Ouvrons maintenant votre base de données et créons une nouvelle requête à l'aide de la conception de requêtes et ajoutons tblProjects et tblTasks.
Ajoutez ProjectName à partir de tblProjects et TaskTitle, StartDate et DueDate à partir de tblTasks et exécutez votre requête.
Vous pouvez maintenant voir toutes les différentes tâches de tous les projets. Si vous souhaitez afficher les tâches du projet en cours à la date du jour, nous devons spécifier un critère à l'aide d'unDate() Fonction pour regarder les projets qui commencent à la date d'aujourd'hui ou après.
Précisons maintenant les critères sous le StartDate.
Le critère commence par un opérateur greater than symbol, suivi d'un equal to symbol et alors Date Function.
Lorsque nous exécutons cette requête, toutes les tâches se produiront à la date d'aujourd'hui ou à l'avenir, comme dans la capture d'écran suivante.
Voici un exemple de la façon dont vous pouvez utiliser la fonction Date () comme critère de requête.
Disons maintenant que cette requête doit être plus flexible en termes de dates à partir de cette semaine.
Nous avons quelques tâches différentes qui ont commencé cette semaine, qui n'apparaissent pas dans cette liste actuelle, en raison de nos critères. Il regarde les dates de début qui sont égales à aujourd'hui ou plus.
Si nous voulons voir les tâches qui ont commencé cette semaine, qui ne sont pas encore terminées ou devraient se terminer aujourd'hui, revenons à la vue Conception.
Ici, nous ajouterons quelques informations supplémentaires à ces critères. En fait, nous voulons qu'il soit supérieur ou égal à la date d'aujourd'hui moins sept jours.
Si nous tapons moins sept et exécutons la requête, vous pouvez également voir les tâches qui ont commencé cette semaine.
Fonction DateDiff ()
La fonction DateDiff () est une autre fonction de date / heure très populaire. La fonction DateDiff renvoie un Variant (long), spécifiant le nombre d'intervalles de temps entre deux dates spécifiées. En d'autres termes, il calcule la différence entre deux dates et vous pouvez choisir l'intervalle selon lequel la fonction calcule cette différence.
Disons maintenant que nous voulons calculer l'âge de nos auteurs. Pour cela, nous devons d'abord créer une nouvelle requête et ajouter notre table auteurs, puis ajouter les champs FirstName, LastName et BirthDay.
Nous pouvons calculer l'âge des personnes en calculant la différence entre leur date de naissance ou anniversaire et quelle que soit la date du jour.
Essayons d'utiliser la fonction DateDiff dans un nouveau champ.
Appelons-le Age suivi de deux points, puis écrivons DateDiff Function.
- Le premier argument de fonction de la fonction DateDiff est l'intervalle, tapez donc «yyyy».
- L'argument de fonction suivant est la première date à laquelle nous voulons calculer, qui, dans ce cas, sera le champ Anniversaire.
- Le troisième argument de fonction est quelle que soit la date du jour.
Maintenant, exécutez votre requête et vous verrez le nouveau champ qui indique l'âge de chaque auteur.
Fonction Format ()
La fonction Format () renvoie une chaîne, contenant une expression mise en forme selon les instructions contenues dans une expression de format. Voici la liste des formats définis par l'utilisateur qui peuvent être utilisés dans la fonction Format () .ss
Réglage | La description |
---|---|
aaaa | An |
q | Trimestre |
m | Mois |
y | Jour de l'année |
ré | journée |
w | Jour de la semaine |
ww | La semaine |
h | Heure |
n | Minute |
s | Seconde |
Revenons maintenant à votre requête et ajoutons plus de champs dans le même en utilisant la fonction Format ().
Tapez la fonction de format. Le premier argument de fonction sera une expression, qui peut être presque n'importe quoi. Laissez-nous maintenant le champ anniversaire comme la première et la prochaine chose est d'écrire notre format. Dans ce cas, nous avons besoin de mois, mois, jour, jour. Écrivez «mmjd» entre guillemets, puis exécutez votre requête.
Il prend maintenant la date du champ anniversaire, 4 est le mois et 17 est le jour.
Ajoutons «mmm» et «mmmm» au lieu de «mmdd» dans les champs suivants comme dans la capture d'écran suivante.
Exécutez votre requête et vous verrez les résultats comme dans la capture d'écran suivante.
Dans le champ suivant, il renvoie les 3 premiers caractères du nom du mois pour cet anniversaire et dans le dernier champ, vous obtiendrez le nom complet du mois.
Pour voir le mois suivi de l'année à partir de l'anniversaire, ajoutons le "yyyy" ainsi que le montre la capture d'écran suivante.
Laissez-nous exécuter à nouveau votre requête.
Vous verrez maintenant le mois suivi d'une virgule puis de l'année.
Fonction IIf ()
La fonction IIf () est une abréviation pour «Immediate If» et cette fonction évalue une expression comme vraie ou fausse et renvoie une valeur pour chacune. Il a jusqu'à trois arguments de fonction, qui sont tous obligatoires.
- Le premier argument est toute expression que vous souhaitez évaluer.
- L'argument suivant représente la partie vraie, qui peut être une valeur ou une expression renvoyée si votre première expression est vraie.
- Le dernier argument est ce que vous voulez retourner si votre expression est fausse.
Exemple
Prenons un exemple simple. Nous allons créer une nouvelle requête en utilisant la conception de requête et ajouter la table tblAuthors, puis ajouter les champs suivants.
Vous pouvez maintenant voir que nous avons trois champs - FirstName, MiddleInitial, LastName, puis ce champ concaténé, qui rassemble les trois champs. Laissez-nous exécuter votre requête pour voir le résultat de cette requête.
Vous pouvez maintenant voir le résultat de la requête, mais vous remarquerez également que certains enregistrements n'ont pas d'initiale au milieu. Par exemple, l'enregistrement Joyce Dyer n'a pas d'initiale au milieu, mais dans le champ FullName, vous verrez la période qui n'a pas vraiment besoin d'être là. Revenez donc à la vue Conception. Ici, nous allons concaténer le nom d'une manière différente en utilisant la fonction IIf.
Écrivons le nom dans un autre champ et appelons-le FullName1, puis tapez la fonction IIf.
Le premier argument de la fonction Immediate If va être votre expression. Dans l'expression, nous verrons si le champ initial du milieu est vide ou nul.
L'argument suivant est la vraie partie. Donc, si l'initiale du milieu est nulle, nous voudrions afficher le FirstName et le LastName.
Maintenant, pour notre partie fausse - si le MiddleInitial n'est pas nul, nous voudrions afficher le FirstName, le MiddleInitial et le LastName.
Laissez-nous maintenant exécuter votre requête et vous verrez les résultats comme dans la capture d'écran suivante.