OVH Cloud OVH Cloud

macro

4 réponses
Avatar
jc2nantes
Bonjour,

J'ai une base access qui contient des tables, des requetes et des macro...
j'accède à cette bdd avec ADO.

Puis-je, via VB, lancer l'execution d'une des macro ?

Merci!

jc

4 réponses

Avatar
Guy DETIENNE
Salut ;O)

Si tu veux le faire directement via VB, il faut qu'Access soit installé sur
la machine car c'est lui qui interprétera la macro et non VB.

Il est possible de lancer Access avec une ligne de commande qui dit quelle
macro il faut lancer au démarrage.

LeFichier.MDB /x LaMacro


Ce que dit l'aide (Access 2003)

/x macro

Démarre Access et exécute la macro spécifiée. Vous pouvez également exécuter
une macro à l'ouverture d'une base de données en utilisant une macro
AutoExec.
Attention Dans la mesure où les macros peuvent contenir des virus, faites
preuve de prudence lorsque vous les exécutez. Prenez les précautions
suivantes : exécutez un logiciel antivirus mis à jour sur votre ordinateur ;
définissez un niveau élevé de sécurité de macro ; utilisez des signatures
numériques ; conservez une liste de sources de macros approuvées.

Il est aussi possible de piloter Access via automation à partir de VB avec
CreateObject ou en utilsant directement la bibliothèque Access et lancer la
macro voulue.

Guy


"jc2nantes" a écrit dans le message de
news:
Bonjour,

J'ai une base access qui contient des tables, des requetes et des macro...
j'accède à cette bdd avec ADO.

Puis-je, via VB, lancer l'execution d'une des macro ?

Merci!

jc




Avatar
jc2nantes
merci. j'essaie ça tout de suite...

jc


"Guy DETIENNE" a écrit dans le message de
news:%
Salut ;O)

Si tu veux le faire directement via VB, il faut qu'Access soit installé


sur
la machine car c'est lui qui interprétera la macro et non VB.

Il est possible de lancer Access avec une ligne de commande qui dit quelle
macro il faut lancer au démarrage.

LeFichier.MDB /x LaMacro


Ce que dit l'aide (Access 2003)

/x macro

Démarre Access et exécute la macro spécifiée. Vous pouvez également


exécuter
une macro à l'ouverture d'une base de données en utilisant une macro
AutoExec.
Attention Dans la mesure où les macros peuvent contenir des virus, faites
preuve de prudence lorsque vous les exécutez. Prenez les précautions
suivantes : exécutez un logiciel antivirus mis à jour sur votre ordinateur


;
définissez un niveau élevé de sécurité de macro ; utilisez des signatures
numériques ; conservez une liste de sources de macros approuvées.

Il est aussi possible de piloter Access via automation à partir de VB avec
CreateObject ou en utilsant directement la bibliothèque Access et lancer


la
macro voulue.

Guy


"jc2nantes" a écrit dans le message de
news:
> Bonjour,
>
> J'ai une base access qui contient des tables, des requetes et des


macro...
> j'accède à cette bdd avec ADO.
>
> Puis-je, via VB, lancer l'execution d'une des macro ?
>
> Merci!
>
> jc
>
>




Avatar
jc2nantes
j'ai essayé avec ShellExecute mais ça plante...

v'la le code :

'================
Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal
lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String,
ByVal nShowCmd As Long) As Long
Const SW_SHOWNORMAL = 1


Private Sub Command1_Click()

dim monFIC
monFIC = URL & " /x exp_abs"

ShellExecute hwnd, "open", monFIC, _
vbNullString, vbNullString, SW_SHOWNORMAL

End Sub

'====================
URL est le chemin complet d'accès à ma base, stocké par ailleurs
exp_abs le nom de ma macro dans ACCESS

voila ce qui se passe : sans " /x exp_abs", j'ouvre bien ACCESS mais bien
sur sans lancer la macro. avec ça plante!

?????



"Guy DETIENNE" a écrit dans le message de
news:%
Salut ;O)

Si tu veux le faire directement via VB, il faut qu'Access soit installé


sur
la machine car c'est lui qui interprétera la macro et non VB.

Il est possible de lancer Access avec une ligne de commande qui dit quelle
macro il faut lancer au démarrage.

LeFichier.MDB /x LaMacro


Ce que dit l'aide (Access 2003)

/x macro

Démarre Access et exécute la macro spécifiée. Vous pouvez également


exécuter
une macro à l'ouverture d'une base de données en utilisant une macro
AutoExec.
Attention Dans la mesure où les macros peuvent contenir des virus, faites
preuve de prudence lorsque vous les exécutez. Prenez les précautions
suivantes : exécutez un logiciel antivirus mis à jour sur votre ordinateur


;
définissez un niveau élevé de sécurité de macro ; utilisez des signatures
numériques ; conservez une liste de sources de macros approuvées.

Il est aussi possible de piloter Access via automation à partir de VB avec
CreateObject ou en utilsant directement la bibliothèque Access et lancer


la
macro voulue.

Guy


"jc2nantes" a écrit dans le message de
news:
> Bonjour,
>
> J'ai une base access qui contient des tables, des requetes et des


macro...
> j'accède à cette bdd avec ADO.
>
> Puis-je, via VB, lancer l'execution d'une des macro ?
>
> Merci!
>
> jc
>
>




Avatar
ng
ShellExecute() possède un paramètre lpParameters pour les arguments.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

jc2nantes wrote:
j'ai essayé avec ShellExecute mais ça plante...

v'la le code :

'================ >
Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String,
ByVal lpFile As String, ByVal lpParameters As String, ByVal
lpDirectory As String, ByVal nShowCmd As Long) As Long
Const SW_SHOWNORMAL = 1


Private Sub Command1_Click()

dim monFIC
monFIC = URL & " /x exp_abs"

ShellExecute hwnd, "open", monFIC, _
vbNullString, vbNullString, SW_SHOWNORMAL

End Sub

'==================== >
URL est le chemin complet d'accès à ma base, stocké par ailleurs
exp_abs le nom de ma macro dans ACCESS

voila ce qui se passe : sans " /x exp_abs", j'ouvre bien ACCESS mais
bien sur sans lancer la macro. avec ça plante!

?????



"Guy DETIENNE" a écrit dans le message de
news:%
Salut ;O)

Si tu veux le faire directement via VB, il faut qu'Access soit
installé sur la machine car c'est lui qui interprétera la macro et
non VB.

Il est possible de lancer Access avec une ligne de commande qui dit
quelle macro il faut lancer au démarrage.

LeFichier.MDB /x LaMacro


Ce que dit l'aide (Access 2003)

/x macro

Démarre Access et exécute la macro spécifiée. Vous pouvez également
exécuter une macro à l'ouverture d'une base de données en utilisant
une macro AutoExec.
Attention Dans la mesure où les macros peuvent contenir des virus,
faites preuve de prudence lorsque vous les exécutez. Prenez les
précautions suivantes : exécutez un logiciel antivirus mis à jour
sur votre ordinateur ; définissez un niveau élevé de sécurité de
macro ; utilisez des signatures numériques ; conservez une liste de
sources de macros approuvées.

Il est aussi possible de piloter Access via automation à partir de
VB avec CreateObject ou en utilsant directement la bibliothèque
Access et lancer la macro voulue.

Guy


"jc2nantes" a écrit dans le message de
news:
Bonjour,

J'ai une base access qui contient des tables, des requetes et des
macro... j'accède à cette bdd avec ADO.

Puis-je, via VB, lancer l'execution d'une des macro ?

Merci!

jc