اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

نجوم المشاركات

  1. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      5

    • Posts

      11,720


  2. Shivan Rekany

    Shivan Rekany

    الخبراء


    • نقاط

      5

    • Posts

      3,490


  3. أبو إبراهيم الغامدي
  4. محمد طاهر عرفه

    محمد طاهر عرفه

    إدارة الموقع


    • نقاط

      3

    • Posts

      8,495


Popular Content

Showing content with the highest reputation on 16 نوف, 2017 in all areas

  1. السلام عليكم استادنا الكريم السيد ابراهيم جزاك الله عنا كل الخير فما وجدت الى خيرت الناس في هدا المنتدى والشكر مقدم الى الاستاد ابو خليل ما بخل علينا بشيء شكرا
    2 points
  2. أهلا بكم جميعا.. أضفت مكون مسرد الصور ( Microsoft ImageList Control) حتى أتمكن من تضمين الصورة وأعيد بيانات يمكن لوظيفة API قرائتها لأن البيانات العائدة من عنصر الصورة التابع لأكسس يعيد بيانات لا تفهمها وظائف API. وأيضا حذفت الوظيفة التي تقوم بتحميل ومعالجة أبعاد الصورة، وأجريت تعديل على وظيفة تحوير الصورة.. آمل منكم إجراء مقارنة بين الوظائف لمعرفة الفرق.. إليكم التعديل: zahrah.zip
    2 points
  3. السلام عليكم تواكبا مع متطلبات الواقع و المستقبل ، تم افتتاح مجموعة أقسام جديدة تختص بالبحث العلمي و علوم البيانات و من ضمنها هذا القسم ، و هو يختص بالمواضيع الخاصة بعلم الاحصاء نذكر الزوار الجدد بقواعد المشاركة فى منتدى أوفيسنا ، و من أهمها احترام حقوق الملكية الفكرية و منع نشر أي مواد أو تطبيقات دون موافقة أصحابها.
    1 point
  4. هذا الموضوع هو عملية لانشاء برنامج مبيعات مصغر اعتمادا على جدولين فقط ، الحركة ، وعمليات النقد ، ورأس الفاتورة مع ما يلزم من جداول الخدمة ، احاول فيه ان اجعل عملية التصميم والاستعلامات والاخراج اكثر مرونة واسهل في المعالجة . سيكون 80% من العمل لفهم المشروع وتصوره في محيط الجداول فقط بسم الله .. نبدأ : 1- جدول العملاء 2-جدول الفاتورة 3- جدول النقدية 4- جدول الحركة 5- جدول الاصناف اولا : جدول العملاء ويشتمل على المعرف ، واسم العميل ، ونوع العميل ( مورد ، زبون ) ، والعنوان ، والهاتف ...
    1 point
  5. تم اضافة الجزء الرابع : التصميم الهندسي و يشمل: الريفيت الأوتوكاد الساب نظم المعلومات الجغرافية
    1 point
  6. كثير أشكرك استاذ بارك الله تعالى فيك في ميزان حسناتك بإذن الله تعالى حقيقة تعلمت منك
    1 point
  7. لكن يا استاذي الفاضل عند تشغيل البرنامج الذي ارفقته في تعديلك الاخير طلب مني هذا الملف COMCTL32.OCX ؟؟ افترض بأن اضافة مكونات الويندوز التي اشرت لها قد اضيفت من قبلك أليس كذلك؟
    1 point
  8. السلام عليكم حبيبنا الاستاذ السيد جمال هذه البرامج من زمان ونحن نراها . ويمكنك الشراء منهم وتفيدنا بالحقيقة بما لا يدع مجالا للشك بالنسبة لي لن اغامر لاسباب منها : 1- ان هذا موقع رسمي ولن يعلن صريحا عن اعتداء واختراق لحقوق الغير وهو يعلم انه سيلاحق قانونا 2- من ملاحظتي عند التجربة انه يعرض المتغيرات العامة والأحداث وهذه اتوقع يمكن اصطيادها بمجرد فتح الملف حيث يوجد متغيرات عامة وأحداث عند فتح قاعدة البيانات ومتغيرات واحداث عند فتح الكائنات ومما يؤكد ذلك تغيير نوع غالب المتغيرات الموجودة في مثالي الى Variant رغم انها نصية ايضا ينقل بعضها الى داخل الاجراء وهي غير موجودة في الاصل يعني انه لا يفتح محرر الفيجول الحقيقي بل يرسم صورة مقاربة له
    1 point
  9. هذه المكتبة تضاف إلى المراجع تلقائيا عند إضافة مكونات Windows Form في النموذج
    1 point
  10. الله يوفقك صديقي و أخي ابوخليل
    1 point
  11. لقد قرأت مرة عن طريقة في قسم الأكسس لحماية الأكواد إذا قمت بالدخول على الوحدات النمطية فإنك سوف تجدها فارغا يعني يحذف جميع الأكواد إذا دخلت بطريقة غير مباشرة
    1 point
  12. لا ليس كذلك الطريقة السؤال والجواب اذا تم الجواب على الاسئلة بطريقة صحيحة سيتم فتح النافذة ليتغير الرقم سري والطريقة الثانية بواسطة ايميل وكود خاص بيرسل له الى الايميل خاص به اذا كتب ايميله بصحيح و ايضا يجب عليه ان يفتح بريده لكي يعرف على الكود المكونة من 6 ارقام وراح يدخل الكود في النموذج بعدين سيفتح النافذة تغيير رقم السري
    1 point
  13. احذف الاستعلامين واليك هذا استعلام SELECT TTaweedh.EmbNo, First(TTaweedh.EmbName) AS [EmbName حقل], Count(TTaweedh.EmbName) AS [عدد المكررات] FROM TTaweedh GROUP BY TTaweedh.EmbNo, TTaweedh.EmbName HAVING (((Count(TTaweedh.EmbName))>1)); UNION SELECT TTkleef.EmbNo, First(TTkleef.EmbName) AS [EmbName حقل], Count(TTkleef.EmbName) AS [عدد المكررات] FROM TTkleef GROUP BY TTkleef.EmbNo, TTkleef.EmbName HAVING (((Count(TTkleef.EmbName))>1)); مثال.rar
    1 point
  14. نحن عطيت هذه التسميات للعرفان بدل تسميات الحقولنا في الاستعلام اللي بيعمل فيها المعادلات واذا تلقي نظرتا الى الاستعلام عند الاستدعاء ستجد بدل هذه التسميات اسماء الحقول الحقيقية اتفضل تم تغيير طفيف في الفانكشن اليك فانكشن Public Function Sh(NuKind As Integer, Ser As Integer, Trav As Integer, HousValDult As Currency, HospValDult As Currency, _ BusTicValDult As Currency, VisaVal As Currency, SpecialDisc As Double, FligTicValDult As Currency, _ HousValChlid As Currency, HospValChlid As Currency, BusTicValChlid As Currency, FligTicValChlid As Currency, _ HousValBaby As Currency, HospValBaby As Currency, BusTicValBaby As Currency, FligTicValBaby As Currency) Dim Shiv If Nz(NuKind, 0) = 1 And Nz(Ser, 0) = 1 And Nz(Trav, 0) = 1 Then Shiv = (Nz(HousValDult, 0) + Nz(HospValDult, 0) + Nz(BusTicValDult, 0) + Nz(VisaVal, 0)) ElseIf Nz(NuKind, 0) = 1 And Nz(Ser, 0) = 1 And Nz(Trav, 0) = 2 Then Shiv = (Nz(HousValDult, 0) + Nz(HospValDult, 0) + Nz(FligTicValDult, 0) + Nz(VisaVal, 0)) ElseIf Nz(NuKind, 0) = 1 And Nz(Ser, 0) = 2 And Nz(Trav, 0) = 1 Then Shiv = (Nz(HousValDult, 0) + Nz(HospValDult, 0) + Nz(BusTicValDult, 0)) ElseIf Nz(NuKind, 0) = 1 And Nz(Ser, 0) = 2 And Nz(Trav, 0) = 2 Then Shiv = (Nz(HousValDult, 0) + Nz(HospValDult, 0) + Nz(FligTicValDult, 0)) ElseIf Nz(NuKind, 0) = 1 And Nz(Ser, 0) = 3 And Nz(Trav, 0) = 1 Then Shiv = (Nz(HousValDult, 0) + Nz(BusTicValDult, 0)) ElseIf Nz(NuKind, 0) = 1 And Nz(Ser, 0) = 3 And Nz(Trav, 0) = 2 Then Shiv = (Nz(HousValDult, 0) + Nz(FligTicValDult, 0)) ElseIf Nz(NuKind, 0) = 1 And Nz(Ser, 0) = 4 And Nz(Trav, 0) = 1 Then Shiv = Nz(BusTicValDult, 0) ElseIf Nz(NuKind, 0) = 1 And Nz(Ser, 0) = 4 And Nz(Trav, 0) = 2 Then Shiv = Nz(FligTicValDult, 0) ElseIf Nz(NuKind, 0) = 1 And Nz(Ser, 0) = 5 And Nz(Trav, 0) = 1 Then Shiv = (Nz(BusTicValDult, 0) + Nz(VisaVal, 0)) ElseIf Nz(NuKind, 0) = 1 And Nz(Ser, 0) = 5 And Nz(Trav, 0) = 2 Then Shiv = (Nz(FligTicValDult, 0) + Nz(VisaVal, 0)) ElseIf Nz(NuKind, 0) = 1 And Nz(Ser, 0) = 6 Then Shiv = (Nz(HousValDult, 0) + Nz(HospValDult, 0) + Nz(VisaVal, 0)) ElseIf Nz(NuKind, 0) = 1 And Nz(Ser, 0) = 7 Then Shiv = (Nz(HousValDult, 0) + Nz(HospValDult, 0)) ElseIf Nz(NuKind, 0) = 1 And Nz(Ser, 0) = 8 Then Shiv = Nz(HousValDult, 0) ElseIf Nz(NuKind, 0) = 2 And Nz(Ser, 0) = 1 And Nz(Trav, 0) = 1 Then Shiv = (Nz(HousValChlid, 0) + Nz(HospValChlid, 0) + Nz(BusTicValChlid, 0) + Nz(VisaVal, 0)) ElseIf Nz(NuKind, 0) = 2 And Nz(Ser, 0) = 2 And Nz(Trav, 0) = 2 Then Shiv = (Nz(HousValChlid, 0) + Nz(HospValChlid, 0) + Nz(FligTicValChlid, 0) + Nz(VisaVal, 0)) ElseIf Nz(NuKind, 0) = 2 And Nz(Ser, 0) = 2 And Nz(Trav, 0) = 1 Then Shiv = (Nz(HousValChlid, 0) + Nz(HospValChlid, 0) + Nz(BusTicValChlid, 0)) ElseIf Nz(NuKind, 0) = 2 And Nz(Ser, 0) = 2 And Nz(Trav, 0) = 2 Then Shiv = (Nz(HousValChlid, 0) + Nz(HospValChlid, 0) + Nz(FligTicValChlid, 0)) ElseIf Nz(NuKind, 0) = 2 And Nz(Ser, 0) = 3 And Nz(Trav, 0) = 1 Then Shiv = (Nz(HousValChlid, 0) + Nz(BusTicValChlid, 0)) ElseIf Nz(NuKind, 0) = 2 And Nz(Ser, 0) = 3 And Nz(Trav, 0) = 2 Then Shiv = (Nz(HousValChlid, 0) + Nz(FligTicValChlid, 0)) ElseIf Nz(NuKind, 0) = 2 And Nz(Ser, 0) = 4 And Nz(Trav, 0) = 1 Then Shiv = Nz(BusTicValChlid, 0) ElseIf Nz(NuKind, 0) = 2 And Nz(Ser, 0) = 4 And Nz(Trav, 0) = 2 Then Shiv = Nz(FligTicValChlid, 0) ElseIf Nz(NuKind, 0) = 2 And Nz(Ser, 0) = 5 And Nz(Trav, 0) = 1 Then Shiv = (Nz(BusTicValChlid, 0) + Nz(VisaVal, 0)) ElseIf Nz(NuKind, 0) = 2 And Nz(Ser, 0) = 5 And Nz(Trav, 0) = 2 Then Shiv = (Nz(FligTicValChlid, 0) + Nz(VisaVal, 0)) ElseIf Nz(NuKind, 0) = 2 And Nz(Ser, 0) = 6 Then Shiv = (Nz(HousValChlid, 0) + Nz(HospValChlid, 0) + Nz(VisaVal, 0)) ElseIf Nz(NuKind, 0) = 2 And Nz(Ser, 0) = 7 Then Shiv = (Nz(HousValChlid, 0) + Nz(HospValChlid, 0)) ElseIf Nz(NuKind, 0) = 2 And Nz(Ser, 0) = 8 Then Shiv = Nz(HousValChlid, 0) ElseIf Nz(NuKind, 0) = 3 And Nz(Ser, 0) = 1 And Nz(Trav, 0) = 1 Then Shiv = (Nz(HousValBaby, 0) + Nz(Nz(HospValBaby, 0), 0) + Nz(BusTicValBaby, 0) + Nz(VisaVal, 0)) ElseIf Nz(NuKind, 0) = 3 And Nz(Ser, 0) = 2 And Nz(Trav, 0) = 2 Then Shiv = (Nz(HousValBaby, 0) + Nz(Nz(HospValBaby, 0), 0) + Nz(FligTicValBaby, 0) + Nz(VisaVal, 0)) ElseIf Nz(NuKind, 0) = 3 And Nz(Ser, 0) = 2 And Nz(Trav, 0) = 1 Then Shiv = (Nz(HousValBaby, 0) + Nz(Nz(HospValBaby, 0), 0) + Nz(BusTicValBaby, 0)) ElseIf Nz(NuKind, 0) = 3 And Nz(Ser, 0) = 2 And Nz(Trav, 0) = 2 Then Shiv = (Nz(HousValBaby, 0) + Nz(Nz(HospValBaby, 0), 0) + Nz(FligTicValBaby, 0)) ElseIf Nz(NuKind, 0) = 3 And Nz(Ser, 0) = 3 And Nz(Trav, 0) = 1 Then Shiv = (Nz(HousValBaby, 0) + Nz(BusTicValBaby, 0)) ElseIf Nz(NuKind, 0) = 3 And Nz(Ser, 0) = 3 And Nz(Trav, 0) = 2 Then Shiv = (Nz(HousValBaby, 0) + Nz(FligTicValBaby, 0)) ElseIf Nz(NuKind, 0) = 3 And Nz(Ser, 0) = 4 And Nz(Trav, 0) = 1 Then Shiv = Nz(BusTicValBaby, 0) ElseIf Nz(NuKind, 0) = 3 And Nz(Ser, 0) = 4 And Nz(Trav, 0) = 2 Then Shiv = Nz(FligTicValBaby, 0) ElseIf Nz(NuKind, 0) = 3 And Nz(Ser, 0) = 5 And Nz(Trav, 0) = 1 Then Shiv = (Nz(BusTicValBaby, 0) + Nz(VisaVal, 0)) ElseIf Nz(NuKind, 0) = 3 And Nz(Ser, 0) = 5 And Nz(Trav, 0) = 2 Then Shiv = (Nz(FligTicValBaby, 0) + Nz(VisaVal, 0)) ElseIf Nz(NuKind, 0) = 3 And Nz(Ser, 0) = 6 Then Shiv = (Nz(HousValBaby, 0) + Nz(Nz(HospValBaby, 0), 0) + Nz(VisaVal, 0)) ElseIf Nz(NuKind, 0) = 3 And Nz(Ser, 0) = 7 Then Shiv = (Nz(HousValBaby, 0) + Nz(Nz(HospValBaby, 0), 0)) ElseIf Nz(NuKind, 0) = 3 And Nz(Ser, 0) = 8 Then Shiv = Nz(HousValBaby, 0) ElseIf Nz(NuKind, 0) Then Shiv = 0 Else Shiv = "" End If Sh = Shiv - ((Shiv) * Nz(SpecialDisc, 0)) End Function واليك قاعدة test (1).rar
    1 point
  15. السلام عليكم ورحمة الله عفوا اخى الكريم / ناصر فالرد السابق سيجمع بين اسماء الناجحين من البنين والبنات وبمراجعة الخطأ لابد من اعادة نسخ كلمة ناجح من العمود 101 فى الورقة الاولى ولصقها فى الخلية "G1" بالورقة الثانية و كذلك فى كل المعايير التى لا تعمل معك والله ولى التوفيق
    1 point
  16. السلام عليكم ورحمة الله اخى الكريم / ناصر استبدل هذا السطر فى الكود If Arr(i, 101) = dep Then بهذا السطر If Arr(i, 101) Like "*" & dep & "*" Then
    1 point
  17. بعد اذن اخي زيزو هذا الكود من سطرين فقط Option Explicit Sub Filter_Me() Sheets("ورقة2").Range("a1").CurrentRegion.ClearContents Sheets("ورقة1").Range("a1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, criteriarange:=Sheets("ورقة2").Range("m1:n2"), copytorange:=Sheets("ورقة2").Range("a1") End Sub الملف مرفق المصنف1 Salim.rar
    1 point
  18. جرب هذا الملف اظهار النجمة للفراغ salim.rar
    1 point
  19. انا استخدم طريقتين اخرين والمستخدم بيختار احد الطرق وهو 1 / يجب عليه ان يتم الجواب على سؤالين وهو قمت باختياره عند اضافة الحساب 2 / يجب ان يدخل بريده الاكتروني اللي في حسابه بالضبط و البرامج راح يرسله رقم مكونة من 6 ارقام وهذا الرقم الذي ارسله الى بريده يستخدم لمدة 10 دقائق فقط اذا ما وصل الى ذلك الرقم في ذلك المدة ما راح يقدر ان يغير الرقم سري خاص به واذا وصل اليه راح يدخل في حقل خاص بعدين راح يفتح يقدر يغير رقم سري تابعه
    1 point
  20. السلام عليكم ورحمة الله اخى الكريم / ناصر اليك شرح الكود كما ظلبت Sub TransData() Dim Main As Worksheet, sh As Worksheet الاعلان عن اسماء الشيتات Dim Arr As Variant, Temp As Variant ' الاعلان عن المصفوفتين Dim i As Long, j As Long, p As Long '(i,j)الاعلان عن ابعاد المصفوفة الاولى ( p ) وعداد المصفوفة الثانية Dim dep As String ' (جنوب,شمال,غرب,شرق) الاعلان عن المتغير الذى سوف يتم العمل عليه Set Main = Sheets("المصدر") Set sh = Sheets("الهدف") '======= ' محو البانات القديمة sh.Range("A2:J" & Main.Range("B" & Rows.Count).End(xlUp).Row).ClearContents ' معيار الاختيار dep = sh.Range("L1").Value ' المصفوفة المصدر Arr = Main.Range("A2:J" & Main.Range("B" & Rows.Count).End(xlUp).Row).Value ' ابعاد المصفوفة الهدف ReDim Temp(1 To UBound(Arr, 1), 1 To UBound(Arr, 2)) ' طول المصفوفة المصدر For i = 1 To UBound(Arr, 1) ' شرط تعبئة المصفوفة الهدف If Arr(i, 4) = dep Then ' العداد لتحديد طول المصفوفة الهدف p = p + 1 ' عرض المصفوفة الهدف For j = 1 To UBound(Arr, 2) ' تعبئة المصفوفة الهدف من المصفوفة المصدر حسب الشرط Temp(p, j) = Arr(i, j) Next End If Next ' واخيرا عرض البيانات المطلوبة If p > 0 Then sh.Range("A2").Resize(p, UBound(Temp, 2)).Value = Temp End Sub
    1 point
  21. اخي الكريم .. كنت اتمنى اصل الى حل قبل ان اكتب لك هذا فقد حاولت جهدي بان اربط الصورة المرفقة سواء في النموذج او الجدول ولكني لم اصل الى المطلوب
    1 point
  22. جزاك الله خيرا استاذ محمد وجعل الله هذا العمل في كفة حسناتك ====================== رابط اخر ادعوا لنا ربنا يبارك لكم https://up.top4top.net/downloadf-674hmsqn1-rar.html __________________
    1 point
  23. من الافصل استخدام طريقة ثانية نحن نحتاج قاعدة لكي نتم العملية عليه
    1 point
  24. عدنا ... الارصدة : مبالغ وأصناف في الاستعلامات ، لتوظيفها في اي مكان وتجدونها في النماذج : في رأس الفاتورة يظهر رصيد المبلغ وفي تفاصيل الفاتورة عند اختيار الصنف من مربع التحرير يظهر الرصيد testPro14.rar
    1 point
  25. عدنا .. في البداية قد اغفل عن حقل او نحوه ولكننا سنتدارك ذلك في حينه سأعرض الجداول والمهم من حقولها ثم نناقشها بعد ذلك واحدا واحدا اولا : جدول العملاء (tblAgents ) ويشتمل على المعرف ، واسم العميل ، ونوع العميل ( مورد ، زبون ) ، والعنوان ، والهاتف ... المهم : معرف العميل ID_Gnt ترقيم تلقائي (مفتاح الجدول ) اسم العميل Gnt_name نوعه نصي نوع العميل type_Gnt نوعه رقمي ثانيا : جدول رأس الفاتورة tblFatora المهم : معرف الفاتورة FatoraId ترقيم تلقائي (مفتاح الجدول) نوع الفاتورة FatoraType رقمي معرف العميل ID_fGnt رقمي نوع الدفع cash رقمي تاريخ الفاتورة fDate تاريخ ووقت ثالثا : جدول الحركة (تفاصيل الفاتورة ) tblHaraka المهم : معرف الحركة ID_Haraka ترقيم تلقائي (مفتاح الجدول ) معرف الفاتورة Fatora_id رقمي معرف الصنف ID_Sanf رقمي الكمية quant رقمي السعر Price عملة الخصم kasm رقمي مزدوج ( تنسيق= بالمائة) رابعا : جدول المدفوعات tblPay المهم : معرف الدفع pay_ID ترقيم تلقائي (مفتاح الجدول ) معرف الفاتورة Fatora_id رقمي المبلغ pay عملة تاريخ الدفع Paydate تاريخ ووقت testPro.rar الباركود بمفهومه الشامل يصلح فقط لنقاط البيع ولكن برامج العملاء والآجل سيكون التعمل مع الباركود جزئيا فقط كإدخال الصنف او ادراج عميل والسبب وجود عمليات اخرى يجب تحريرها
    1 point
  26. حياك الله أخي علاء كلك خير وبركة جعفر
    1 point
  27. كاتب الموضوع : الأخ أبو حمود: =================== الأخوة اليكم طريقة تغيير خيارات مربع الحوار بدء التشغيل : لتغيير الإعدادات في مربع حوار بدء التشغيل StartUp تم تقسيم تغيير إعدادات مربع حوار بدء التشغيل إلى إجراءين ودالتين لأن عنوان قاعدة البيانات ودليل أيقونة البرنامج يمكن أن يكونا فارغين مما يعطي خطأ في الدالة . (أولا) لتغيير عنوان التطبيق وأيقونة البرنامج : ضع الحدث التالي في المكان المطلوب : Dim intX As Integer Const DB_Text As Long = 10 intX = AddAppProperty("AppTitle", DB_Text, "عنوان جديد") intX = AddAppProperty("AppIcon", DB_Text, "C:WindowsCars.bmp") Application.RefreshTitleBar 1- السطر الثاني : إعلان عن ثابت من النوع Long ويمكنك حذف العبارة السابقة واستبدالها في السطر الثالث بـ dbtext أو db_text أو كتابة رقم 10 في نفس الموضع . 2- السطر الثالث : تم وضع المتغير intX لتخزين القيمة العائدة من الدالة AddAppProperty ، ثم الوسيطة الأولى اسم الخاصية والثانية نوعها والثالثة العنوان الجديد . وللسؤال عن العنوان الجديد ضع السطر التالي : intX = AddAppProperty("AppTitle", DB_Text, InputBox("اكتب العنوان الجديد:")) 3- السطر الرابع : هذا السطر خاص بوضع أيقونة للبرنامج أو تغييرها أو حذفها . ملاحظة : لحذف الأيقونة : intX = AddAppProperty("AppIcon", DB_Text, "") 4- السطر الخامس لغرض ظهور التعديل مباشرة في البرنامج . الحدث السابق يستدعي الدالة التالية : Function AddAppProperty(strName As String, varType As Variant, varValue As Variant) As Integer On Error GoTo AddProp_Err Dim dbs As Object, prp As Variant Const conPropNotFoundError = 3270 Set dbs = CurrentDb dbs.Properties(strName) = varValue AddAppProperty = True AddProp_Bye: Exit Function AddProp_Err: If err = conPropNotFoundError Then Set prp = dbs.CreateProperty(strName, varType, varValue) dbs.Properties.Append prp Resume Else AddAppProperty = False Resume AddProp_Bye End If End Function وعملها يتلخص في البحث عن العنوان أو الإيقونة السابقة في مربع حوار بدء التشغيل ، فإذا لم يجدهما (أي قيمهما في مربع النص الخاص بكل منهما) أو أحدهما يعطي خطأ فيبدأ تنفيذ الأسطر بعد الخطأ ؛ وهي لإنشاء اسم جديد . ولقراءة خاصية العنوان : Dim dbs As Database Set dbs = CurrentDb MsgBox dbs.Properties![AppTitle] dbs.Close (ثانياً) لتغيير بقية خيارات مربع حوار بدء التشغيل : ضع الحدث التالي في المكان المطلوب : 1 Const DB_Text As Long = 10 2 Const DB_Boolean As Long = 1 3 ChangeProperty "StartupForm", db_Text, "اسم نموذج" 4 ChangeProperty "StartupShowDBWindow", DB_Boolean, قيمة 5 ChangeProperty "StartupShowStatusBar", DB_Boolean, قيمة 6 ChangeProperty "AllowBuiltinToolbars", DB_Boolean, قيمة 7 ChangeProperty "AllowFullMenus", DB_Boolean, قيمة 8 ChangeProperty "AllowBreakIntoCode", DB_Boolean, قيمة 9 ChangeProperty "AllowSpecialKeys", DB_Boolean, قيمة 10 ChangeProperty "AllowBypassKey", DB_Boolean, قيمة 11 ChangeProperty "AllowToolbarChanges", DB_Boolean, قيمة 12 ChangeProperty "AllowShortcutMenus", DB_Boolean, قيمة 13 ChangeProperty "StartupShortcutMenuBar", db_Text, "اسم شريط منبثق" 14 ChangeProperty "StartupMenuBar", db_Text, "اسم شريط قوائم" 15 ChangeProperty "HijriCalendar", DB_Boolean, قيمة توضيح العبارات السابقة : 1- السطر الثالث : لاختيار نموذج الذي يفتح عند بدء تشغيل البرنامج (عرض النموذج/الصفحة). لعدم عرض نموذج عند بدء التشغيل استبدل اسم النموذج بالعبارة التالية "(None)" . 2- السطر الرابع : إظهار أو إخفاء إطار قاعدة البيانات (عرض إطار قاعدة البيانات) – True =إظهار وFalse=إخفاء . هو الإطار الذي يحوي كائنات التطبيق من الجداول والاستعلامات والنماذج والتقارير وصفحات البيانات والماكروات والوحدات النمطية . 3- السطر الخامس : لإظهار أو إخفاء شريط المعلومات (عرض شريط المعلومات) – True =إظهار وFalse=إخفاء . هو الشريط الذي يظهر أسفل إطار أكسسس . 4- السطر السادس : المنع أو السماح بأشرطة الأدوات المضمنة (السماح بأشرطة الأدوات المضمنة) – True =السماح وFalse=المنع . عند إزالة العلامة من مربع الخيار هذا ثم إغلاق التطبيق وتشغيله مرة أخرى تختفي كافة أشرطة الأدوات الخاصة بالأكسس وتبقى الأشرطة الخاصة بالتطبيق (التي من إعداد المستخدم) . 5- السطر السابع : المنع أو السماح بالقوائم الكاملة – True =السماح وFalse=المنع . تختفي القوائم الخاصة بالأكسس وتظهر قوائم تختص بالتحرير والطباعة والتعامل مع السجلات والإطارات والتعليمات وهي تفي بحاجة المستخدم من حيث إدخال وعرض البيانات خاصة إذا لم ترغب في إنشاء قوائم خاصة بالتطبيق . 6- السطر الثامن : لمنع المستخدم من الاطلاع على التعليمات البرمجية والأخطاء التي تحدث في وقت التشغيل . 7- السطر التاسع : (استخدام مفاتيح وصول خاصة) لمنع المستخدم من الوصول للمفاتيح التالية : (ALT+F1 (F11), CTRL+F11, CTRL+BREAK, and CTRL+G) فالأولى للوصول إلى إطار قاعدة البيانات والثاني للتبديل بين شريط القائمة المخصص وشريط القائمة المضمن والثالث لإيقاف التعليمات البرمجية والرابع لإظهار إطار التصحيح Dubeg . 8- السطر العاشر : منع المستخدم من إيقاف الماكرو AutoExec أو النموذج الموجود في بدء التشغيل عن طريق ضغطه لـ Shift . 9- السطر الحادي عشر : (السماح بتغييرات أشرطة الأودات / القوائم) يعطل أمر تخصيص في قائمة أدوات وكذلك لايظهر هذا الأمر عند النقر بزر الفأرة الأيمن على قائمة أو شريط أدوات . 10- السطر الثاني عشر : (السماح بالقوائم المختصر الافتراضية) وهي التي تظهر عند النقر على أحد كائنات القاعدة بزر الفأرة الأيسر . 11- السطر الثالث عشر : (شريط القوائم المختصرة) لإظهار شريط قوائم مختصر للتطبيق . ولإزالته : ChangeProperty "StartupShortcutMenuBar", DB_Text, "(default)" 12- السطر الرابع عشر : (شريط القوائم) لإظهار شريط قوائم خاص بالنموذج . ولإزالته نفس السطر ماقبل السابق . 13- السطر الخامس عشر : (استخدام التقويم الهجري) لاستخدام التقويم الهجري أو غيره . — الحدث السابق يستدعي الدالة التالية : Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer On Error GoTo Change_Err Dim dbs As Object, prp As Variant Const conPropNotFoundError = 3270 Set dbs = CurrentDb dbs.Properties(strPropName) = varPropValue ChangeProperty = True Change_Bye: Exit Function Change_Err: If err = conPropNotFoundError Then Set prp = dbs.CreateProperty(strPropName, varPropType, varPropValue) dbs.Properties.Append prp Resume Next Else ChangeProperty = False Resume Change_Bye End If End Function طريقة مختصر لتغيير أحد القيم السابقة بعد إنشائها بالدالة السابقة : Dim dbs As Database Set dbs = CurrentDb dbs.Properties!اسم الخاصية = False dbs.Close (التالي كان عبارة عن جدول فيحتاج منكم إلى تنسيق) الاسم في مربع حوار بدء التشغيل اسم الخاصية القيم عنوان التطبيق AppTitle عنوان نصي رمز التطبيق AppIcon دليل إلى ايقونة عرض النموذج/الصفحة StartupForm اسم نموذج من القائمة عرض إطار قاعدة البيانات StartupShowDBWindow True False عرض شريط المعلومات StartupShowStatusBar True False شريط القوائم StartupMenuBar True False شريط القوائم المختصرة StartupShortcutMenuBar True False السماح بالقوائم الكاملة AllowFullMenus True False السماح بالقوائم المختصرة الافتراضية AllowShortcutMenus True False السماح بأشرطة الأدوات المضمنة AllowBuiltInToolbars True False السماح بتغييرات أشرطة الأدوات / القوائم AllowToolbarChanges True False استخدام مفاتيح وصول خاصة AllowSpecialKeys True False عرض أو منع إظهار الكود بعد الخطأ* AllowBreakIntoCode True False منع تجاوز مربع حوار بدء التشغيل وكذلك الماكرو *AutoExec AllowBypassKey True False استخدام التقويم الهجري HijriCalendar True False * الأول والأخير منهما لايوجد لهما أدوات في مربع الخيار وإنما يمكن تعيين قيمهما عن طريق الفيوجل بيسك . ------ ملاحظة : يوجد فى المشاركة التالية فى نفس هذا الموضوع اعادة للشرح بتفصيل أكثر لأبو حمود أيضا -----
    1 point
×
×
  • اضف...

Important Information