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
| '12.7 fenêtre de menu général pour éviter le ruban en v2007
Option Compare Database
Option Explicit
'12.8 taille de l'ecran - inspiré de http://lucky-le-koala.over-blog.com/article-vba-resolution-d-ecran-56604463.html
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
'12.7b pour forcer la position d'une fenêtre - http://visualbasic.happycodings.com/Forms/code15.html
'description des variables : http://msdn.microsoft.com/en-us/library/windows/desktop/ms633545%28v=vs.85%29.aspx
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long _
, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Sub Form_Open(Cancel As Integer)
If Not Mode_debug Then On Error GoTo err:
Dim i As Integer, j As Integer
'taille de l'écran
'MsgBox "La résolution de l'écran est de " & GetSystemMetrics(0) & " par " & GetSystemMetrics(1)
100 i = GetSystemMetrics(0)
101 If GetSystemMetrics(54) / 19 > 1 Then j = GetSystemMetrics(54) / 19 * 800 Else j = 800 '54 : taille de la croix windows en pixels
102 If i <= j Then i = 0 Else i = i / 2 - j / 2
104 If Planet_cli = "MAPE" Then
105 Me.Détail.BackColor = C_jaune
106 ElseIf Planet_cli = "FREGATE" Then
107 Me.Détail.BackColor = C_of
Else
108 Me.Détail.BackColor = C_win
End If
'positionnement du menu en haut à gauche - les chiffres sont en points (max 775 pour laisser la croix sur un écran de 800)
110 Call SetWindowPos(Forms("menu").hwnd, 0, i, 0, j, 26, 0)
'personnalisation du menu en fonction des droits de l'utilisateur et/ou du client
'bouton 1
111 b1.ForeColor = IIf(D_rh + D_sce = 0, C_gris, 0)
....
'liste déroulante 'achats'
160 achats.visible = (M_ha > 0) 'si module achats actif
161 achats.Enabled = (D_ca + D_ha > 0) 'si l'utilisateur a les droits achats
162 achats.RowSource = "ACHATS;Fournisseurs;Articles/fseur;DA manuelles"
163 If Mchr > 0 And M_of > 0 Then achats.RowSource = achats.RowSource & ";DA CBN;Messages CBN"
...
Exit Sub
err: Call message("Erreur " & err.Number & "/" & Erl & " dans menu.open : " & err.description)
200 DoCmd.Close acForm, "menu"
End Sub
'clic sur bouton 1
Private Sub b1_Click(): If b1.ForeColor = 0 Then DoCmd.OpenForm "personnel"
End Sub
'choix dans une liste déroulante
Private Sub achats_AfterUpdate()
If Not Mode_debug Then On Error GoTo err:
100 Select Case achats
Case "ACHATS": DoCmd.OpenForm "HA"
101 Case "DA CBN": DoCmd.OpenForm "DA"
102 Case "DA manuelles": DoCmd.OpenForm "DA_manu"
103 Case "Fournisseurs": DoCmd.OpenForm "tiers", , , , , , 3
104 Case "Articles/fseur": DoCmd.OpenForm "artfour"
105 Case "Messages CBN": DoCmd.OpenForm "DA_msg" '16.9b
End Select
110 achats = "ACHATS"
Exit Sub
err: Call message("Erreur " & err.Number & "/" & Erl & " dans menu.achats : " & err.description)
End Sub |
Partager