F8 = Pas à pas, y compris dans les sous-routines
SHIFT F8 = Pas à pas, mais pas dans les sous-routines (Attention : Commencer
par F8, sinon ça démarre pas)
CTRL F8 = Comme si c'était F5 jusqu'au prochain point d'arrêt,
celui ci étant représenté par le clignotement du curseur
Sub ListeObjet()
For ctr = 0 To Application.CurrentData.AllTables.Count
- 1
Debug.Print Application.CurrentData.AllTables(ctr).Name
Debug.Print Application.CurrentData.AllTables(15).DateCreated
Debug.Print Application.CurrentData.AllTables(15).DateModified
Next
For ctr = 0 To Application.CurrentData.AllQueries.Count
- 1
Debug.Print Application.CurrentData.AllQueries(ctr).Name
Next
For ctr = 0 To CurrentProject.AllForms.Count - 1
Debug.Print CurrentProject.AllForms(ctr).Name
Next
For ctr = 0 To CurrentProject.AllReports.Count - 1
Debug.Print CurrentProject.AllReports(ctr).Name
Next
For ctr = 0 To CurrentProject.AllMacros.Count
- 1
Debug.Print CurrentProject.AllMacros(ctr).Name
Next
' Et même les imprimantes
installées :
For ctr = 0 To Application.Printers.Count - 1
Debug.Print Application.Printers(ctr).DeviceName
Next
End Sub
Sub ListeReferenceVBA()
' Listing de toutes les bibliothèques
externes VBA
For ctr = 1 To Application.References.Count
Debug.Print Application.References(ctr).Name
If Application.References(ctr).IsBroken
Then Debug.Print "(Référence cassée)"
Debug.Print Application.References(ctr).FullPath
Next
End Sub
Sub ControleActif()
' Renvoie le nom ou la valeur
du contrôle actif (Que ce soit une table, requête, formulaire):
Debug.Print Application.Screen.ActiveControl.Name
Debug.Print Application.Screen.ActiveControl '
Valeur (.value n'existe pas)
'
Afin de connaître le champ d'avant celui sur lequel on pointe :
MsgBox Screen.PreviousControl.Name
' Utile quand par exemple on a
quelques champs, et un bouton marqué "Mettre en rouge"
' Si on veut que le bouton mette en reouge le champ
sur lquel on était juste avant de cliquer
' Il faut bien connaitre ce "Previous control"
End Sub
Sub AfficheSablier()
' 11 = sablier. 0 = Par défaut.
' Il faut être dans un objet Access comme un formulaire
pour le voir. Inutile de faire F5.
Screen.MousePointer = 11
Screen.MousePointer = 0
End Sub
Sub InfoGenerale()
Debug.Print Application.ProductCode
' {95520700-006E-0000-0001-000000FFE10E}
Debug.Print Application.Name
' Microsoft Access
Debug.Print CurrentProject.FullName
' D:\Atelier\Base de données2.accdb
Debug.Print CurrentProject.Path
' D:\Atelier
Debug.Print CurrentProject.Name
' Base de données2.accdb
Debug.Print Application.Version
' 12.0
Debug.Print Application.Title
End Sub
Sub VariableTemporaire()
Application.TempVars.Add "Voiture", "Ferrari"
Application.TempVars.Add "Moto", "Honda"
Application.TempVars.Add "Voiture", "BMW"
' Ecrase Ferrari
Debug.Print Application.TempVars("Voiture")
Debug.Print Application.TempVars.Count
End Sub
Sub Filtres()
' Méthode 1 :
Me.Filter = "Domaine='Politique'"
Me.FilterOn = True
' Méthode 2 :
DoCmd.ApplyFilter , "Domaine='Politique'"
Me.FilterOn = False ' On enlève
le filtre
End Sub
Sub Bip()
DoCmd.Beep
End Sub
Sub CopieRenommeSupprimeObjet()
DoCmd.CopyObject , "T_Backup", acTable, "T_Celebrite"
DoCmd.DeleteObject acTable, "T_Inutile"
DoCmd.Rename "T_NouveauNom", acTable, "T_AncienNom"
End Sub
Sub AllerControlePrecis()
DoCmd.GoToControl "Prenom"
' Ou
Me.Prenom.SetFocus
End Sub
Sub BloquePanneauNavigation()
' empêche de supprimer ou
modifier des objets dans le panneau de navigation à gauche
' mais n'empêche pas de les ouvrir ou d'en créer
de nouveaux
DoCmd.LockNavigationPane True
' et débloque
DoCmd.LockNavigationPane False
End Sub
Sub Ouverture()
DoCmd.OpenTable "T_Table"
DoCmd.OpenQuery "R_Requete"
DoCmd.OpenForm "F_Formulaire"
' Impression directe : DoCmd.OpenReport
"E_Celebrite", acViewNormal
DoCmd.OpenReport "E_Etat", acViewPreview
DoCmd.OpenReport "E_Celebrite", acViewReport
' Nouveau mode 2007 très pratique pour visualisation écran
' DoCmd.Openmacro n'existe pas
DoCmd.RunMacro "M_Macro"
DoCmd.OpenModule "P_Module", "UnCertainSub"
End Sub
Sub Exportation()
' Si le fichier existe, il est
écrasé sans message
DoCmd.OutputTo acOutputTable, "T_Celebrite",
acFormatRTF, "d:\Atelier\machin.rtf"
' Exportation, avec ouverture
dudit fichier :
DoCmd.OutputTo acOutputForm, "F_Celebrite",
acFormatPDF, "d:\Atelier\truc.pdf", True
' Exportation en vue d'envoi par
e-mail :
DoCmd.SendObject acSendTable, "T_Celebrite",
acFormatXLS, "a@destinataire.com", "copie@dest.com", "bcc1@dest.com,bcc2@dest.com",
"Titre", "Corps du message", False
End Sub
Sub Imprimer()
' Imprime l'objet courant
DoCmd.PrintOut
End Sub
Sub DocmdRuncommand()
' Liste complète de tous
les RunCommands : http://www.accessruncommand.com
' DoCmd.RunCommand
' Montrer la boîte de dialogue "A propos"
DoCmd.RunCommand acCmdAboutMicrosoftAccess
' Exemple : Lance l'analyseur
de tables
Application.RunCommand acCmdAnalyzePerformance
End Sub
Sub Test()
DoCmd.SearchForRecord
DoCmd.FindRecord
End Sub