16
Lexique algorithmique et VBA.doc page 1 / 16 om (2000-2007) T-GSI STAGE RENOVATION - Algorithmique - Lexique D’algorithmique & De programmation en VBA Olivier Mondet http://unidentified-one.net A. Correspondances langage algorithmique & VBA A.1. Types de variables ALGORITHMIQUE VBA Types de données : Plages de valeurs : Types de données : Plages de valeurs : Octet Byte De 0 à 255. Booléen Vrai ou Faux Boolean True ou False. Entier Integer De –32 768 à 32 767. Long Entier long. De –2 147 483 648 à 2 147 483 647. Réel Single (virgule flottante en simple précision). Double (virgule flottante en double précision). Currency Entier avec décalage pour signifier les types monétaires (avec 2 décimales). Decimal Nombres décimaux de grande précision (28 chiffres après la virgule). Date Date Du 1 er janvier 100 au 31 décembre 9999 (pour affecter une date : variable = #10/11/1999#). Chaîne String Texte. Variant Reçoit n’importe quelle valeur, qu’il s’agisse d’un nombre entier, d’un objet ou d’un texte. Type Cf. plus bas. Personnalisé (Avec Type) Cf. plus bas. Tableau[x, y, …] Un tableau a plusieurs dimensions notées ici x, y, … Array(x, y,…) Avec x & y (entiers) allant de 0 à n.

Lexique Algorithmique Et VBA

  • Upload
    neri000

  • View
    64

  • Download
    13

Embed Size (px)

DESCRIPTION

Petit Lexique de l'essentiel de VBA excel et Access

Citation preview

Page 1: Lexique Algorithmique Et VBA

Lexique algorithmique et VBA.doc page 1 / 16 om (2000-2007)

T-GSI STAGE RENOVATION - Algorithmique -

Lexique D’algorithmique & De programmation en VBA

Olivier Mondet http://unidentified-one.net

A. Correspondances langage algorithmique & VBA

A.1. Types de variables

ALGORITHMIQUE VBA Types de données :

Plages de valeurs : Types de données :

Plages de valeurs :

Octet Byte De 0 à 255.

Booléen Vrai ou Faux Boolean True ou False.

Entier Integer De –32 768 à 32 767.

Long Entier long. De –2 147 483 648 à 2 147 483 647.

Réel Single (virgule flottante en simple précision).

Double (virgule flottante en double précision).

Currency Entier avec décalage pour signifier les types monétaires (avec 2 décimales).

Decimal Nombres décimaux de grande précision (28 chiffres après la virgule).

