الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تعديل كود إخفاء الشاشة الرئيسية لبرنامج اكسس 2010

بدأه m00j في 9 ديسمبر 2011 · 13 رد · 5,954 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

الاخوة الكرام من يستطيع تعديل الكود ليتوافق مع نظام 64 بت .. يطلع لي خطأ عند تجربته على جهاز 64 بت ويقول ان الكود يجب تحديثه ليتوافق مع نظام 64 بت .. وجزء من الكود يظهر باللون الأحمر يوجد صورة مرفقة توضح ذلك .

Option Compare Database
Option Explicit

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

post-50227-003572900 1323462759_thumb.jp

المرفقات
بدون عنوان.jpg
#2

أكيد المشكلة في هذا الجزء

Private Declare Function apiShowWindow Lib "user32" _

يجب ان يكون user64 أو طبعا ما يوافقه لا اعرف تحديدا .. ليس لدي خبرة كبيرة الامر .. .لكن تصوري ان الكود يجب ان يعدل في هذا الجانب بخصوص 32 الى 64

لكن كيف... ساحاول

وَمِنَ النَّاسِ مَن يُعْجِبُكَ قَوْلُهُ فِي الْحَيَاةِ الدُّنْيَا وَيُشْهِدُ الله عَلَى مَا فِي قَلْبِهِ وَهُوَ أَلَدُّ الْخِصَامِ

مواضيعي ومشاركاتي

#3

بارك الله بك اخي الغالي : همام ابو عرقوب

اخي الكريم استخدم هذا الكود مع اكسيس 2007 و 2010

علما بأنه يعمل على النسختين 32 بت و 64 بت

وما تتحدث عنه للمكتبه Lib "user32" فإنها تعمل على 64 بت بدون مشاكل لأن نسخة 64 بت تستطيع تشغيل البرامج 32 بت و 64 بت فعند تثبيت البرامج ذات النسخ 32 بت فإنها تحمل في المجلد Program File واذا كان البرنامج 64 بت فإنه يحمل في Program Files (x86)

فهذه الويندوز 7 لدي 64 بت

post-15367-073046200 1323543097_thumb.gi

post-15367-006560600 1323543117_thumb.gi

وايضا الأوفيس 2007 و 2010 كلها 64 بت

ولهذا استخدم هذا الكود بدلا عن السابق

Const SW_HIDE = 0
Const SW_NORMAL = 1
Const SW_MINIMIZED = 2
Const SW_MAXIMIZED = 3

Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Private Sub Form_Open(Cancel As Integer)
   Call ShowWindow(hWndAccessApp, SW_HIDE)
End Sub

كود خفيف وسريع ومختصر عن الكود السابق

وهذا مثال يعمل على اوفيس 2007 و 2010

post-15367-069531900 1323543337_thumb.gi

zaHideAccess2007&2010.rar

بالتوفيق

المرفقات
64bit.gif642bit.gifzh1.gif
#4

السلام عليكم

الاخت زهرة جزاك الله خير

الفكرة جميلة تقوم بإخفاء خلفية الاكسس 100%، ولكن هناك ملاحظة وهي ان ايقونة الاكسس تختفي ايضاً

هل بالامكان عمل تعديل بحيث يعطي الكود نفس النتيجة ومع ظهور ايقونة الاكسس؟

صورة مرفقة للتوضيح ....

تحياااااتي

post-145478-054323500 1323545810_thumb.j

المرفقات
hide.jpg
#5

اخي الفاضل

فكرة المثال والكود هي اخفاء شاشة الأكسيس نهائيا وعدم اظهار اي شيء يمت للأكسيس بصله في لحظة فتح النموذج

حيث سيبقى النموذج المعروض حاليا هو ما تستطيع العمل عليه وايضا لو كان هناك تقارير فإنها ستظهر منفرده

والسبب بارك الله بك انه لو كان هناك ايقونه لبرنامج الأكسيس في شريط المهام فكل شخص يستطيع الضغط عليها ويتم فتح شاشة الأكسيس الرئيسية ونكون بهذا لم نعمل شيء ابدا ولم يؤدي الكود المطلوب منه كما نريد

لذا لديك احد الخيارين

1. اما اخفاء شاشة الأكسيس نهائيا

2. عدم استخدام الكود لتظهر لك شاشة الأكسيس الطبيعية .

بالتوفيق

#6

شكرا لكما همام وزهرة دائما تكرمونا بالرد على ما يشكل علينا فلكم منا الدعاء ,, رعاكم الله وجزاكم خيرا .

