Bonsoir à tous,
Je souhaite lancer
une requete access 2000 ["E-40-REQUETES-ESSAI"]
dans la base ["E:\PAR-08\PAR_08.MDB"]
demandant 1 parametre [REFERENCE_DATE],
à partir d'une feuille excel 2000.
J'ai honteusement "pompé" (MERCI !) sur le forum du code qui fonctionne :
1- bien quand je demande de lancer une macro access, mais le parametre doit être saisi,
2- bien jusqu'à l'ouverture de la base, mais plus du tout quand est demandée l'exécution d'un code access (macro convertie [E-40-REQUETES-ESSAI()] avec ou sans parametre.
Si quelqu'un(e) pouvait me donner une solution à l'une ou à l'autre des questions sans réponse, grand merci ! Je tourne en rond et en bourrique !
Autre voie possible, peut-on demander à access de lire une donnée (le parametre) dans la feuille excel restée ouverte (feuille [menu] où je lis les valeurs de variables du code joint) ?
Cordiales salutations
ls8
le code
Public REFERENCE_DATE
Sub Lancer_Access()
' VARIABLES
Dim AppAccess As Object ''' l'application Access (objet)
Dim StrBaseAcc As String ''' la base Access
Dim StrMacro As String ''' la macro Access à éxécuter (si besoin)
On Error GoTo ErrorInSub
Sheets("menu").Select
REFERENCE_DATE = Range("m10").Value
'Définition des valeurs Access
StrBaseAcc = Range("m11").Value
' StrMacro = Range("Macro_Access").Value
StrMacro = Range("m12").Value
' On gère une instance d'Access
Set AppAccess = CreateObject("Access.Application")
' On ouvre la base de données Access
AppAccess.OpenCurrentDatabase StrBaseAcc, False 'OK
'on définit si la base est visible ou non
AppAccess.Application.Visible = True ' OK
' Et on éxécute la macro (si besoin)
AppAccess.DoCmd.RunMacro StrMacro '"E-40-REQUETES-ESSAI" OK
' Et on éxécute le code (si besoin) NE FONCTIONNE NI AVEC VARIABLE StrMacro NI SAISIE DIRECTE "E-40-REQUETES-ESSAI"
' AppAccess.Run "E-40-REQUETES-ESSAI" 'ET PAS PLUS AVEC PARAMETRE DERRIERE VIRGULE
'on quitte Access
AppAccess.Application.Quit
Set AppAccess = Nothing
' GESTION DE L'ERREUR
ErrorInSub:
MsgBox "Une erreur a été rencontrée lors de l'éxécution de la macro Access depuis Excel. Vérifiez le code source SVP.", vbCritical, "Erreur VBA"
Set AppAccess = Nothing
' Exit Function
End Sub
Je souhaite lancer
une requete access 2000 ["E-40-REQUETES-ESSAI"]
dans la base ["E:\PAR-08\PAR_08.MDB"]
demandant 1 parametre [REFERENCE_DATE],
à partir d'une feuille excel 2000.
J'ai honteusement "pompé" (MERCI !) sur le forum du code qui fonctionne :
1- bien quand je demande de lancer une macro access, mais le parametre doit être saisi,
2- bien jusqu'à l'ouverture de la base, mais plus du tout quand est demandée l'exécution d'un code access (macro convertie [E-40-REQUETES-ESSAI()] avec ou sans parametre.
Si quelqu'un(e) pouvait me donner une solution à l'une ou à l'autre des questions sans réponse, grand merci ! Je tourne en rond et en bourrique !
Autre voie possible, peut-on demander à access de lire une donnée (le parametre) dans la feuille excel restée ouverte (feuille [menu] où je lis les valeurs de variables du code joint) ?
Cordiales salutations
ls8
le code
Public REFERENCE_DATE
Sub Lancer_Access()
' VARIABLES
Dim AppAccess As Object ''' l'application Access (objet)
Dim StrBaseAcc As String ''' la base Access
Dim StrMacro As String ''' la macro Access à éxécuter (si besoin)
On Error GoTo ErrorInSub
Sheets("menu").Select
REFERENCE_DATE = Range("m10").Value
'Définition des valeurs Access
StrBaseAcc = Range("m11").Value
' StrMacro = Range("Macro_Access").Value
StrMacro = Range("m12").Value
' On gère une instance d'Access
Set AppAccess = CreateObject("Access.Application")
' On ouvre la base de données Access
AppAccess.OpenCurrentDatabase StrBaseAcc, False 'OK
'on définit si la base est visible ou non
AppAccess.Application.Visible = True ' OK
' Et on éxécute la macro (si besoin)
AppAccess.DoCmd.RunMacro StrMacro '"E-40-REQUETES-ESSAI" OK
' Et on éxécute le code (si besoin) NE FONCTIONNE NI AVEC VARIABLE StrMacro NI SAISIE DIRECTE "E-40-REQUETES-ESSAI"
' AppAccess.Run "E-40-REQUETES-ESSAI" 'ET PAS PLUS AVEC PARAMETRE DERRIERE VIRGULE
'on quitte Access
AppAccess.Application.Quit
Set AppAccess = Nothing
' GESTION DE L'ERREUR
ErrorInSub:
MsgBox "Une erreur a été rencontrée lors de l'éxécution de la macro Access depuis Excel. Vérifiez le code source SVP.", vbCritical, "Erreur VBA"
Set AppAccess = Nothing
' Exit Function
End Sub