كيف يمكن اخفاء نافذة الأكسس عند فتح نموذج عادي بدون استخدام نماذج وتقارير منبثقة PopUp
*كود* اخفاء نافذة الأكسس بدون استخدام نماذج منبثقة
بواسطة خضرترزي
اخفاء شاشة اكسس
الرئيسية
هناك الكثير من المشاريع الصغيرة تصنع بواسطة
فيجوال بيسك نظرا لانها قد تحتوي على عدة نماذج منفصلة بدون شاشة رئيسية تحتوي
عليهم مثل شاشة اكسس ، حيث يعتقد المبرمجون بان صناعتها بداخل اكسس امر غير مرغوب
به لاستحالة اخفاء الشاشة الرئيسية
ولكن بمقدورنا اخفاء الشاشة الرئيسية بكل
بساطة عن طريق بعض اوامر ويندوس الاساسية واليكم المثال التالي
قم بانشاء قاعدة بيانات جديدة
قم بانشاء
Module
وضع به الكود التالي
'************ Code Start **********
Global Const SW_HIDE = 0
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2
Global Const SW_SHOWMAXIMIZED = 3
Private Declare Function apiShowWindow Lib "user32" _
Alias "ShowWindow" (ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long
Function fSetAccessWindow(nCmdShow As Long)
'Usage Examples
'Maximize window:
' ?fSetAccessWindow(SW_SHOWMAXIMIZED)
'Minimize window:
' ?fSetAccessWindow(SW_SHOWMINIMIZED)
'Hide window:
' ?fSetAccessWindow(SW_HIDE)
'Normal window:
' ?fSetAccessWindow(SW_SHOWNORMAL)
'
Dim loX As Long
Dim loForm As Form
On Error Resume Next
Set loForm = Screen.ActiveForm
If Err <> 0 Then 'no Activeform
If nCmdShow = SW_HIDE Then
MsgBox "Cannot hide Access unless " _
& "a form is on screen"
Else
loX = apiShowWindow(hWndAccessApp, nCmdShow)
Err.Clear
End If
Else
If nCmdShow = SW_SHOWMINIMIZED And loForm.Modal = True Then
MsgBox "Cannot minimize Access with " _
& (loForm.Caption + " ") _
& "form on screen"
ElseIf nCmdShow = SW_HIDE And loForm.PopUp <> True Then
MsgBox "Cannot hide Access with " _
& (loForm.Caption + " ") _
& "form on screen"
Else
loX = apiShowWindow(hWndAccessApp, nCmdShow)
End If
End If
fSetAccessWindow = (loX <> 0)
End Function
'************ Code End **********
قم بانشاء نموذج وهو النموذج الرئيسي
لبرنامجك وضع به زرين وسمي احدهما
اخفاء الشاشة الرئيسية
واربط معه الكود التالي
fSetAccessWindow SW_HIDE
والثاني
اظهار الشاشة الرئيسية
واربط معه الكود التالي
fSetAccessWindow SW_SHOWNORMAL
ومن ثم غير بعض الخصائص الخاصة بالنموذج الى
ما يلي
Pop Up = YES
Modal = YES
وتلك الخصائص مهمة للغاية لان بدونها سيختفي
النموذج مع الشاشة الرئيسية
الأخ fahadam
الله يعطيك العافية على هذا الكود .
ملاحظة : يجب إغلاق إطار الوحدة النمطية إذا كان مفتوحا وإلا لن يتم إخفاؤه .
لقد حاولت تغيير خاصية منبثق ومشروط قبل الأمر ثم تعديلها إلى لا بعد الأمر ولكن لم استطع فالمشروط تظهر رسالة أن هذه الخاصية للقراءة والثاني يختفي النموذج .
ثم حاولت جعل النافذة في المقدمة باستخدام دالة SetWindowPos ولم أنجح أيضا .
الكود الموجود فيه بعض الملاحظات البسيطة تم تصحيحها في التالي :
Global Const SW_HIDE = 0 Global Const SW_SHOWNORMAL = 1 Global Const SW_SHOWMINIMIZED = 2 Global Const SW_SHOWMAXIMIZED = 3 Private Declare Function apiShowWindow Lib "user32" _ Alias "ShowWindow" (ByVal hwnd As Long, _ ByVal nCmdShow As Long) As Long Function fSetAccessWindow(nCmdShow As Long) Dim loX As Long Dim loForm As Form On Error Resume Next Set loForm = Screen.ActiveForm If Err <> 0 Then 'no Activeform If nCmdShow = SW_HIDE Then MsgBox "Cannot hide Access unless " _ & "a form is on screen" Else loX = apiShowWindow(hWndAccessApp, nCmdShow) Err.Clear End If Else If nCmdShow = SW_SHOWMINIMIZED And loForm.Modal = True Then MsgBox "Cannot minimize Access with " _ & (loForm.Caption + " ") _ & "form on screen" ElseIf nCmdShow = SW_HIDE And loForm.PopUp <> True Then MsgBox "Cannot hide Access with " _ & (loForm.Caption + " ") _ & "form on screen" Else loX = apiShowWindow(hWndAccessApp, nCmdShow) End If End If fSetAccessWindow = (loX <> 0) End Function
وللجميع التحية
هذا الموضوع مغلق.