Date Date Du 1er janvier 100 au 31 décembre 9999 (pour affecter une date : variable = #10/11/1999#).

Chaîne String Texte.

Variant Reçoit n’importe quelle valeur, qu’il s’agisse d’un nombre entier, d’un objet ou d’un texte.

Type Cf. plus bas. Personnalisé (Avec Type) Cf. plus bas.

Tableau[x, y, …]

Un tableau a plusieurs dimensions notées ici x, y, …

Array(x, y,…)

Avec x & y (entiers) allant de 0 à n.

Page 2: Lexique Algorithmique Et VBA

Lexique algorithmique et VBA.doc page 2 / 16 om (2000-2007)

A.2. Déclarer les variables

On utilise la séquence suivante :

Variables 

variable : Réel Nom_Famille : Chaîne variable1, variable2 : Réel  Déclarer un tableau : variable[n, …] de chaîne (où n représente la première dimension du tableau.) Exemple pour construire un tableau d’une colonne et 10 lignes : variable[10] de Chaîne  Construire un tableau de deux colonnes et 10 lignes : variable[2,10] ou variable[10,2]  N.B. : Les variables peuvent être écrites en majuscules ou en minuscules. On ne peut pas changer de format d’écriture au cours d’un algorithme. Si la variable choisie doit comporter plusieurs mots, comme par exemple « montant h.t. », les différents mots qui composent le nom de la variable seront alors séparés par un trait de soulignement "_" (touche 8 du pavé alphabétique) : montant_ht (sans les points après le h et le t.) Ou l’on distinguera les mots par des majuscules : montantHT

Vérifier si au début du module : Option Explicit est toujours activé car cette option vous informera si une variable n’est pas déclarée. Dim variable as Single Dim Nom_Famille as String Dim prenomEleve as Single, codePostalas Single Déclarer un tableau : Dim variable(n, …) As String Ou Dim variable() As String (pour un tableau dont on ne connaît pas à l’avance la taille. Cette déclaration est très gourmande en capacité mémoire.) Il faut par la suite utiliser ReDim pour redimensionner le tableau dès que l’on en a la taille définitive. Par exemple : ReDim variable(3,10) Attention : VBA, comme les autres langages, commence la numérotation des variables d’un tableau à 0 ! Cela veut dire que si vous faites la déclaration suivante : Dim variable(3) As String Vous irez de 0 à 3, soit quatre occurrences de tableau nommé : variable. La seule façon de forcer VBA à commencer sa numérotation à 1 serait d'écrire l'instruction suivante en début de module: Option Base 1

Page 3: Lexique Algorithmique Et VBA

Lexique algorithmique et VBA.doc page 3 / 16 om (2000-2007)

A.3. Déclarer les types

Un Type permet de faire un tableau qui peut contenir différents noms de variables et surtout des variables de différents type. Quand on créé un tableau, on ne peut avoir qu’un seul type de donnée. Par exemple : variable[2,2] de chaîne Déclare un tableau à deux dimensions de chaînes. Type permet comme suit d’avoir un tableau de réels et de chaîne. Par exemple : Type Tablo   Code_Personnel :réel   Nom_Personnel :Chaîne 

Fin Type  Donnera le tableau : … … Permet de créer un tableau à deux dimensions comme une table avec une variable de type Réel et une autre de type Chaîne. Par la suite on déclare une variable du type que l’on vient de créer : Variable[n] :Tablo  Ou l’on affectera par exemple : variable[1].Code_Personnel   100 variable[1].Nom_Personnel   "DUPONT" 

Remarque : En VBA les déclarations Type se font toujours avant la procédure. Type Tablo Code_Personnel as Single Nom_Personnel as String End Type La variable tableau donnera : Dim variable As Tablo Ou l’on affectera par exemple : variable(1).Code_Personnel = 100 variable(1).Nom_Personnel = "DUPONT"

A.4. Déclarer les constantes

Constantes   Taux_TVA   "19,6"

Const Taux_TVA = "19,6"

Code_ Personnel

Nom_ Personnel

Page 4: Lexique Algorithmique Et VBA

Lexique algorithmique et VBA.doc page 4 / 16 om (2000-2007)

A.5. Déclarer les fonctions

Fonction Nom‐Fonction(variable) :réel   Entrée variable :réel  Pour retourner le résultat : . . . Retourner variable . . .  

Function Nom-Fonction(variable as Single) as Single Pour retourner le résultat : . . . Nom-Fonction = variable . . .

A.6. Ajouter un commentaire

Un algorithme comme un programme doit être lisible. Il faut donc ajouter des commentaires pour faciliter la compréhension du programme. Cela permet également de bien se repérer dans la structure de son algorithme. /* Commentaire */  Exemple : Nom_Candidat :Chaîne /* Variable recevant le nom du candidat */ 

L’apostrophe est le signe du commentaire en VBA. Dès que l’on place un apostrophe et que l’on tape du texte celui-ci se transforme en vert. ‘ Commentaire Exemple : Dim Nom_Candidat As String ‘ Variable recevant le nom du candidat

A.7. Affecter une valeur

On utilise le signe " " : Exemples : variable   12,3 variable   "Les chiens arrivent"

On utilise le signe "=" : Exemple : variable = 12,3 variable = "Les chiens arrivent"

A.8. Comparer

Égalité =

Différent <> Strictement supérieur à > Strictement Inférieur à < Supérieur ou égal à >= Inférieur ou égal à <=

Exemple : A inférieur ou égal à B se note : A <= B

Ce sont les mêmes symboles : = <> > < >= <= De la même manière : A inférieur ou égal à B se note : A <= B

Page 5: Lexique Algorithmique Et VBA

Lexique algorithmique et VBA.doc page 5 / 16 om (2000-2007)

A.9. Afficher

Pour afficher un résultat, une information on utilise la commande Afficher. Exemples : On peut afficher le contenu d’une variable : Afficher variable  On peut afficher une phrase : Afficher  "Les  Tortues  ont  toutes  une carapace !"  On peut afficher une phrase avec le contenu d’une variable : Afficher  "Le  montant  de  votre  commande est : ", variable 

Il existe deux façons d’afficher un résultat sous Access :

Soit par une boîte de dialogue grâce à l’instruction MsgBox. La manipulation de cette instruction est compliquée bien que les résultats soient mieux présentés. MsgBox Prompt, [Style de boite et bouton(s)], [Title], [HelpFile], [Context] Exemple : MsgBox "Le montant de votre commande est :" & Variable

Soit dans la fenêtre de débogage du module Access avec l’instruction Debug.Print Cette instruction est plus simple à utiliser, mais elle oblige d’ouvrir la fenêtre de débogage : pour voir les résultats.

(fenêtre de débogage)

Debug.Print Prompt Exemple : Debug.print "Le montant de votre commande est :" & Variable

N.B. : Voir en fin de lexique pour plus de détails sur ces instructions.

A.10. Les opérateurs (classés par priorité de traitement)

"( )" Appels de fonction : Exemple : (3 + 6) * 2 = 18

"^" Élévation à la puissance : Exemple : 9^2 = 18

"-" Négation : Exemple : ‐2 * 3 = ‐6

"*" et "/" Multiplication et division : Exemple : 4 * 2 + 4 / 2 = 10

"Div" Division entière : Exemple : 10 Div 3 = 3

"Mod" :

Modulo - Donne le reste de la division : Exemples : 10 Mod 3 = 1 10 Mod 2 = 0

"+" et "-" Addition et soustraction: Exemple : 4 + 3 – 5 = 2

Même priorités hormis l’instruction de division entière qui s’écrit "\" : Exemple : 10 \ 3 = 3

Page 6: Lexique Algorithmique Et VBA

Lexique algorithmique et VBA.doc page 6 / 16 om (2000-2007)

"=" "<>" "<" ">"

"<=" ">=".

Opérateurs de comparaison Cf. Comparaison

A.11. Cumul

var_Cumul   var_Cumul + variable  var_Cumul = var_Cumul + variable

A.12. Opérateurs logiques

Non Exemple : Si Non(A > 10) Alors … (Si A n’est pas supérieur strictement à 10) Et Exemple : Si A >= 10 Et A <= 20 Alors … (pour A compris entre 10 et 20 : A[10,20]) Ou Exemple : Si A > 10 Ou B = "Non" Alors … (pour la variable A strictement supérieure à 10 ou la variable b égale au mot « Non ».

Les instructions sont Not, And, Or : Not : If Not A > 10 Then … And : If A >= 10 And A <= 20 Then … Or : If A > 10 Or B = "Non" Then …

A.13. Structure d’un algorithme ou d’un programme

Algo Nom_de_l’algorithme 

Variables 

  Variable :réel /* commentaire */   Variable2 :Chaîne 

Début 

Corps de l’algorithme 

Fin 

Généralement les instructions sont soulignées en algorithmique. Quant aux variables on peut indifféremment les trouver toujours en majuscules ou en minuscules mais pas les deux en même temps.

Sub Nom_Programme() Dim variable as Single ‘ commentaire Dim variable2 as String ‘ commentaire . . .

Corps du programme

.

.

. End Sub Sub est une Procédure : une macro ; Function est une Fonction -> procédure qui peut renvoyer une valeur par son nom (ex : Time())

Page 7: Lexique Algorithmique Et VBA

Lexique algorithmique et VBA.doc page 7 / 16 om (2000-2007)

A.14. Conditions / Sélections

Condition : Si condition Alors   Action   Action… Fin Si

If condition Then Action Action… End If

Sélection :  Si condition Alors   Action   Action… Sinon   Action   Action… Fin Si  Selon Que variable   = valeur1 : Actions   = valeur2 : Actions…   .   .   Autrement : Action … Fin Selon  

If condition Then Action Action… Else Action Action… End If Select Case variable Case Is condition Action Case Is condition Action . . Else: Action… End Select

A.15. Les itérations

Les Itérations (ou Répétitions) sont aussi appelées des boucles : (Quitter prématurément une boucle : Sortir) Boucles avec condition au départ : Tant Que condition   Action   Action… Fin TQ  Boucles avec condition à la fin : Répéter   Action   Action… Jusqu’à condition  Boucles infinies : Itérer   Action   Action… Fin Itérer 

(Quitter prématurément une boucle : Exit Do) Boucles avec condition au départ : Do While condition Action Action… Loop ou Do Until condition Action Action… Loop Boucles avec condition à la fin : Do Action Action… Loop While condition

Page 8: Lexique Algorithmique Et VBA

Lexique algorithmique et VBA.doc page 8 / 16 om (2000-2007)

Boucles avec incrémentation : Pour  variable  de  début  à  fin  par  pas  de incrément   Action   Action… Fin pour  Exemple : Pour i de 0 à 10 par pas de 2   Action   Action… Fin pour

ou Do Action Action… Loop Until condition Boucles infinies : Do Action Action… Loop Boucles avec incrémentation : For variable = Début to Fin step Incrément Action Action… Next variable (Quitter prématurément une boucle For/Next : Exit For)

A.16. Saisir des données

On peut utiliser indifféremment les mots Saisir ou Lire : Saisir variable 

Ou Lire variable  On peut Saisir/lire plusieurs variables : Saisir variable1, variable2, variable3  Parfois on veut afficher un message avant la saisie : Afficher "Entrer votre âge :" Saisir age 

Sous Access une seule instruction assure à la fois l’affichage et la saisie d’une variable : InputBox (Prompt, [Title], [Default], [xpos], [ypos], [helpFile], [context]) Prompt = Texte du message. [Title] = Titre de la boite de message. [Default] = Texte par défaut proposé dans la ligne de saisie. [xpos] et [ypos] = position de la fenêtre. [helpFile] et [context] = fichier d’aide associé à la boite de dialogue. Exemple : variable = InputBox("Entrer votre âge : ", "Saisie de l’âge", 0) Où l’on invite l’utilisateur à saisir son âge dans une boîte de dialogue nommée "Saisie de l’âge". Vous aurez remarqué que l’on propose 0 comme valeur par défaut.

N.B. : La boite de dialogue propose "Ok" ou

Page 9: Lexique Algorithmique Et VBA

Lexique algorithmique et VBA.doc page 9 / 16 om (2000-2007)

"Annuler" une fois l’âge saisi. La touche "Ok" termine la saisie alors que la touche "Annuler" provoquera une erreur. Cf. plus loin pour voir comment intégrer cette erreur possible dans un programme.

A.17. Appeler une procédure ou une fonction

Souvent, pour éviter qu’un algorithme devienne trop long tout en devenant complexe on le coupe en plusieurs parties autonomes. Très souvent également des tâches répétitives peuvent faire l’objet de procédures ou de fonctions à part. Pour une procédure : Appeler nom_procédure()  Pour une fonction : variable = Nom_fonction(valeur) On alors la fonction peut être utilisée ainsi : si Nom_fonction(valeur) = … Alors …  

On tape tout simplement le nom de la procédure : nom_procédure() Pour une fonction : variable = Nom_fonction(valeur) ou If Nom_fonction(valeur) = … Then …

B. Compléments VBA

Décomposer une chaîne en tableau :

Split.

Pour découper une chaîne afin de constituer un tableau, utiliser l’instruction : Split (variable, " " ou " ;") découpe une chaîne selon le séparateur précisé " " ou " ;" Exemple : variable1 = "Paul Virginie Antoine" variable2() = Split(variable1, " ") varaible2() contient – à présent – le tableau suivant :

Comparer deux chaînes de

caractères : Like.

Pour comparer deux chaînes de caractères, utiliser l’instruction : Like. Exemple : On cherche toutes les chaînes de deux caractères ("A8" "B7" "A1" "C9" "D7") commençant par un "A" : On utilisera… Like "[A]?" cela nous renverra "A8" "A1". (? Remplace un seul caractère et * remplace un nombre quelconque de caractères et # remplace un chiffre.) Exemple : On cherche toutes les chaînes de caractère – cette fois ci de taille variable – commençant par un "B" : On utilisera… Like "[B]*" On pourrait également rechercher les lettres allant de "A" à "D" : [A-D] Ou rechercher les lettres "A", "O" ou "U" : [A,O,U] Tous les caractères sauf "a", "b" et "c" : [!a-c]

Paul

Virginie

Antoine

Page 10: Lexique Algorithmique Et VBA

Lexique algorithmique et VBA.doc page 10 / 16 om (2000-2007)

Exemple d’utilisation : If variable like "[B]*" Then … MsgBox Prompt, [Style de boite et bouton(s)], [Title], [HelpFile], [Context] Prompt : représente le message de la boite de dialogue. Cela peut être du

texte entre guillemets, une variable ou les deux en même temps en ajoutant un & avant le second élément à afficher.

[Style de boite et de bouton(s)] : vous permet éventuellement d’avoir une boite de message avec un signe propre à Windows. Ci-dessous les différentes boîtes de messages :

Avec l’instruction vbCrtitical :

Avec l’instruction vbExclamation :

Avec l’instruction vbInformation :

Avec l’instruction vbQuestion :

Vous pouvez également gérer les boutons (par défaut le bouton "Ok" s’affiche). Utilisez alors :

– VbOkOnly : Bouton "Ok" seulement ; – VbOkCancel : Bouton "Ok" et bouton "Annuler" ; – VbAbortRetryIgnore : Boutons "Abandon", "Réessayer" et "Ignorer" ; – VbYesNoCancel : Boutons "Oui", "Non" et "Annuler" ; – VbYesNo : Boutons "Oui" et "Non" ; – VbRetryCancel : Boutons "Réessayer" et "Annuler".

[Title] : représente le titre de la boîte de dialogue (remplace Microsoft Access).

[HelpFile & Context] : représentent les liens vers les éventuels fichiers d’aide liés à la boîte de dialogue.

Aller plus loin dans les boîtes à

messages avec MsgBox.

Exemples : MsgBox "J’ai envie d’un verre d’eau – Pouvez-vous m’en apporter ?", vbExclamation + vbYesNo, "Très très urgent !!"

Vous pouvez afficher du texte avec une ou plusieurs variables. Dans ce cas n’oubliez pas de précéder d’un & les variables ou chaînes que vous ajoutez : MsgBox "Le montant de votre commande est : " & variable, vbExclamation, "Montant commande"

Page 11: Lexique Algorithmique Et VBA

Lexique algorithmique et VBA.doc page 11 / 16 om (2000-2007)

Il peut arriver que vous ayez besoin de connaître le bouton sur lequel a appuyé l’utilisateur. Par exemple si vous demandez – par une boite de dialogue – si l’on veut continuer « Oui ou Non » et que vous avez utilisé le paramètre vbYesNo il vous faudra stocker la réponse dans une variable. Cette variable prendra la valeur vbOk si l’on appui sur le bouton "Ok", vbYes si l’on appui sur le bouton "Oui" etc. avec vbNo, vbCancel, vbRetry, vbIgnore. Cette fois-ci on ajoutera des parenthèses entre les paramètres de MsbBox comme pour InputBox. MsgBox (Prompt, [Style de boite et bouton(s)], [Title], [HelpFile], [Context]) Exemple : Dim Réponse As Integer Réponse = MsgBox ("Voulez-vous quitter le programme ?", vbQuestion + vbYesNo, "Fin de programme")

Aller plus loin dans les fenêtres de résultat(s) avec Debug.print.

L’instruction Debug.Print n’utilise aucun paramètre. Il suffit d’accoler les informations ou variables à imprimer. Exemples : Debug.print variable Debug.print "Les vaches donnent du lait !" Debug.print "Le n° de téléphone est : " & Variable On peut utiliser la virgule pour séparer les variables affichées avec Debug.Print (les variables sont affichées en colonnes), avec un point-virgule (les variables numériques sont affichées avec un espace avant).

Intégrer les éventuelles erreurs lors du déroulement

programme.

Les erreurs proviennent très souvent lorsque la touche "Annuler" d’une instruction InputBox est activée. Cela arrête le programme. On peut éviter le déclenchements de cette erreur et faire de sorte que lorsque l’erreur se déclenche le programme passe à l’instruction suivante ou reprend à la même instruction. Pour éviter cette erreur on place après la déclaration des variables l’instruction suivante : On Error GoTo ERREUR Puis avant la fin de la procédure (par exemple) : ERREUR: MsgBox "Vous ne pouvez pas Annuler !!", vbExclamation, "Le programme va se fermer !" Ou si vous voulez reprendre à partir de l’instruction qui a provoqué l’erreur : ERREUR: MsgBox "Erreur de saisie !", vbExclamation, "ATTENTION" Resume (Où Resume vous permet de retourner à l’instruction ayant provoqué l’erreur). Vous pourriez utiliser Resume Next pour aller à l’instruction suivante.

Page 12: Lexique Algorithmique Et VBA

Lexique algorithmique et VBA.doc page 12 / 16 om (2000-2007)

C. Spécificités Excel

Pour ouvrir Visual Basic Editor.

Alt+F11 Ou OUTILS/MACRO… Visual Basic Editor

Pour exécuter une macro (une procédure).

OUTILS/MACRO… MACRO… Choisir dans la liste le nom de la procédure puis : Exécuter

Pour modifier une macro.

Ouvrir Visual Basic puis choisir Module1 dans la fenêtre Projet – VBAProject Ou Dans le menu OUTILS/MACRO… MACRO… Choisir dans la liste le nom de la procédure puis : Modifier

Pour Effacer une macro. OUTILS/MACRO… MACRO… Choisir dans la liste le nom de la procédure puis : Supprimer

Pour affecter la valeur d’une cellule Excel à une

variable.

On utilise l’instruction : Range("Adresse_Cellule").Value Exemple : On veut affecter à une variable la valeur de la cellule "B4" ci-dessous qui vaut 120000 :

L’instruction sera la suivante : variable = Range("B4").Value

Affecter la valeur d’une variable à une cellule

Excel.

On utilise également l’instruction : Range("Adresse_Cellule").Value. Exemple : On affecte à la cellule "B9" la valeur d’une variable. Range("B9").Value = variable

Page 13: Lexique Algorithmique Et VBA

Lexique algorithmique et VBA.doc page 13 / 16 om (2000-2007)

D. Spécificités Access

Ouvrir Visual Basic Editor. Cliquer sur l’onglet MODULES puis NOUVEAU

Pour exécuter une macro (une procédure).

OUTILS/MACRO… MACRO… Choisir dans la liste le nom de la procédure puis : Exécuter Ou Dans Visual Basic Editor… choisir le nom de la procédure puis Exécuter

Pour modifier une procédure.

Dans l’onglet MODULES, sélectionner le Module1 puis Modifier.

Pour supprimer une procédure.

Dans l’onglet MODULES, sélectionner le Module1 puis cliquer droit et supprimer (ou utiliser la touche "Suppr"). Ce fait grâce à l’instruction DoCmd de VBA qui permet de nombreuses manipulations autres que celles décrites ici. Ouvrir une table : Application.DoCmd.OpenTable "NomTable", Mode de vue, Mode d’accès Mode de vue : – acViewDesign : voir la construction ou la structure d’une table, d’un

formulaire… – acViewNormal : vue d’une table, d’un formulaire ou du résultat d’une

requête… – acViewPreview : mode aperçu avant impression. Mode d’accès : – acAdd : on veut ajouter un enregistrement, – acEdit : on veut modifier un enregistrement, – acReadOnly : interdit toute modification.

Ouvrir des objets Access (Table, requête, état, formulaire, module.)

Les formulaires : Application.DoCmd.OpenForm "NomFormulaire", Mode de vue, Filtre(s), Condition(s), Mode d’Accès, Apparence Mode de vue : – acNormal : formulaire normal ; – acDesign : mode création de formulaire ; – acFormDS :mode tableau ; – acPreview :aperçu avant impression). Filtres(s) & Condition(s) : pointer sur certain(s) enregistrement(s). Mode d’accès : – acFormAdd : ajouter formulaire ; – acFormEdit : modifier le formulaire ; – acFormPropertySettings : modifier les paramètres ; – acFormReadOnly : utiliser le formulaire en lecture seule. Apparence : acDialog : affichage en fenêtre fixe (on ne peut changer la taille) ; acHidden : formulaire caché ; acIcon : fenêtre icône ; acWindowsNormal : affichage en fenêtre windows.

Page 14: Lexique Algorithmique Et VBA

Lexique algorithmique et VBA.doc page 14 / 16 om (2000-2007)

Ouvrir un Etat : Application.DoCmd.OpenReport "NomEtat", Mode de vue, Filtre(s), Condition(s) Mode de vue : cf. OpenTable Filtres(s) & Condition(s) : pointer sur certain(s) enregistrement(s). Ouvrir une Requête : Application.DoCmd.OpenQuery "NomRequête", Mode de vue, Mode d’accès Mode de vue : cf. OpenTable Mode d’accès : cf. OpenTable Ouvrir un Module : Application.DoCmd.OpenModule "NomModule", "NomProcédure" "NomProcédure" : indique le nom de l’une des procédures à ouvrir.

Fermer un objet Access.

Application.DoCmd.Close. acTable "NomTable", Mode Fermeture acMacro "NomMacro" acModule "NomModule" acQuery "NomRequête" acForm "NomFormulaire" acReport "NomEtat" Mode Fermeture : acSaveNo : fermer sans sauvegarder ; acSaveYes : fermer en sauvegardant ; acSavePrompt : fermer en demandant s’il faut sauvegarder.

Créer des enregistrements.

L’instruction GotoRecord permet, lorsqu’une table est ouverte (cf. plus haut) de créer des enregistrements : Application.DoCmd.GotoRecord, , acNewRec L’instruction RecordSet permet d’accéder à des tables et d’en utiliser les enregistrements (ou tuples). On peut, avec cette méthode, utiliser les données des tables, les modifier, les supprimer. Ouvrir une table : L’ouverture d’une table se fait grâce à la séquence d’instructions suivante : Dim RS as recordset Set RS = Application.CurrentDb.OpendRecordset ("NomTable", dbOpenTable)

Manipuler des tables avec l’instruction RecordSet.

Fermer une table : RS.Close

Page 15: Lexique Algorithmique Et VBA

Lexique algorithmique et VBA.doc page 15 / 16 om (2000-2007)

Parcourir une table d’enregistrement en enregistrement : N.B. : Nécessite d’avoir déjà ouvert la table auparavant. – RS.MoveFirst :aller au premier enregistrement de la table ; – RS.MoveLast : aller au dernier enregistrement de la table ; – RS.MoveNext : aller à l’enregistrement suivant ; – RS.MovePrevious : aller à l’enregistrement précédent. Détecter le début ou la fin d’une table : Pour terminer les itérations d’une boucle, il est parfois très utile de détecter si l’on est à la fin ou au début d’une table. RS.EOF : fin de table (End Of File) ; RS.BOF : début de table (Beginnig Of File). Exemple : If RS.EOF Then MsgBox "Fin de fichier rencontrée", vbExclamation End If Utiliser la valeur d’un champ : RS.Fields ("NomDuChamp").Value Exemple : variable = RS.Fields("MontantStock") .Value (Où variable prend la valeur du champ "MontantStock" de l’enregistrement actif de la table.) Trouver un enregistrement : N.B. : Pour utiliser cette fonction, vous devez avoir utilisé l’instruction suivante : Dim RS as recordset Set RS = Application.CurrentDb.OpendRecordset ("NomTable", dbOpenDynaSet) Où dbOpenDynaSet remplace dbOpenTable. – RS.FindFirst "NomDuChamp critère" : trouver le premier champ

correspondant au(x) critère(s) ; – RS.FindNext "NomDuChamp critère" : trouver le champ suivant champ

correspondant au(x) critère(s) ; – RS.FindLast "NomDuChamp critère" : trouver le dernier champ

correspondant au(x) critère(s) ; – RS.FindPrevious "NomDuChamp critère" : trouver le champ précédant

correspondant au(x) critère(s). Exemples de critères : RS.FindFirts "Code_tarif = 12" RS.FindFirts "Nom_client like ’[A]*’" RS.FindFirts "Prénom_client = ’Bob’" RS.FindFirts "Code_personnel = " variable

Page 16: Lexique Algorithmique Et VBA

Lexique algorithmique et VBA.doc page 16 / 16 om (2000-2007)

Modifier un enregistrement : N.B. : Pour utiliser cette fonction, vous devez avoir utilisé l’instruction suivante : Dim RS as recordset Set RS = Application.CurrentDb.OpendRecordset ("NomTable", dbOpenDynaSet) Où dbOpenDynaSet remplace dbOpenTable. RS.Edit RS.Fields("NomDuChamp").Value = variable RS.Update Où le champ prend le contenu de variable. Ajouter un enregistrement : N.B. : Pour utiliser cette fonction, vous devez avoir utilisé l’instruction suivante : Dim RS as recordset Set RS = Application.CurrentDb.OpendRecordset ("NomTable", dbOpenDynaSet) Où dbOpenDynaSet remplace dbOpenTable. On ajoute un nouvel enregistrement en réservant une place libre et en renseignant tous les champs de la table. RS.AddNew RS.Fields("NomDuChamp").Value = variable RS.Fields("NomDuChamp2").Value = variable2 . . RS.Update Où les champs prennent le contenu des variables. Supprimer un enregistrement : N.B. : Pour utiliser cette fonction, vous devez avoir utilisé l’instruction suivante : Dim RS as recordset Set RS = Application.CurrentDb.OpendRecordset ("NomTable", dbOpenDynaSet) Où dbOpenDynaSet remplace dbOpenTable. Il faut au préalable pointer sur l’enregistrement à effacer car l’instruction de suppression supprime l’enregistrement courant. RS.Edit RS.Delete RS.Update