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

ابوخليل

أوفيسنا
  • Posts

    12,448
  • تاريخ الانضمام

  • Days Won

    231

كل منشورات العضو ابوخليل

  1. او هذا : DoCmd.OpenReport "اسم التقرير",acViewNormal
  2. يجب تغيير اسم الصورة داخل الكود انظر الى اسماء الصور .. خاصة الحالية ، وانظر مكانها من الكود غير الاسم (اللي هو المفتاح في الخصائص) حسب الاختيار
  3. قمت بالتعديل على المثال بحيث يكون سهل التناول انظر الى الصور التوضيحية شجرة العائلة متصفح.mdb
  4. يبدوا ان المبرمجين هم اسرع الناس نسيانا هذا النقاش تم بينننا سابقا ولو اسعفتني ذاكرتي قبل اجابتي الأولى ، لأحلت السائل الى هذا الموضوع الأصل المماثل .. وفيه زيادة اضافة فريدة لأستاذنا المهندس @Eng.Qassim
  5. اخي الكريم استخدام امثلة مختلفة سيتعبك بهذه الطريقة سيصعب عليك التعلم ، فالأفضل ان تستخدم مثالا واحدا تعمل عليه وتطوره اذا كان مشروعك شجرة عائلة فانظر هنا اشكال جميلة رموز والوان لاحظ انه يمكنك تغيير الصورة .. ( يوجد مجموعة من الصور داخل الأداة )
  6. سبحان الله اخي تم تنبيهك الى اهمية العنوان في موضوعك السابق .. يجب ان نولي المصلحة العامة اهتمامنا
  7. expe1:GetMonths30([TxtDate1];[TxtDate2]) لاحظ اختلاف الفاصلة على اعتبار TxtDate1 و TxtDate2 حقول في الاستعلام او الجدول المصدر
  8. Recordset.RecordCount تعد السجلات والجمع انما هو للحقول .. اي اننا سنجمع حقل محدد ضمن مجموعة السجلات sum نستخدمها في الاستعلامات وايضا في النموذج او التقرير لجمع حقل محدد وينطبق هذا ايضا على Count مفردة للعد اما جمع حقل في محرر الفيجوال فانت مخير بين طريقتين : اما ان تصنع جملة استعلام بالمطلوب واما ان تستخدم الدالة DSum
  9. استخدم هذه الدالة Function GetMonths30(Date1 As Date, Date2 As Date) As Long Dim d1, m1, d2, m2 As String Dim y1, y2 As Integer Dim sum_d, sum_m, sum_y, sum_days As Integer Dim tst1, tst2 As Long d1 = Format(Day(Date1), "00"): d2 = Format(Day(Date2), "00") m1 = Format(Month(Date1), "00"): m2 = Format(Month(Date2), "00") y1 = Year(Date1): y2 = Year(Date2) tst1 = y1 & m1 & d1: tst2 = y2 & m2 & d2 If tst2 < tst1 Then Exit Function sum_d = Abs(Int(d2) - Int(d1)) sum_m = Abs(Int(m2) - Int(m1)) * 30 sum_y = (y2 - y1) * 360 sum_days = sum_y + Abs(sum_m - sum_d) GetMonths30 = sum_days End Function ويتم مناداتها لحساب المدة بين تاريخين هكذا : Me.txtDays = GetMonths30(Me.TxtDate1, Me.TxtDate2)
  10. اخي الكريم يجب الاهتمام باختيارك للعنوان المناسب الذي يصف الموضوع . كي لا تعرض موضوعك للاغلاق
  11. جرب هذا استبدله بدل الموجود في مصدر تحكم الحقل : =Nz([tx23])+NZ([tx24])+NZ([tx25])
  12. في مثالي اعلاه عند اضافة عنصر جديد ستضيف سطر العنصر في مكانين فقط مفعل = لا ضمن حدث الدالة المصنوعة مفعل =نعم ضمن حدث زر الفائمة الرئيسي الخاصة بهذا العنصر
  13. انظر لما قصدته في مثالك المعدل واجهة جميلة منسدلة2.rar
  14. الحمد لله على سلامتك اخونا وحبيبنا واستاذنا خليفة .. سلامة دائمة ان شاء الله وعودا حميدا ..
  15. جميل جدا .. عندي ملاحظة على الاكواد التي وضعتها لإظهار واخفاء الازرار . يوجد طريقتان يمكنك الاخذ باحدهما لجعل عملك سهلا الأولى : ابداعات الأستاذ موسى هنا الثانية : ان تعمل كود يخفي جميع الازرار الفرعية عند تحميل البرنامج ... وعند الضغط على الزر الرئيسي تستدعي هذا الكود اولا .. ثم تسمح لما تحته بالظهور في هذه الحالة تتجنب اعادة وتكرار كتابة الاسطر .. ايضا يكون التعديل عند الحاجة سهلا يسيرا
  16. بارك الله فيك يابو احمد .. الأجمل والأكمل .. ( فأرى ردي واجبا ولا يسعني الصمت عنها ) ---------------------- كنت استخدمها للقفز عند الأخطاء المنطقية ولكن معالجة هذه الأخطاء اولى من القفز عليها مثلا : عندما يكون في اول الجملة سطر يجلب قيمة من جدول من اجل مقارنته او التأكد من وجوده ، فحينما يكون الجدول خاليا او القيمة غير موجودة يظهر الخطأ عالجته باستخدام الدالة NZ واتعامل بالشرط على اساس القيمة = صفر ... هنا تجاوزت الخطأ الذي سببه عدم وجود القيمة وقس على هذا كثير وهذا هو الذي يجب ان يهتم به المبرمج ويعمل عليه . ومع ذلك هناك اماكن في حدود ضيقة يضطر المبرمج الى الاستعانة بها ، لعجزه عن التصحيح .. اما لخبرته او بسبب فني برمجي بحت ، ولكن بشرط ان يعمل الكود على الوجه المطلوب .. ولا يتسبب في نتائج خاطئة .
  17. صحيح لن يعمل في الاجهزة الأخرى عند نقله . ولكي يعمل يلزم مسح القيمة من الجدول .. وهذه هي الثغرة .لمن عرف سر الحماية ما رأيك لو عملنا عرقلة للمعتدي بحيث لو عمل على افراغ الجدول لن يعمل معه الا بادخال كلمة السر بما يشابه هذا : If IpAddress = DLookup("[IpAddress]", "tblLog") Then Exit Sub End If Dim mypass mypass = "123" str_Title = "الرقم السري مطلوب" str_Prompt = "ادخل الرقم السري" If InputBox(str_Prompt, str_Title) = mypass Then If DCount("[IpAddress]", "tblLog") = 0 Then Call LogIpAddress Exit Sub End If Else MsgBox "لاتملك الصلاحية" DoCmd.CancelEvent DoCmd.Quit End If IP2.rar
  18. جميل جدا .. تمت التجربة .. يوجد ثغرة وهي اذا الجدول خالي يتم فتح النموذج بمعنى يمكنني افراغ الجدول وتشغيل الفورم على اي جهاز وانت ايضا لا يمكنك وضع قيمة في الجدول عندما ترسله لي لأنه سيجد قيمة مغايرة ولن يعمل
  19. نحترم فكرتك .. في الأصل أكسس لم تصنعه ميكروسوفت ليستفاد منه كتوزيع تجاري ، كما هو الحال في اللغات البرمجية الأخرى وتطبيقاتها وانما عملته لخدمات المكتب وتستفيد منه المؤسسات الصغيرة في اعمالها ، مثله مثل اكسل والوورد وبقية المجموعة ,, لاحظ ان معالج اكسس يصنع مشروعا كاملا بضغطة زر . فاذا ارتقينا الى قواعد سيكوال سيرفر فالافضل الارتقاء الى لغات برمجية ارقى وافضل ، والواجهات فيها لا تقارن بواجهات اكسس المحدودة . ما يميز اكسس سهولة ويسر العمل عليه وسرعة التنفيذ ... فما يتم تنفيذه على اكسس في يوم .. سيأخذ قرابة الشهر على اللغات الأخرى والسبب ان القوالب جاهزة في اكسس ولا تحتاج بناء من الصفر
  20. تمام .. عبارة وافية كما لو انك تحزم امتعتك وترسلها الى مكان آخر .. فالمسألة عبارة عن حزم وفك برامج التحزيم مفيدة في جوانب اخرى ( غير الحزم والفك ) بصورة عامة .. تقوم بتشغيل ملفات ضمن الحزمة كما لو انت قمت بها يدويا .
  21. المثال عمل عندي على اكمل وجه بالنسبة للحماية التي يعملها وندوز على الملف: انقر بالزر الأيمن على ملف اكسس ثم اختر الخصائص انظر الصورة : وضع علامة على خانة الاختيار ثم تطبيق / موافق
  22. اتوقع ان الخلل في مركز التوثيق عندك قبل فتح اكسس انقر بالزر الايمن ثم خصائص وازل الحماية ارفقت لك المثال مضغوط .. حتى لا تتم حمايته جرب فك الضغط وانقر نقرا مزدوجا على العقدة tree2.rar
×
×
  • اضف...

Important Information