StDBName() | Renvoie le chemin et le nom de la base de données en cours |
Maintenant() Now() Date() |
Renvoie la date-système |
=[Nom] | Champ nom de l'objet en cours (Etat ou
formulaire) Dans le cas ou on voudrait le champ Nom d'une table, il faudrait écrire =![Nom] |
=Utilisateur() CurrentUser() |
Utilisateur en cours (Admin par exemple) |
Renvoie Vrai si les 2 opérateurs sont identiques
Exemple :
X = (3>4) EQV (5>14)
renvoie Vrai
0 | 0 | Vrai |
0 | 1 | Faux |
1 | 0 | Faux |
1 | 1 | Vrai |
Pour empêcher les différents affichages lors de l'exécution d'un module, il faut mettre au début du module
DoCmd Echo False, "Veuillez patienter"
et à la fin :
DoCmd Echo True
ATTENTION : Si dans le module, il y a des interactions prévues par l'utilisateur, ça peut planter la machine.
Option Explicit
Doit être placé dans la section Déclaration du Module
Il est possible d'exécuter du code de module (module à part, pas dans un formulaire) sans avoir besoin de l'assigner à un événement quelconque . Il suffit de presser F5
Une collection personnalisée remplace avantageusement un tableau. Attention : Contrairement aux collections prédéfinies dont le premier indice est 0, dans le cas de collections personnalisées, le premier Indice est 1.
Exemple
Dim x
Déclaration de la nouvelle collection personnalisée :
Dim Col As New Collection
Remplissage de la collection avec 3 éléments :
Col.Add "Dieu"
Col.Add "GrandMaitre"
Col.Add "Homme"
Remplissage du dernier élément que l'on voudrait placer en 3ème position (après le 2ème), et qui va donc repousser le dernier (on aurait pu utiliser la méthode Before):
Col.Add "Maitre", After:=2
Affichage de tous les éléments de la collection grâce à la méthode Count :
For x = 1 To Col.Count
MsgBox Col(x)
Next
Chaque élément doit être représenté par son indice. La ligne suivante renvoie une erreur :
MsgBox Col("Dieu")
Et maintenant on retire chaque élément grâce à la méthode Remove :
For x = 1 To Col.Count
Col.Remove (1)
Next
Cette dernière ligne renvoie donc un message d'erreur, car la collection est vide :
MsgBox Col(1)
Utiliser DoCmd.RunCommand
Les deux écritutes suivantes renvoient le même résultat, mais dans le cas de la première écriture, l'assistant de saisie semi-automatique ne se met pas en marche, et il faut deviner que la propriété ControlType est disponible.
MsgBox Me("IDPersonne").ControlType
MsgBox Me.IDPersonne.ControlType
Pour que les éléments de ce module puissent comparer des chaînes de texte en différenciant les majuscules des minuscules, il faut mettre dans la section des déclarations :
Option Compare Binary
Access 95
Lors d'une longue ligne de commande, il est possible de la couper en ajoutant un trait de soulignement à la fin de chaque ligne coupée
Il existe plusieurs méthode de mettre fin à un processus :
End DoCmd.Quit |
Sort carrément d'Access |
Exit Sub | Sort de la routine en cours |
Stop | Arrête la procédure comme s'il y avait eu une erreur |
Pour installer des guillemets à afficher dans une chaîne de caractères, il faut les tripler (et Access Basic va les quadrupler de lui-même, comme ceci :
MsgBox """ & "Message" & """
Emet un bip
Il est possible de décomposer le message d'un MsgBox avec le @, comme ceci
MsgBox "Un@Deux@Trois@Quatre"
Un | Titre, en gras |
Deux | Normal, 2 lignes plus bas |
Trois | Dernière partie, normal, encore 2 lignes plus bas |
Quatre | Message non imprimé |
permet d'afficher une boîte de dialogue avec :
Exemple :
Retour = Chr(13) & Chr(10)
Invite = "Texte d'invitation" & Retour & "Bonjour"
Resultat = InputBox(Invite, "Texte du titre", "Texte par défaut", DistanceBordGauche, DistanceBordHaut)
MsgBox Resultat
Fonctions qui permettent de compter les enregistrements (DCOUNT) ou de faire la somme de certains champs de certains enregistrements. Un exemple est donnée dans la base
Exemple :
Me![TXTSomme] = DSum("[Age]", "T_Client", "[Age] > 1 and [Age] < 100")
Me![TXTCompte] = DCount("[IDClient]", "T_Client", "[Age] > 1 and [Age] < 100")
Paramètre 1 : Champ qui va être inspecté dans ...
Paramètre 2 : cette table ou requête avec...
Paramètre 3 : ces critères facultatifs.
ATTENTION : J'ai essayé d'utiliser une date dans un critère de DCount, je n'y arrive pas simplement. Il est nécessaire de séparer le jour du mois de l'année par des tirets au lieu de points, comme ceci :
DCount("[IDClient]", "T_ClientAbonnement", "[IDClient] = " & Me![IDClient] & " And [DateAbonnementFin] > " & Day(Date) & "-" & Month(Date) & "-" & Year(Date))
Afin d'obtenir un nombre systématiquement entier comme résultat d'une division, Il suffit de remplacer le / par \
Permet d'assigner un alias à un nom de contrôle : SET NomContrôle = Personnalisé. Avant de l'utiliser, il faut la déclarer comme ceci : Dim NomContrôle As Control
Exemple :
Dim truc As Control
Set truc = Me![NomArticle]
truc.backcolor = 255
VARIANT : Il est possible de connaître le type d'une donnée variant grâce à la fonction VARTYPE. Le résultat de cette fonction est :
0 | Vide | V_EMPTY |
1 | Null | V_NULL |
2 | Integer | V_INTEGER |
3 | Long | V_LONG |
4 | Single | V_SINGLE |
5 | Double | V_DOUBLE |
6 | Currency | V_CURRENCY |
7 | Date | V_DATE |
8 | String | V_STRING |