algorithmique vba - unidentified
Transcription
algorithmique vba - unidentified
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 Types de données : VBA Types de données : Plages de valeurs : Octet Booléen Vrai ou Faux Entier Réel Plages de valeurs : Byte De 0 à 255. Boolean True ou False. Integer De –32 768 à 32 767. Long Entier long. De –2 147 483 648 à 2 147 483 647. Single (virgule flottante en simple précision). Double (virgule flottante en double précision). Currency Decimal Entier avec décalage pour signifier les types monétaires (avec 2 décimales). Nombres décimaux de grande précision (28 chiffres après la virgule). Du 1er janvier 100 au 31 décembre 9999 (pour affecter une date : variable = #10/11/1999#). Date Date 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 Tableau[x, …] Cf. plus bas. Personnalisé (Avec Type) Cf. plus bas. y, Un tableau a plusieurs dimensions notées ici x, y, … Lexique algorithmique et VBA.doc Array(x, y,…) page 1 / 16 Avec x & y (entiers) allant de 0 à n. om (2000-2007) A.2. Déclarer les variables 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. On utilise la séquence suivante : Variables variable : Réel Nom_Famille : Chaîne variable1, variable2 : Réel Dim variable as Single Dim Nom_Famille as String Dim prenomEleve as Single, codePostal as Single Déclarer un tableau : variable[n, …] de chaîne (où n représente tableau.) la première dimension du Déclarer un tableau : Dim variable(n, …) As String Ou Exemple pour construire un tableau d’une colonne Dim variable() As String (pour un tableau dont on ne connaît pas à l’avance et 10 lignes : la taille. Cette déclaration est très gourmande en variable[10] de Chaîne capacité mémoire.) Il faut par la suite utiliser Construire un tableau de deux colonnes et 10 ReDim pour redimensionner le tableau dès que l’on en a la taille définitive. lignes : Par exemple : variable[2,10] ReDim variable(3,10) ou variable[10,2] Attention : VBA, comme les autres langages, commence la numérotation des variables d’un N.B. : Les variables peuvent être écrites en tableau à 0 ! Cela veut dire que si vous faites la majuscules ou en minuscules. On ne peut pas déclaration suivante : changer de format d’écriture au cours d’un Dim variable(3) As String algorithme. Vous irez de 0 à 3, soit quatre occurrences de Si la variable choisie doit comporter plusieurs tableau nommé : variable. mots, comme par exemple « montant h.t. », les différents mots qui composent le nom de la La seule façon de forcer VBA à commencer sa variable seront alors séparés par un trait de numérotation à 1 serait d'écrire l'instruction soulignement "_" (touche 8 du pavé suivante en début de module: Option Base 1 alphabétique) : montant_ht (sans les points après le h et le t.) Ou l’on distinguera les mots par des majuscules : montantHT Lexique algorithmique et VBA.doc page 2 / 16 om (2000-2007) A.3. Déclarer les types Un Type permet de faire un tableau qui peut Remarque : En VBA les déclarations Type se font contenir différents noms de variables et surtout toujours avant la procédure. des variables de différents type. Quand on créé un tableau, on ne peut avoir qu’un seul type de Type Tablo Code_Personnel as Single donnée. Nom_Personnel as String End Type Par exemple : variable[2,2] de chaîne Déclare un tableau à deux dimensions de chaînes. La variable tableau donnera : Dim variable As Tablo Type permet comme suit d’avoir un tableau de réels et de chaîne. Par exemple : Ou l’on affectera par exemple : Type Tablo Code_Personnel :réel Nom_Personnel :Chaîne variable(1).Code_Personnel = 100 variable(1).Nom_Personnel = "DUPONT" Fin Type Donnera le tableau : Code_ Personnel Nom_ Personnel … Permet comme et une déclare créer : … de créer un tableau à deux dimensions une table avec une variable de type Réel autre de type Chaîne. Par la suite on une variable du type que l’on vient de Variable[n] :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" Lexique algorithmique et VBA.doc Const Taux_TVA = "19,6" page 3 / 16 om (2000-2007) A.5. Déclarer les fonctions Fonction Nom‐Fonction(variable) :réel Entrée variable :réel Function Nom-Fonction(variable Single) as Single Pour retourner le résultat : Pour retourner le résultat : . . . Retourner variable . . . . . . Nom-Fonction = variable . . . A.6. as 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. 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 : Exemple : Dim Nom_Candidat As String ‘ Variable recevant le nom du candidat ‘ Commentaire Nom_Candidat :Chaîne /* Variable recevant le nom du candidat */ A.7. Affecter une valeur On utilise le signe "Õ" : On utilise le signe "=" : Exemples : Exemple : variable Õ 12,3 variable Õ "Les chiens arrivent" 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 à <> > < >= <= Ce sont les mêmes symboles : = <> > < >= <= De la même manière : A inférieur ou égal à B se note : A <= B Exemple : A inférieur ou égal à B se note : A <= B Lexique algorithmique et VBA.doc page 4 / 16 om (2000-2007) A.9. Afficher Pour afficher un résultat, une information on Il existe deux façons d’afficher un résultat sous Access : utilise la commande Afficher. 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. Exemples : On peut afficher le contenu d’une variable : Afficher variable On peut afficher une phrase : MsgBox Prompt, [Style de boite et bouton(s)], [Title], [HelpFile], [Context] Afficher "Les Tortues ont toutes une carapace !" Exemple : On peut afficher une phrase avec le contenu d’une variable : MsgBox "Le montant de votre commande est :" & Variable Afficher "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 commande est :" & Variable votre 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 "/" "Div" "Mod" : Même priorités hormis l’instruction de division entière qui s’écrit "\" : Exemple : 10 \ 3 = 3 Multiplication et division : Exemple : 4 * 2 + 4 / 2 = 10 Division entière : Exemple : 10 Div 3 = 3 Modulo - Donne division : Exemples : le reste de la 10 Mod 3 = 1 10 Mod 2 = 0 "+" et "-" Addition et soustraction: Exemple : 4 + 3 – 5 = 2 Lexique algorithmique et VBA.doc page 5 / 16 om (2000-2007) "=" "<>" Opérateurs de comparaison "<" ">" Cf. Comparaison "<=" ">=". A.11. Cumul var_Cumul Õ var_Cumul + variable A.12. var_Cumul = var_Cumul + variable Opérateurs logiques Non Exemple : Les instructions sont Not, And, Or : Si Non(A > 10) Alors … Not : (Si A n’est pas supérieur strictement à 10) If Not A > 10 Then … Et Exemple : And : If A >= 10 And A <= 20 Then … Si A >= 10 Et A <= 20 Alors … Or : (pour A compris entre 10 et 20 : A[10,20]) If A > 10 Or B = "Non" Then … 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 ». 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 Sub Nom_Programme() Dim variable as Single ‘ commentaire Dim variable2 as String ‘ commentaire . . . Corps du programme . . . . . . End Sub Corps de l’algorithme . . . Sub est une Procédure : une macro ; Function est une Fonction -> procédure qui peut renvoyer une valeur par son nom (ex : Time()) 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. Lexique algorithmique et VBA.doc page 6 / 16 om (2000-2007) A.14. Conditions / Sélections Condition : Si condition Alors Action Action… Fin Si 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… End If 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 (Quitter prématurément une boucle : Exit Do) des boucles : Boucles avec condition au départ : (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 Lexique algorithmique et VBA.doc 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 7 / 16 om (2000-2007) Boucles avec incrémentation : ou Pour variable de début à fin par pas de Do incrément Action Action Action… Action… Loop Until condition Fin pour Exemple : Boucles infinies : Pour i de 0 à 10 par pas de 2 Action Action… Fin pour Do Action Action… Loop Boucles avec incrémentation : For variable Incrément Action Action… Next variable = Début to Fin step (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 Sous Access une seule instruction assure à la fois l’affichage et la saisie d’une variable : Lire : InputBox (Prompt, [Title], [Default], Saisir variable [xpos], [ypos], [helpFile], [context]) Prompt = Texte du message. Ou [Title] = Titre de la boite de message. Lire variable [Default] = Texte par défaut proposé dans la ligne de saisie. On peut Saisir/lire plusieurs variables : [xpos] et [ypos] = position de la fenêtre. Saisir variable1, variable2, variable3 [helpFile] et [context] = fichier d’aide associé Parfois on veut afficher un message avant la à la boite de dialogue. saisie : Exemple : Afficher "Entrer votre âge :" Saisir age 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 Lexique algorithmique et VBA.doc page 8 / 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. On tape tout simplement le nom de la procédure : nom_procédure() Pour une fonction : variable = Nom_fonction(valeur) ou Pour une procédure : If Nom_fonction(valeur) = … Then … 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 … B. Compléments VBA 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 : Décomposer une chaîne en tableau : Split. variable1 = "Paul Virginie Antoine" variable2() = Split(variable1, " ") varaible2() contient – à présent – le tableau suivant : Paul Virginie Antoine 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] Lexique algorithmique et VBA.doc page 9 / 16 om (2000-2007) Exemple d’utilisation : If variable like "[B]*" Then … Aller plus loin dans les boîtes à messages avec MsgBox. 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. 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" Lexique algorithmique et VBA.doc page 10 / 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 vbQuestion + vbYesNo, "Fin de programme") le programme ?", L’instruction Debug.Print n’utilise aucun paramètre. Il suffit d’accoler les informations ou variables à imprimer. Exemples : Aller plus loin dans les fenêtres de résultat(s) avec Debug.print. 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). 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 : Intégrer les éventuelles erreurs lors du déroulement programme. 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. Lexique algorithmique et VBA.doc page 11 / 16 om (2000-2007) C. Spécificités Excel Alt+F11 Ou OUTILS/MACRO… Visual Basic Editor Pour exécuter une macro OUTILS/MACRO… MACRO… Choisir dans la liste le nom de la procédure (une procédure). puis : Exécuter Ouvrir Visual Basic puis choisir Module1 dans la fenêtre Projet – VBAProject Ou Pour modifier une macro. Dans le menu OUTILS/MACRO… MACRO… Choisir dans la liste le nom de la procédure puis : Modifier OUTILS/MACRO… MACRO… Choisir dans la liste le nom de la procédure Pour Effacer une macro. puis : Supprimer On utilise l’instruction : Pour ouvrir Visual Basic Editor. Range("Adresse_Cellule").Value Exemple : On veut affecter à une variable la valeur de la cellule "B4" ci-dessous qui vaut 120000 : Pour affecter la valeur d’une cellule Excel à une variable. L’instruction sera la suivante : variable = Range("B4").Value Affecter la valeur d’une variable à une cellule Excel. Lexique algorithmique et VBA.doc 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 12 / 16 om (2000-2007) D. Spécificités Access Ouvrir Visual Basic Editor. Cliquer sur l’onglet MODULES puis NOUVEAU OUTILS/MACRO… MACRO… Choisir dans la liste le nom de la procédure Pour exécuter une macro puis : Exécuter Ou (une procédure). Dans Visual Basic Editor… choisir le nom de la procédure puis Exécuter Pour modifier une Dans l’onglet MODULES, sélectionner le Module1 puis Modifier. procédure. Pour supprimer une Dans l’onglet MODULES, sélectionner le Module1 puis cliquer droit et procédure. supprimer (ou utiliser la touche "Suppr"). Ouvrir des objets Access Ce fait grâce à l’instruction DoCmd de VBA qui permet de nombreuses (Table, requête, état, manipulations autres que celles décrites ici. formulaire, module.) 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. 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. Lexique algorithmique et VBA.doc page 13 / 16 om (2000-2007) Ouvrir un Etat : Application.DoCmd.OpenReport Filtre(s), Condition(s) "NomEtat", Mode de vue, Mode de vue : cf. OpenTable Filtres(s) & Condition(s) : pointer sur certain(s) enregistrement(s). Ouvrir une Requête : Application.DoCmd.OpenQuery Mode d’accès "NomRequête", Mode de vue, 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 Manipuler des tables avec enregistrements (ou tuples). On peut, avec cette méthode, utiliser les l’instruction RecordSet. 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) Fermer une table : RS.Close Lexique algorithmique et VBA.doc page 14 / 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 RS.FindFirts RS.FindFirts RS.FindFirts Lexique algorithmique et VBA.doc "Code_tarif = 12" "Nom_client like ’[A]*’" "Prénom_client = ’Bob’" "Code_personnel = " variable page 15 / 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 Lexique algorithmique et VBA.doc page 16 / 16 om (2000-2007)