FAQ MS-Access
FAQ MS-AccessConsultez toutes les FAQ
Nombre d'auteurs : 140, nombre de questions : 926, dernière mise à jour : 15 juin 2021
- 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 =
Nothing
Remarque : si vous créez un nouveau fichier plutôt que d'en ouvrir un nouveau en utilisant
Set
mySheet =
xlApp.Workbooks.Add
vous devrez obligatoirement remplacer
mySheet.Save
par
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
Sub
Dans Access on fait une procédure dans un module.
Exemple :
Public
Sub
test
(
pArg as
string
)
MsgBox
"Bonjour Maître "
&
pArg
End
Sub
Et 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
Sub
On 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
Sub
Ensuite 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