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 :
Merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()
Guen
Partager