الاخوة الكرام
السلام عليكم
هذا الكود يقوم على اخفاء جميع القوائم الخاصة بالاكسس والقوائم المختصر في القاعدة عند فتحها ( لاستخدام مفتاح الشفت)
Option Compare Database
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Const KEY_MASK As Integer = &HFF80 ' decimal -128
Private Const VK_LSHIFT = &HA0
Private Const VK_RSHIFT = &HA1
Private Const BothLeftAndRightKeys = 0
Private Const LeftKey = 1
Private Const RightKey = 2
Private Const LeftKeyOrRightKey = 3
Dim Withshift As Boolean
Public Function IsShiftKeyDown(Optional LeftOrRightKey As Long = LeftKeyOrRightKey) As Boolean
Dim Res As Long
Select Case LeftOrRightKey
Case LeftKey
Res = GetKeyState(VK_LSHIFT) And KEY_MASK
Case RightKey
Res = GetKeyState(VK_RSHIFT) And KEY_MASK
Case BothLeftAndRightKeys
Res = (GetKeyState(VK_LSHIFT) And GetKeyState(VK_RSHIFT) And KEY_MASK)
Case Else
Res = GetKeyState(vbKeyShift) And KEY_MASK
End Select
IsShiftKeyDown = CBool(Res)
End Function
Public Sub check_shift(FRM As String, Optional pwd As String, Optional yourtoolbar As String)
On Error Resume Next
Dim Db As Database
Set Db = CurrentDb
Dim prp As Property
Withshift = False
Dim passwd As String
If pwd = "" Then Exit Sub
Set prp = Db.CreateProperty("AllowByPassKey", dbBoolean, False)
Db.Properties.Append prp
With DoCmd
.SelectObject acForm, "", True
.RunCommand acCmdWindowHide
End With
DoCmd.ShowToolbar yourtoolbar, acToolbarYes
Dim I As Integer
For I = 1 To CommandBars.Count
If CommandBars(I).Name <> "yourtoolbar" Then CommandBars(I).Enabled = True
Next I
If IsShiftKeyDown = True Then
passwd = InputBoxDK("Êã ÇÓÊÎÏÇã ãÝÊÇÍ ÇáÔíÝÊ ¡ áÐÇ ÓíÊã ÝÊÍ ÇáÞÇÚÏÉ Ýí æÖÚ ÇáÊÕãíã" & vbCrLf & "ÃÏÎá ßáãÉ ÇáÓÑ ááÏÎæá ááÊÕãíã " & vbCrLf, "ÇáÏÎæá Çáì ÇáÊÕãíã ")
If passwd = pwd Then
For I = 1 To CommandBars.Count
CommandBars(I).Enabled = True
Next I
DoCmd.SelectObject acForm, , True
Withshift = True
DoCmd.Close acForm, FRM
ElseIf passwd = "" Or passwd = Empty Then
MsgBox "áã ÊÞã ÈÇÏÎÇá ßáãÉ ÇáãÑæÑ .. ÓíÊã ÇáÎÑæÌ ãä ÇáÈÑäÇãÌ"
DoCmd.Quit
Else 'If passwd <> "123456" Then
MsgBox "ÂÓÝ .. ãä ÍÓä ÇÓáÇã ÇáãÑÁ ÊÑßå ãÇ áÇ íÚäíå "
DoCmd.Quit
End If
End If
End Subوالامر الذي يقوم على ذلك تحديداً هذا الكود
If CommandBars(I).Name <> "yourtoolbar" Then CommandBars(I).Enabled = True
فعند اختيار False يقوم باخفائها وعند اختيار True تعود وتظهر
المشكلة اريد ان تظهر القائمة المختصر التالية مثلا في النموذج الفرعي على الاسماء فقط
دون ان تظهر هذه القائمة في النموذج لكي لا يدخل المستخدم على التصميم
وبارك الله بكم