سأجرب وانظر ما يحدث :)

#7

فتحت مثالك وظهرت لي رسالة خطأ آمل الاطلاع عليها مشكورة . وبما أن جهاز الاخت زهرة 64 بت والكود يعمل جيدا فالمشكلة والله اعلم ستكون من جهازي ولكن ماهي بالتحديد ! من يعرف يتفضل بذكر السبب يا جماعة :)

post-50227-072188000 1323571860_thumb.jp

المرفقات
بدون عنوان-2.jpg

تم تعديل هذه المشاركة بواسطة m00j في 11 ديسمبر 2011 في 05:53

#8

تفضل اخي الكريم : موج

اذا كان النظام لديك 32 بت والأكسيس 32 بت فإستخدم هذا الكود لإخفاء الشاشة

Const SW_HIDE = 0
Const SW_NORMAL = 1
Const SW_MINIMIZED = 2
Const SW_MAXIMIZED = 3

Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Private Sub Form_Open(Cancel As Integer)
   Call ShowWindow(hWndAccessApp, SW_HIDE)
End Sub

اذا كان النظام لديك 64 بت والأكسيس 64 بت فإستخدم هذا الكود لإخفاء الشاشة

Const SW_HIDE = 0
Const SW_NORMAL = 1
Const SW_MINIMIZED = 2
Const SW_MAXIMIZED = 3

Private Declare PtrSafe Function ShowWindow Lib "user32" ( ByVal hWnd As LongLong, ByVal nCmdShow As LongLong ) As LongLong

Private Sub Form_Open(Cancel As Integer)
   Call ShowWindow(hWndAccessApp, SW_HIDE)
End Sub

بالتوفيق

تم تعديل هذه المشاركة بواسطة zahrah في 11 ديسمبر 2011 في 15:55

#9

بالفعل يا مشرفتنا الفاضلة الكود سليم 100% ,, أهنيك على ما تملكين من قدرات ماشاء الله تبارك الله وعندي كود بعرضه عليك بس موب الحين وابي ابسطة بقدر الامكان وشكرا مرة أخرى

#10

عفوا .. فقد ظهرت مشكلة في الكود :) وهي أنه لا يسمح بعرض التقارير أو أنه يخفيها لا أدري ما>ا يحدثبالضبط !! آمل التعديل من الأخت زهرة لتعم الفائدة للجميع وشكرا .

#11
m00j كتب:

عفوا .. فقد ظهرت مشكلة في الكود :) وهي أنه لا يسمح بعرض التقارير أو أنه يخفيها لا أدري ما>ا يحدثبالضبط !! آمل التعديل من الأخت زهرة لتعم الفائدة للجميع وشكرا .

اخي الفاضل : موج

الأكواد السابقة تعمل على كامل كائنات قاعدة البيانات ولا تفرق بين نموذج او تقرير

ولكن السبب الذي يجعل التقرير يختفي او لا يظهر هو انك قمت بالتالي :

قمت بإستخدام الكود مع النماذج وجعلت خاصية النماذج ( منبثق = نعم ) و ( شكلي او مشروط = نعم ) وايضا جعلت النموذج = مربع حوار ، ولهذا عمل معك الكود 100% على النماذج

اذا يا سيدي الفاضل ما قمت بعمله للنماذج قم بعمله ايضا للتقارير وهي استخدام ( منبثق = نعم + شكلي او مشروط = نعم + مربع حوار ، وسوف يعمل معك التقرير ايضا 100%

بالتوفيق

#12

سلمك الله وربارك فيك :) .. و كما قال الله تعالى في كتابه العزيز ( هل يستوي الذين يعلمون والذين لا يعلمون ) . زادني الله وأياك وكل مسلم من العلم النافع ونفعنا بما علمنا آمين.

#13

عفوا .. المشرفة الفاضلة زهرة ,, بعد تجربة الكود وتعديل ملاحظاتك اصبح الكود يعمل بشكل ممتاز إلى أن ظهرت لي مشكلة وهي :

اني باستخدام حقل من منوع مرفقات وعند وضعة في نموذج فرعي في عنصر تحكم علامة جدولة وعند محاولة ارفاق اي صورة يعلق البرنامج ولا يستجيب أبدا :(

أرفقت مثال للتوضيح آمل النظر فيه وشكرا لكم جميعا .

HideAccessTest.rar

#14

سنى 63 سنة أنا معجب جدا بالأخت زهرة عقلية رائعة

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…