FAQ MS-Access

FAQ MS-AccessConsultez toutes les FAQ
Nombre d'auteurs : 140, nombre de questions : 926, dernière mise à jour : 15 juin 2021
Sommaire→VBA→Interaction avec d'autres applications→Applications Office- Comment piloter une autre application Office à partir de MS Access ?
- Comment exécuter une macro Access depuis n'importe quelle application Office supportant VBA ?
- Comment exécuter une procédure Access depuis n'importe quelle application Office supportant VBA ?
- Comment, depuis n'importe quelle application Office supportant VBA, commander l'exportation de tables ou requêtes Access au format Excel ?
11.7.1.1. Excel
(13)
11.7.1.2. Outlook
(6)
11.7.1.3. Word
(4)
11.7.1.4. Access
(4)
11.7.1.5. Power Point
(1)
Dim xlApp As Object
Dim mySheet As Object
Set xlApp = CreateObject("Excel.Application")
Set mySheet = xlApp.Workbooks.Open("D:\EXCEL\test.xls") ' Définit le fichier EXCEL à ouvrir
' Endroit où mettre le code de pilotage
' Code de fermeture
mySheet.Save
mySheet.Close
xlApp.Quit
Set xlApp = Nothing
Set mySheet = NothingRemarque : si vous créez un nouveau fichier plutôt que d'en ouvrir un nouveau en utilisant
Set mySheet = xlApp.Workbooks.Addvous devrez obligatoirement remplacer
mySheet.Savepar
mySheet.SaveAs "NomDuFichier"car quand le nom du fichier n'est pas connu la méthode Save affiche une boîte de dialogue qui ne sera visible que si Excel l'est, ce qui n'est pas le cas dans notre exemple. En dehors de la phase de test il est préférable de ne pas rendre l'application visible pour éviter que l'utilisateur n'interfère, par exemple en fermant Excel.
Lien : Utiliser Excel à partir de Visual Basic
Lien : VB/VBA : Programmer efficacement avec Excel
Sub ExécuterMacroAccess()
Dim MonAccess As New Access.Application
MonAccess.OpenCurrentDatabase "D:\etude.mdb" 'Ici le chemin de la BDD Access
DoCmd.RunMacro "Export" 'Ici le nom de la macro
MonAccess.Quit acquitsaveNone
Set MonAccess = Nothing
End SubDans Access on fait une procédure dans un module.
Exemple :
Public Sub test(pArg as string)
MsgBox "Bonjour Maître " & pArg
End SubEt on l'appelle de la façon suivante depuis Excel ou toute autre application Office VBA :
Sub Bouton1_QuandClic()
Dim MonAccess As New Access.Application
MonAccess.OpenCurrentDatabase "D:\etude.mdb"
MonAccess.run "test", "Lucifer"
MonAccess.Quit acquitsaveNone
Set MonAccess = Nothing
End SubOn définit au préalable dans un module Access, la procédure d'exportation.
Exemple :
Public Sub Export()
DoCmd.TransferSpreadsheet acExport, , "table1", "D:\Etudes1.xls", False, ""
DoCmd.TransferSpreadsheet acExport, , "table2", "D:\Etudes2.xls", False, ""
DoCmd.TransferSpreadsheet acExport, , "requête3", " D:\EtudesSuite.xls ", False, ""
DoCmd.TransferSpreadsheet acExport, , "requête4", " D:\EtudesSuite.xls ", False, ""
DoCmd.TransferSpreadsheet acExport, , "X OPCVM brut", " D:\EtudesAutre.xls ", False, ""
End SubEnsuite on appelle la procédure Export de la façon suivante depuis Excel ou toute autre application Office VBA :
Sub Bouton1_QuandClic()
Dim MonAccess As New Access.Application
MonAccess.OpenCurrentDatabase "D:\etude.mdb"
MonAccess.run "Export"
MonAccess.Quit acquitsaveNone
Set MonAccess = Nothing
End Sub


