Peut-on exécuter une procédure d'une base de données ACCESS ?

Le
GIQUES
Salut à tous,

J'aurais besoin qu'une application que je développe puisse exécuter une
procédure écrite dans un module d'une base ACCESS.

L'idée est de ne pas devoir recopier cette procédure dans mon application et
d'être obliger de la modifier des 2 côtés.

Si c'est possible, comment s'y prend-t'on ?

Si ce ne ne les pas, y-at'il une alternative ? (je pense à la création d'un
module externe qui serait appelé soit par Mon application VB, soit par
ACCESS)

Merci d'avance

Giques
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacques93
Le #15403271
Bonjour GIQUES,
GIQUES a écrit :
Salut à tous,

J'aurais besoin qu'une application que je développe puisse exécuter une
procédure écrite dans un module d'une base ACCESS.

L'idée est de ne pas devoir recopier cette procédure dans mon application et
d'être obliger de la modifier des 2 côtés.

Si c'est possible, comment s'y prend-t'on ?

Si ce ne ne les pas, y-at'il une alternative ? (je pense à la création d'un
module externe qui serait appelé soit par Mon application VB, soit par
ACCESS)




Si ta procédure s'appelle MaProc et se trouve dans un module, par exemple :

Public Sub MaProc()
MsgBox "Procédure Access"
' ...
End Sub

tu peux l'appeler à partir de VB avec :

Dim Acc As Object

Set Acc = CreateObject("Access.Application")
Acc.OpenCurrentDatabase (App.Path & "bd1.mdb") ' à adapter
Acc.Run "MaProc"
Acc.CloseCurrentDatabase

--
Cordialement,

Jacques.
Giques
Le #15403161
Merci Jacques,

Je m'en vais essayer cela

Salut

Giques

"Jacques93" a écrit dans le message de news:

Bonjour GIQUES,
GIQUES a écrit :
Salut à tous,

J'aurais besoin qu'une application que je développe puisse exécuter une
procédure écrite dans un module d'une base ACCESS.

L'idée est de ne pas devoir recopier cette procédure dans mon application
et d'être obliger de la modifier des 2 côtés.

Si c'est possible, comment s'y prend-t'on ?

Si ce ne ne les pas, y-at'il une alternative ? (je pense à la création
d'un module externe qui serait appelé soit par Mon application VB, soit
par ACCESS)




Si ta procédure s'appelle MaProc et se trouve dans un module, par exemple
:

Public Sub MaProc()
MsgBox "Procédure Access"
' ...
End Sub

tu peux l'appeler à partir de VB avec :

Dim Acc As Object

Set Acc = CreateObject("Access.Application")
Acc.OpenCurrentDatabase (App.Path & "bd1.mdb") ' à adapter
Acc.Run "MaProc"
Acc.CloseCurrentDatabase

--
Cordialement,

Jacques.


GIQUES
Le #15403081
Salut Jacques,

J'ai essayé la manière décrite, et cela fonctionne très bien tant qu'il n'y
a pas d'arguments pour la procédure.

Malheureusemnt dans mon cas, j'ai une message d'erreur du style"Les
arguments ne sont pas facultatifs".

Y-a-t'il moyen de fournir les arguments à la procédure ?

J'ai essayé des trucs du genre : Acc.run "MaProc (A,B,C)" ou Acc.run "MaProc
A, B, C" mais cela ne fonctionne pas.

Si quelqu'un a une solution, je suis preneur.

Merci d'avance

Giques
"Jacques93" a écrit dans le message de news:

Bonjour GIQUES,
GIQUES a écrit :
Salut à tous,

J'aurais besoin qu'une application que je développe puisse exécuter une
procédure écrite dans un module d'une base ACCESS.

L'idée est de ne pas devoir recopier cette procédure dans mon application
et d'être obliger de la modifier des 2 côtés.

Si c'est possible, comment s'y prend-t'on ?

Si ce ne ne les pas, y-at'il une alternative ? (je pense à la création
d'un module externe qui serait appelé soit par Mon application VB, soit
par ACCESS)




Si ta procédure s'appelle MaProc et se trouve dans un module, par exemple
:

Public Sub MaProc()
MsgBox "Procédure Access"
' ...
End Sub

tu peux l'appeler à partir de VB avec :

Dim Acc As Object

Set Acc = CreateObject("Access.Application")
Acc.OpenCurrentDatabase (App.Path & "bd1.mdb") ' à adapter
Acc.Run "MaProc"
Acc.CloseCurrentDatabase

--
Cordialement,

Jacques.


Jacques93
Le #15403061
Bonjour GIQUES,
GIQUES a écrit :
Salut Jacques,

J'ai essayé la manière décrite, et cela fonctionne très bien tant qu'il n'y
a pas d'arguments pour la procédure.

Malheureusemnt dans mon cas, j'ai une message d'erreur du style"Les
arguments ne sont pas facultatifs".

Y-a-t'il moyen de fournir les arguments à la procédure ?

J'ai essayé des trucs du genre : Acc.run "MaProc (A,B,C)" ou Acc.run "MaProc
A, B, C" mais cela ne fonctionne pas.

Si quelqu'un a une solution, je suis preneur.

Merci d'avance




Oui, avec dans access par exemple :

Public Sub MaProc(Msg As String)
MsgBox "Procédure Access" & vbCrLf & Msg
End Sub


et dans VB

Private Sub Command4_Click()
Dim Acc As Object

Set Acc = CreateObject("Access.Application")
Acc.OpenCurrentDatabase (App.Path & "bd1.mdb")
Acc.Run "MaProc", "Hello"
Acc.CloseCurrentDatabase
End Sub

Faut placer la ponctuation au bon endroit ;-)

--
Cordialement,

Jacques.
Giques
Le #15403031
Impeccable,

Merci beaucoup Jacques

Giques
"Jacques93" a écrit dans le message de news:

Bonjour GIQUES,
GIQUES a écrit :
Salut Jacques,

J'ai essayé la manière décrite, et cela fonctionne très bien tant qu'il
n'y a pas d'arguments pour la procédure.

Malheureusemnt dans mon cas, j'ai une message d'erreur du style"Les
arguments ne sont pas facultatifs".

Y-a-t'il moyen de fournir les arguments à la procédure ?

J'ai essayé des trucs du genre : Acc.run "MaProc (A,B,C)" ou Acc.run
"MaProc A, B, C" mais cela ne fonctionne pas.

Si quelqu'un a une solution, je suis preneur.

Merci d'avance




Oui, avec dans access par exemple :

Public Sub MaProc(Msg As String)
MsgBox "Procédure Access" & vbCrLf & Msg
End Sub


et dans VB

Private Sub Command4_Click()
Dim Acc As Object

Set Acc = CreateObject("Access.Application")
Acc.OpenCurrentDatabase (App.Path & "bd1.mdb")
Acc.Run "MaProc", "Hello"
Acc.CloseCurrentDatabase
End Sub

Faut placer la ponctuation au bon endroit ;-)

--
Cordialement,

Jacques.


Jacques93
Le #15402901
Giques a écrit :
Impeccable,

Merci beaucoup Jacques




Merci du retour :-)

--
Cordialement,

Jacques.
Publicité
Poster une réponse
Anonyme