Automation d'Access par ligne de commande
Bonjourr
Je ne suis pas du tout spécialiste de vb.net et cela va peut être se voir dans ma question suivante...
Je crée un exécutable qui me permets de piloter une base ACCESS par le passage de ligne de commande (je ne peux pas le faire directement sous ACCESS en vba car une ligne de commande ne marche que quand on lance le programme...s'il est déjà lancé, cela ne marche plus...)
J'ai fait le petit programme ci-dessous qui me lance bien access et le formulaire voulu mas comment puis-je faire pour détecter quand ma base access est déjà ouverte, ne pas la réouvrir et directement la pilotée pour ouvrir le formulaire voulu (en gros remplacer le OpenCurrentDatabase par un "utiliserlabasedéjàouverte"...
Voilà mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Dim oAccess As Access.Application
Dim user As String = args(1)
Dim fiche As String = args(2)
Dim filtre As String = args(3)
Dim hwnd As Long = args(4)
'masque le formulaire
Me.Visible = False
' Démarre une nouvelle instance d'Access pour l'automatisation :
oAccess = New Access.Application
' Ouvre le CRM si pas déjà ouvert
oAccess.OpenCurrentDatabase(filepath:="D:\GENESYS\CRM_genesys.mdb", Exclusive:=False)
'lancer la fonction qui mets le login
oAccess.Run("ValiderLogin", user, "")
'ouvre le formulaire
oAccess.DoCmd.OpenForm(fiche, Access.AcFormView.acNormal, , filtre)
oAccess.DoCmd.Maximize()
If Not oAccess.UserControl Then oAccess.UserControl = True
System.Runtime.InteropServices.Marshal.ReleaseComObject(oAccess)
oAccess = Nothing
'ferme le lanceur
Close() |
Merci de votre aide
Guen