Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

6 réponses
Avatar
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

6 réponses

Avatar
Jacques93
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.
Avatar
Giques
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.


Avatar
GIQUES
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.


Avatar
Jacques93
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.
Avatar
Giques
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.


Avatar
Jacques93
Giques a écrit :
Impeccable,

Merci beaucoup Jacques




Merci du retour :-)

--
Cordialement,

Jacques.