اذهب الي المحتوي
أوفيسنا

محب العلم

04 عضو فضي
  • Posts

    631
  • تاريخ الانضمام

  • تاريخ اخر زياره

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

  1. تفضل اخي محمد العربي empupdate.rar تحياتي
  2. حياك الله أخي حامل المسك، بكل تأكيد يجب الاحتياط أنها ليست Null وذلك يتم عن طريق nz مثال (nz(marks.m1,0 فإذا كان الحقل null يعطينا 0 وهكذا تحل المشكلة ولئلا اتعبك قمت بالتعديل في الملف في الاستعلامات الإجرائية لجميع العلامات الملف المعدل :StudentsMarksv1.rar تحياتي
  3. نفس الجواب السابق ولكن هذه المرة تعكس الشرط وتعكس الرسالة
  4. كل الاحترام والتقدير للأخ Accessna كلا المثالين بحاجة لعمل إضافي ومثال الأخ أكسسينا رغم أنه يعمل التمدد العمودي ولكنه يخفق في تحديد مواقع enter بالنسبة لمثال stephen يحسب بدقة متناهية وقد طورته ليعمل افقيا أو عموديا أو كليهما حسب الطلب كما في مشاركة نرجس في خاصية علامة (وليس علامات ذكية) نضع H ليتمدد أفقيا فقط V ليتمددعموديا فقط لا شيء يعمل بالاتجاهين التعديل :MxMini2003.rar يوجد مشكلة أخرى في كلا المثالين وهي ان التمدد يبدأ من الجهة اليسرى العليا لمربع النص وهذا التمدد لن يكون جميلا إذا كانت المحتويات عربية. شخصيا لم يروقني المثال كثيرا ولا ارى له استخداما منظورا ، إنما كتطبيق للمهارات والخفايا البرمجية فكلا المثالين رائع وقوي تحياتي
  5. تفضل أخي سامي : samiUpdatev3.rar تحياتي
  6. سامي ، مدير الجمعية هو حقل في جدول الجمعية ولكل جمعية سيكون هناك مدير مختلف ولذلك وبما أن جدول الجمعية يرتبط مع جدول المستفيد فإن التقرير يجب أن يظهر الجمعية ممثلة بأسم مديرها بجانب المستفيد أو أن تجعل منه حقل تجميع بحيث يظهر كل المستفيدون من جمعية معينة كمجموعة يعلوها أو يدنوها اسم المدير. أما ظهور اسم مدير الجمعية بأسفل تقرير المستفدين فلم أفهم الهدف منه !!
  7. راجع الموضوع الشامل حول الرسائل التحذيرية (هـــــــــنـــــــــــا)
  8. المثال السابع أربعة أساليب لمنع ظهور رسائل التحذير التي ستظهر قبيل تنفيذ استعلاماً إجرائياً المقدمة عندما نطلب تنفيذ استعلاما إجرائيا لإضافة سجل جديد أو تعديل بيانات سجل أو لحذف سجل فإن رسالة تحذيرية ستظهر قبيل تنفيذ الإجراء ستطالب المستخدم بتأكيد تنفيذ الإجراء. في بعض البرامج يتضايق المستخدم من هذه الرسائل. في هذا المثال سنتعرف على أربعة أساليب لمنع ظهور هذه الرسائل. التفاصيل الأساليب التي سنستخدمها لمنع الرسائل التحذرية هي 1. الطريقة اليدوية من الخيارات 2. طريقة استخدام الماكرو 3. باستخدام CurrentDB.Execute 4. باستخدم DoCmd.SetWarnings والأن لنتعرف على تفاصيل كل أسلوب من هذه الأساليب الطريقة الأولى: يدويا من الخيارت وذلك يتم بحسب الشكل الآتي : الطريقة الثانية : بواسطة الماكرو وذلك يتم بعمل ماكرو كما يآتي الماكرو الأول Hide سيمنع الرسائل من الظهور والماكرو الثاتي Show سيعمل على إظهار الرسائل ويطلب هكذا Private Sub أمر1_Click() Dim SQL As String SQL = "insert into students (name) " & _ "values ('طالب')" DoCmd.RunMacro "Messages.Hide" DoCmd.RunSQL SQL DoCmd.RunMacro "Messages.Show" End Sub الطريقة الثالثة : باستخدام CurrentDB.Execute لتنقيذ الإجراء بدلا من DoCmd.RunSQL هكذا Private Sub أمر2_Click() Dim SQL As String SQL = "insert into students (name) " & _ "values ('طالب')" CurrentDb.Execute SQL End Sub الطريقة الرابعة : بواسطة الأمر DoCmd.SetWarnings هكذا Private Sub أمر3_Click() Dim SQL As String SQL = "insert into students (name) " & _ "values ('طالب')" DoCmd.SetWarnings False DoCmd.RunSQL SQL DoCmd.SetWarnings True End Sub المثال : StopWarnings.rar أفضل وأسهل طريقة هي الثالثة تحياتي
  9. أخي أبا أكرم (أكرمك الله) شكرا لك الأخ صلاح والكلام أيضا موجه لكل الأخوة الاعضاء، لتكون عملية البحث مجدية وتقودك إلى ما تصبو إليه ابحث في المنتديات الفرعية وفي نموذج البحث وليس في البحث البسيط الذي يقع اسفل كل منتدى لأن البحث البسيط غالبا لا يقود إلى الموضوع المطلوب . خطوات البحث الجيدة 1. أدخل لنموذج البحث (هــنــا) 2. تتبع الإرشادات في الشكل الأتي لتصل إلى هدفك بسرعة 3. ستحصل على النتائج المطلوبة تفقدها جيدا 4. إذا وصلت جزئيا للحل وبقي شيء عالق اكتب موضوع جديد مشيرا فيه إلى الموضوع الذي استفدت منه جزئيا للتتم عملية الربط واستكمال الموضوع وهذا فيه فائدة عظيمة لك ولغيرك حيث تترابط هكذا الأفكار ببعضها ولا ننسى بهذا مشاركات وابداعات من سبقونا فيه. 5. إذا لم تصل إلى أي شيء افتح موضوع جديد وبإذن الله ستحل المشكلة تحياتي
  10. حياك الله أخي سامي ، تم تغيير العلاقة للتناسب مع كون الجمعية تصرف على المستفيد وأبناءه وذلك كما أشرت سابقا هكذا تم اضافة اسم المدير في تقرير الابناء وقياسا عليه تستطيع عمل ذلك لأي تقرير أخر الملف المعدل: تحياتي
  11. السلام عليكما أخي أبا أكرم (أكرمك الله) وشكرا لك أخي أبا نجود سأنجدك بإذن الله لعمل الباسورد اتبع الخطوات الأتية واهمها الأولى أن تفتح القاعدة في الوضع الخاص ولإلغاء الباسورد عندما تكون معينة كما يأتي تحياتي
  12. حياك الله أخي حامل المسك ، التعديل يشمل إضافة جدول للمحكمين وربط الجداول معا بعلاقات وعمل استعلامات تحديث للعللامات وطلبها في حدث عند الفتح لنموذج الطلاب الذي سيعرض النتائج وعمل نموذج إدخال للعلامات والله الموفق التعديل : StudentsMarks.rar تحياتي
  13. تخمينك في محله يا اكسيسنا وشكرا لك على مثالك الرائع الذي سيشمله تقريري لاحقا وقريبا بإذن الله هل هذه الفكرة من تصميمك ؟ تحياتي
  14. نتابع النقاش بالنسبة للمشكلة الأولي هي من خصائص الربط للعلاقة ولتعديل ذلك يجب عمل خطوتين كما في الشكل الخطوة الأولى : تضغط بزر الماوس اليمين على سهم العلاقة وتحررها (edit) الخطو الثانية : تختار الخيار الثاني بدل الأول ملفك بعد التعديل : تحياتي
  15. وعليكم السلام ، سامي ، نبدأ المناقشة من المشكلة الثانية 1. أنت لم تعرف رقم الجمعية في جدول الجمعية مفتاحا 2. لم تنشأ علاقة بين جدول الجمعية وجدول الابناء وقد صححت ذلك والنتيجة هي كما يأتي وطبعا هنا تم الربط مع جدول الأبناء بفرض أن عدة جمعيات يمكن أن تصرف على أبناء مختلفين لنفس المستقيد أما إذا كان ذلك غير ممكن بمعنى أن الجمعية تصرف على مستفيد (مع كل أبناءه) فيجب تعديل التصميم ليوضع رقم الجمعية في جدول المستفيد ويتم الربط مع المستفيد تحياتي
  16. السلام عليكم شكرا لكل المشاركين ، يبدو أن يوسف قد نسي ارفاق التعديل anamo، برجى الانتباه أنك في حلك افترضت أن حقل الرقم هو نص وليس رقم كما هو الحال في مثال سامي الذي ارفقه. سامي ، حل هذه المشكلة يكون بالاحتياط لذلك كلما حدثنا في حقل الرقم أو أضفنا سجل جديد ولذلك يجب التحقق من أن الرقم لا يتكرر بعد حدث التحديث update لرقم الموظف وذلك بإضافة الإجراء الأتي لحدث التحديث لحقل رقم الموظف Private Sub رقم_الموظف_AfterUpdate() empno = Me.رقم_الموظف a = Nz(DCount("[رقم الموظف]", "[جدول الموظفين]", "[رقم الموظف]= " & Str(empno)), 0) If a <> 0 Then MsgBox "هذا الرقم موجود مسبقا", vbCritical, "رسالة تحذيرية" Me.Undo End If End Sub ولاحظ هنا أنه يتم عد كم مرة يتكرر الرقم في جدول الموظفين فإذا كانت النتيجة صفرا فهو لم يتكرر أما إذا كانت غير ذلك فهذا يعني انه تكرر وفي هذا الحالة يتم التحذير والتراجع عن التحديث أو الاضافة لجديد مكرر ملفك بعد التعديل : db2update.rar تحياتي
  17. السلام عليكم إبتداءً شكرا للأخ فهد على هذا المثال لقد درست المثال واعتقد أنني سأستطيع (بإذن الله) أن احيطكم علما بتفاصيله وحيثياته قريبا جدا عند إلقاء الضوء سريعاً على هذا المثال نلاحظ ما يلي : 1. هذا المثال يستدعي إقتران API وهو DrawText وتم عمله من ستيفين ليبانز (Stephen Lebans) 2. اسم الإجراء هو fAutoSizeTextBoxS 3. هذا المثال يعمل عندما يكون مربع النص في قسم التفاصيل ويلزم إجراء تغييرات إذا وضع في قسم أخر في النموذج 4. هناك نسخة خاصة من هذا المثال تعمل لسطر واحد فقط كما تطلب الأخت نرجس. 5. هذا المثال يفترض عرضا ثابتا لعنصر التحكم مربع النص 6. لا يمكن تصغير مربع النص أقل من 1440 twips 7. يعمل لمربع نص يمتلك التركيز أبسط طريقة لأن نجعله لا يتمدد في الطول هو عدم السماح باستخدام Enter في مربع النص. ملاحظة مهمة عن طريقة عمله : يعمل بحسب حجم الفونت المستخدم (font size) وهنا يكمن سر حسابات تغيير الحجم وهناك المزيد من الملاحظات تحياتي
  18. السيد أبو الفتوح المحترم إذا كان المقصود أمثلة إلتفاف النص في شريط العنوان للنموذج أو غيره فقد تم نبش أربعة أمثلة من منتدانا شارك في الوصول إليها مجموعة من الأعضاء جمعتها لك في مثال واحد تفضل Movable.rar تحياتي
  19. شكرا للأخ يوسف المثال السادس كيفية التحقق من أن النموذج في وضع التعديل تلقائيا المقدمة كثيرا ما يتم تصميم النماذج لتلعب دور الإدخال ودور الإخراج معا، بمعنى أن النموذج يستعرض مجموعة السجلات وكذلك يستخدم لإضافة سجل أو تعديل سجل معروض وقد يؤدي هذا الأمر عن طريق الخطأ وخصوصا إذا كان التحكم في النموذج ضعيفا (أو مفقودا) فإن هذا قد يؤدي إلى ضياع بعض البيانات المهمة. في هذا المثال سيتم وصف أسلوبين يمكن استخدامهما للتحقق من أن النموذج في وضع التعديل تلقائيا ويمكن الاستفادة من هذا الأمر في زيادة التحكم في النموذج لعمل الإجراء المناسب في هذا الوضع أو للتراجع عن التعديلات إن احببنا. الفوائد الجانبية للمثال 1. كيفية التراجع عن مجموعة التعديلات على سجل . 2. كيفية التحكم في صفحة النموذج 3. التعرف على حدث Dirty والذي يتفعل قبل أن يتم التعديل على حقل أو سجل الأسلوبان المراد اتباعهما لتحقيق هدف المثال هما : 1. استخدام حدث عداد الوقت للنموذج 2. استخدام خاصية dirty في تعبير التفاصيل الأسلوب الأول : استخدام حدث عداد الوقت للنموذج 1. يتم تحديد الزمن هكذا 2. يتم تعريف إجراء عداد الوقت للنموذج هكذا Private Sub Form_Timer() ' the Timer Interval has been set at 1000, that is, once per second. Static bFlag As Boolean If Me.Dirty Then If Not bFlag Then Me!cmdUndo.Enabled = True bFlag = True End If Else If bFlag Then Me!txtFirstName.SetFocus Me!cmdUndo.Enabled = False bFlag = False End If End If End Sub وما يقوم به هذا الاجراء هو التحقق بشكل دوري كل (ثانية) حسب الزمن المحدد في خطوة 1 إذا تم اي تعديل في السجل وتبديل حالة زر التراجع عن التعديلات بين التفعيل وعدمه وهكذا نكون قد حققنا ما نصبو له بحسب حالة هذا الزر. 3. كما ذكرت سابقا فإن احد اجراءات النحكم في النموذج قد تكون التراجع عن هذه التعديلات وذلك يكون هكذا Sub cmdUndo_Click() ' same action as clicking Undo from the Edit menu DoCmd.RunCommand acCmdUndo End Sub والنتيجة تكون كأننا ضغطنا على زر التراجع عن التغييرات ctrl+z عدة مرات الأسلوب الثاني : استخدام خاصية dirty في تعبير 1. تعريف الإجراء التالي في وحدة نمطية Function EditModeChange (F As Form) As Variant If F.Dirty Then F!btnUndo.Enabled = True Else F!btnUndo.Enabled = False End If End Function 2. تعريف حدث بعد التحديث للنموذج كما يآتي Sub Form_AfterUpdate () Me!txtEditModeChange.Requery End Sub وهذا بدوره سيحقق المطلوب كما هو الحال بإستخدام الأسلوب الأول من الفوائد الجانبية لهذا المثال كيفية عمل صفحات في النموذج والتنقل بينها وذلك يتم كما يلي 1. في وضع التصميم أضف pagebreak فاصل صفحات في موضع الفصل كم يأتي : 2. ثم بناء على أزرار الأمر يتم التوجه للصفحة المطلوبة هكذا ]Private Sub cmdCompanyInfo_Click() ' move to first page of form. Me.GoToPage 1 End Sub[/size] Private Sub cmdPersonalInfo_Click() ' move to second page of form. Me.GoToPage 2 End Sub المثال بعد تعريبه : DetectEdit.rar تحياتي
  20. نرجس هذا أقل ما يمكن فعله بالنسبة للبحث عن المشابه تفضلي : DictionaryV2.rar تحياتي
  21. طارق ، إن احببت إن نبدأ بهذا كمشروع يتم انجازه هنا فأرجو اعلامي ؟ تحياتي
  22. السيد أبو الفتوح ، امر ادخال جديد للجدول هو insert into وأبسط شكل عام لطريقة طلبها هي INSERT INTO "table_name" ("column1", "column2", ...) VALUES ("value1", "value2", ...) وعندما تستخدم في أكسيس يمكن استخدامها مثلا هكذا Dim SQL As String SQL = "INSERT INTO pictures ( stno, FilePreview ) " & _ "values ('" & Me.stno & "', '" & newEntry & "')" DoCmd.RunSQL SQL Me.stPictures.Requery حيث يتم في هذا الكود اضافة سجل جديد للجدول Pictures معرف فيه رقم وهو stno ونص وهو newentry حيث يتم اخذا هذه القيم من النموذج تحياتي
  23. أرأيتم إخواني لماذا أنا حريص على تسجيل كل ما أتوصل اليه في مسألة ما حتى وإن لم يصيب الهدف مباشرة، ذلك لأنه يمكن أن يفيد أحرين بالإضافة لصاحب المشاركة الأساس. تحياتي
  24. محمد ، الشرط هكذا عمار ، ما يوده محمد هو حذف العاملين الذين سنة تقاعدهم بين السنتين المدخلتين المشكلة تكمن في أنه إذا كان حقل تاريخ التقاعد null أي أنه لم يعبئ عند إدخال البيانات فإن الاستعلام سيخفق إلا إذا تم الاختياط له كما هو الحال أعلاه تحياتي
×
×
  • اضف...

Important Information