1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| Imports Microsoft.Office.Interop
Imports System
Imports System.Runtime.InteropServices
Public Class Form2
'passez les arguments dans l'ordre avec un espace entre eux
'1=handle de la fenêtre genesys
'2=numero de user
'3=type d'objet à ouvrir (form, etat, req)
'4=nom de l'objet
'5=filtre (si pas de filtre, mettre "")
Dim args As String() = Environment.GetCommandLineArgs()
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)>
Private Shared Function SetForegroundWindow(ByVal hWnd As IntPtr) As Long
End Function
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
End Function
Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim oAccess As Access.Application
Dim hwnd As Long = CLng(args(1))
Dim user As String = args(2)
Dim objet As String = args(3)
Dim fiche As String = args(4)
Dim filtre As String = args(5)
'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 = GetObject("D:\GENESYS\CRM_genesys.mdb")
'lancer la fonction qui mets le login
oAccess.Run("ValiderLogin", user, "")
'enregistre le handle de GENESYS
oAccess.Run("Sauve_HandleGENESYS", hwnd)
'lance l'objet en fonction de sa nature
Select Case objet
Case "form" 'formulaire
oAccess.DoCmd.OpenForm(fiche, Access.AcFormView.acNormal, , filtre)
Case "req" 'requête
oAccess.DoCmd.OpenQuery(fiche, Access.AcView.acViewNormal, Access.AcOpenDataMode.acEdit)
Case "etat" 'etat
oAccess.DoCmd.OpenReport(fiche, Access.AcView.acViewNormal, , filtre, Access.AcWindowMode.acWindowNormal)
Case Else 'ne lance rien
End Select
oAccess.DoCmd.Maximize()
'affiche le crm
SetForegroundWindow(oAccess.hWndAccessApp)
If Not oAccess.UserControl Then oAccess.UserControl = True
System.Runtime.InteropServices.Marshal.ReleaseComObject(oAccess)
oAccess = Nothing
'ferme le lanceur
Close()
End Sub
End Class |
Partager