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

الدكتور خضر الرجبي

المشرفين السابقين
  • Posts

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

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

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

  1. السلام عليكم اخي ميدو ، بارك الله فيك أرجو منك مايلي : 1. قم بحذف النماذج التي صممتها . 2. من الصورة التالية تتعلم كيف تحو الاتجاه من اليمين إلى اليسار 3. أعد بناء النماذج مرة أخرى 4. أرفع الملف للمنتدى مرة أخرى. 5. لا تزعل عليّ مع الاحترام والتقدير
  2. السلام عليكم أخي محمد ، هذا من أجل تجميع البيانات ، لا تختار شيء. مع الاحترام
  3. السلام عليكم أخي أبا باسل ، المشكلة ليست من الكود ، المشكلة من مدى التاريخ الذي تدخله حيث لا يوجد سندات لعرضها ربما ، جرب من 1-1-2005 وحتى 10-10-2005 وكل شيء سيعمل تمام. أنا جربت كل الذي قلته واشتغل تمام وأعطى نتيجة. في الحالة الثانية بعض اضافة الشرط بالاستعلام كما طلبت. مع الاحترام والتقدير
  4. السلام عليكم شكرا لكم جميعا ، وهكذا يصبح لدينا 4 حلول للسؤال : 1. سلمان : إغلاق النموذج المنبثق عند عرض التقرير . 2. خضر : تصغير وتكبير النموذج المنبثق وقت عرض التقرير. 3. طيف : استخدام خاصية المنبثق للتقرير . 4. أشرف : إخفاء النموذج المنبثق وقت عرض التقرير. وبرأيي الشخصي أن أسهل وأسرع الطرق تطبيقا في 2003 هي ما اقترحه الاخ طيف مشكورا وهذا ما أنصحه به الأخ السائل ، إن كان يستخدم 2003 وله الخيار. مع احترامي لجميع المشاركين. مع احترامي لجميع المشاركين
  5. السلام عليكم لنفرض أن d هي التاريخ الأول وللحصول على النتيجة المطلوبة يكون في المعادلة التالية : CDate(Day(d) & "-" & Month(d) & "-" & Year(d) + 2) تحياتي
  6. السلام عليكم شكرا لكما ، على الأراء مع الاحترام والتقدير
  7. السلام عليكم إخواني ، بارك الله فيكم جميعا جلبت المرفق التالي من منتدى أهلا عرب ، أملا أن نجد حل لفك ترميزه وهو عبارة عن قاموس ، جربت باستخدام البرنامج الذي زودنا به الأخ بسكرا مشكوراً ولم ينجح الأمر (أقصد في فك الترميز) . مع الاحترام والتقدير dictionary.rar
  8. السلام عليكم الأخ أشرف ، بارك الله فيك لتتم االفائدة ، علما أنني جربت ما تقترحه ولم ينجح معي . أرجو منك فضلا ، أن تتطبق عمليا ما تقترحه ، في مثالي المرفق ، ولا تنسى اظهار النموذج بعد إغلاق التقرير . مع الاحترام والتقدير
  9. السلام عليكم هذه الأمانة لا أشهدها إلا عند القليل من التلاميذ بارك الله فيك. مع الاحترام والتقدير
  10. السلام عليكم أخي ميدو63، ما شاء الله عليك ، كل شيء تمام ، بالنسبة للحقل الذي تسأل عنه ملاحظتك تمام وهو BoardNumber أي رقم العضو وأرجو منك تعديله ، جميل جدا ، الان الجداول والعلاقات جاهزة. ننتقل إلى النماذج فوراً ... أرجو منك تصمصم النماذج التالية لوحدك البنوك اعضاء المجلس الدفعات كل نموذج لوحده ومرتبط بجدول بياناته وأرجو منك بعد التصميم ، أن تقوم بإدخال 10 سجلات في كل نموذج . وإذا ما بتعرف كيف من المعالج ، وإذا ما عرفت أرجو أن تسألني. مع الاحترام والتقدير
  11. السلام عليكم أخي وحيد ، بارك الله فيك أما إذا لم تحب إغلاق النموذج المنبثق كما ذكر اخي سلمان ، في اقتراحه مشكورا فيمكن الإبقاء على أزرار التصغير والتكبير في النموذج المنبتق وعندما يظهر التقرير ، تعمل تصغير :( . كما في المثال المرفق. تذكر أن خاصية ظهور أزرار التصغير والتكبير في النموذج المنبثق مرتبطة بنوع (شكل) الإطار يجب أن لا يكون من نوع صندوق حوار وإلا فإن الازرار ستختفي تلقائيا حتى ولو تم طلبها. مع الاحترام والتقدير Popup.rar
  12. السلام عليكم أخي مازن ، بارك الله فيك الحل بالاستعلامات والطرق كثيرة ، وإليك هذا الإقتراح مع الاحترام Mazenkl.rar
  13. السلام عليكم أخي رضا عقيل ، بارك الله فيك شكرا لك على هذا الجهد المثمر ، وعلى هذه الأداة الإبداعية والمفيدة للمطورين للمحافظة على برامجهم الموزعة. مع الاحترام والتقدير
  14. السلام عليكم أخي باران ، بارك الله فيك لتخصيص حجم الصفحة المراد طباعته لا بد من استخدام الحلول البرمجية ، والأمر ليس بالبساطة التي قد يتصورها البعض . إن كنت من محبي الحلول البرمجية وبإمكانك التفاعل معها أرجو اعلامي حتى ابدأ درس جديد في هذا الخصوص ولكن ليس هنا بل في موضوع الدروس لأن الموضوع معقد جدا وطويل جدا. علما أن طريقة المعالجة في أكسيس 2000 تختلف تماما عن أكسيس 2002 فأعلى وشرحي سيكون عن الأخير. تستحق الشكر على طرح مثل هذا الموضوع. مع الاحترام والتقدير
  15. السلام عليكم أشكرك أخي أبا طيف ، على هذا الحل الرائع. أخي رضا عقيل ، قمت بتثبيت الموضوع بناء على طلبك ولأهميته حتى نهاية الشهر الحالي ، أملا أن تتحفنا فأفكارك وحلولك . مع الاحترام والتقدير
  16. السلام عليكم اخي عصام ، بارك الله فيك أقدم لك هذا المثال ، الذي أشتققته من أحدى البرامج ، والذي بإمكانك استعماله في أي تطبيق ، ويكون للمستخدم خيار التغيير في الدقة. أملا أن يلبي احتياجك . مع الاحترام والتقدير Screen_Resulation_Example.rar
  17. السلام عليكم أخي بسكرا ، بارك الله فيك أشكرك على سرعة التجاوب والرد والمفاجئة الحلوة بهذا البرنامج الرائع الجديد عليّ . مع الاحترام والتقدير
  18. السلام عليكم أخي أبا يوسف الراشد ، بارك الله فيك إبتداءً ، أود أن أتقدم لك بجزيل الشكر على اهتمامك بالموضوع وتشجيعك ودعائك الكريم. السؤال الأول هو عن RecordSetClone الأستنساخ هنا يعني نسخة عن مجموعة التسجيلات ليس إلا ولكن المعنى اللفظي clone يترجم هكذا ، أما عن الأهداف فقد ذكرتها وألخصها مرة أخرى هنا : 1. نستخدم هذه الطريقة للوصول إلى خصائص مجموعة التسجيلات recordset ، التي لا يوفرها لنا النموذج . 2. استقلالية مؤشر هذه المجموعة عن مجموعة التسجيلات مما يتيح لنا عمل أشياء على سجلات النموذج بدون ظهور أثر هذه الأشياء في واجهة النموذج. السؤال الثاني : ما وظيفة EOF كما في المثال الأخير الذي ذكرته لنا ؟ تخيل أننا عند أخر سجل وقمنا بطلب أمر الأنتقال إلى السجل التالي movenext بهذه الحالة سيحدث خطأ وهو أنه لا يوجد سجل No current Record . هذا من ناحية ومن ناحية أخرى نحن نبدأ في التنقل بين السجلات من أول سجل وحتى أخر سجل والأسلوب الذي نتبعه في الخروج من الحلقة هو عند وصولنا إلى أخر سجل لذا ما لم تكن قيمة مؤشر السجلات eof يعني أخر سجل ، فإننا سنبقى في الحلقة . ويوجد ايضا قيمة أخرى لمؤشر السجلات وهي bof وتشير إلى بداية أول سجل وتعمل بمنطقي معاكس تماما لمنطق eof. يعني بطريقة أوضح تكون قيمة eof = true عندم يكون مؤشر التسجيلات عند أخر سجل وتكون قيمة bof = true عندما يكون مؤشر التسجيلات عند أول سجل وعدا ذلك تكون القيمتين false. وبناء عليه يتم بناء المنطق البرمجي لما سنفعله حسب الحالية وطريقة التنقل من أول إلى اخر تسجيلة أو العكس . مع الاحترام والتقدير
  19. السلام عليكم أخي رضا ، بارك الله فيك متشوقٌ لرؤية الكود وخصوصا بما يتعلق بالجداول المرتبطة . علما أن هذه الطريقة في إخفاء الجداول له سيئة واحدة مع أكسيس 2000 حيث إذا قمنا بضغط القاعدة وإصلاحها فسيتم حذف هذه الجداول المخفية تلقائيا وبدون سابق تحذير ، لهذا يقال كما تعرفون ان الجداول لا تحذف فعليا من القاعدة يعني تعلم فقط للحذف ( mark for deletion) وتحذف فقط عند الضغط والاصلاح . ولكن لا تبتأس من هذا الأمر فحل هذه المشكلة موجود عندي وسأنقشه في الوقت المناسب. أخي بسكرا ، بارك الله فيك شيٌ رائع أنك توصلت إلى أسماء الجداول حيث تثبت بذلك نظرية فشل الحماية المطلقة وتوفر الإقترانات العكسية دائماً والتي يؤمن بها الكثيرون ولذلك أنا شخصيا ً استخدم طرق حماية ناجعة لا تحتاج إلى هذا الجهد. أرجو منك عرض الطريق التي توصلت بها إلى اسماء الجداول مشكوراً. أخي ابا طيف ، بارك الله فيك يبدو أن أسلوبك في التوصل للحل ومعرفة اسماء الجداول والتعديل في البيانات يختلف عن أسلوب أخي بسكرا تماما ، ولذا أرجو منك فضلا أن ترفق المثال الذي عملته وتحدثت عنه. ولمزيد من التجارب ، أرجو من أخي بسكرا وأخي أبا طيف ، محاولة معرفة ما هي أسماء الجداول في القاعدة المرفقة هنا والتي ستبدو لكم فارغة . أرجو عدم استخدم اسلوبي الذي عرضته في أول مشاركة لي في هذا الموضوع. مع الاحترام والتقدير Can_You_Show_Tables.rar
  20. السلام عليكم أخي ميدو63 ، بارك الله فيك ملاحظة استدراكية : أرجو منك عدم رفع الملف قبل وصولك للنتيجة التالية : والتي ستصل لها بكل تأكيد وبكل سهولة وخصوصا إذا تمعنت في فهم الدرس الذي اشرت اليه أعلاه مع أملي بك ودعائي لك بالتوفيق وشكر لك
  21. السلام عليكم أخي ميدو63 ، بارك الله فيك كبداية ، الحقيقة ، أنك أكثر من رائع ، شيء جميل جدا وجهد مبارك ... أرجو ملاحظة تعديلاتي الطفيفة على البرنامج وملاحظة المفاهيم التالية : 1. يجب التمييز بين أمرين في الجداول description الوصف ، caption التسمية التوضيحة ، حيث description هي المعلومات التي تظهر في شريط المعلومات في حالة إدخال البيانات عندما يكون الجدول أو النموذج المرتبط بالجدول في وضع الفتح . أما بالنسبة لخاصية caption فهي عملية ترجمة لأسماء الحقول من الإنجليزية والتي تستخدم في البرمجة ، ومسمياتها بالعربية التي ستظهر في النماذج وستظهر في الاستعلامات والجدوال كروؤس للأعمدة في وضع الفتح. 2. الحقول مثل التلفونات والفاكسات والمحمول يجب أن يكون طول الحقل على الأكثر 15 وليس 50 . 3. بالنسبة للتواريخ يجب ان يكون نوع البيانات date 4. بالنسبة للعنوان البريد الإلكتروني يكون text 100 وليس hyperlink أما بالنسبة للعنوان الإلكتواني فتعريفك صحيح يجب ان تكون hyperling (ارتباط تشعبي) . 5. عينت لك المفتاح الرئيسي لجدول المجلس وهو رقم العضو ولجدول البنوك وهو رقم البنك أما بالنسبة لجدول الدفعات فليس له مفتاح رئيسي حيث أن رقم العضو الذي أضفته هناك أيضا سيتكرر حيث سيكون للعضو أكثر من دفعة بالتأكيد . والمفتاح الرئيس للجدول هو الحقل الذي لا يتكرر وهو معرف لسجل واحد في الجدول فبمعرفته يمكن الوصول لسجل واحد فقط على سبيل المثال البنك رقم 10928 يعرفنا على بنك واحد فقط من البنوك ولا يوجد غيره والعضو رقم 1 هو عضو واحد في المجلس لا يوجد غيره وتعيين المفتاح الرئيس مهم في عمل العلاقات وهي وظيفتك التالية . هذا كل شيء بالنسبة للجداول الأن ، الوظيفة التالية هي عمل العلاقات التالية علاقة تربط رقم العضو من جدول المجلس مع رقم العضو في جدول الدفعات وعين خاصية التكامل المرجعي وتتالي التحديث السجلات المرتبطة. علاقة تربط بين رقم البنك في جدول الدفعات وبين رقم البنك في جدول البنوك . أرجو أن تراجع درس الجداول والعلاقات في هذا الموضوع لفهم ما أعنيه تماما بالمطلوب والدرس هــنــا ويرجى عدم وضع استفسارات حول موضوعك هناك بل تكمل الموضوع والاستفسارات هنا. أرجو منك اكمال العمل على المرفق واخباري بكل شيء تغيره ، مع أنني سأعرف ماذا تغير :( . أنتظرك حتى الغد بإذن الله تكون أتممت هذه الوظيفة . Council.rar
  22. السلام عليكم إخواني وأخواتي ، بارك الله فيكم جميعا ، ونكمل درسنا مع نفس المثال السابق ولكن بتقنية ADO المثال يصبح كما يلي : Private Sub Command0_Click() Dim Cnn As ADODB.Connection Dim rst As ADODB.Recordset Dim strCnn As String Set Cnn = New ADODB.Connection strCnn = CurrentProject.Connection Cnn.Open strCnn Set rst = New ADODB.Recordset rst.Open "SELECT EmpNotes FROM Employees WHERE DepId='10'; ", Cnn, adOpenKeyset, adLockOptimistic MsgBox rst.RecordCount & " عدد السجلات هنا صحيح وهو " rst.MoveLast rst.MoveFirst MsgBox rst.RecordCount & " عدد السجلات في المجموعة المختارة " Do While Not rst.EOF rst.Edit rst!EmpNotes = "مسافر في مهمة" rst.Update rst.MoveNext Loop rst.Close End Sub الملاحظات : 1. كما ذكرنا سابقا Dynaset في DAO يقابلها Keyset في تقنية ADO هذا بالنسبة للتعريفات . 2. مشكلة أسلوب الحصول على عدد السجلات في المجموعة التي اضطررنا إلى الذهاب فيها إلى أخر سجل ثم إلى أول سجل ، قد اختفت هنا ولا حاجة سوى للذهاب إلى أول سجل قبل الدخول في الحلقة ولكنني أبقيتها هنا حتى تتأكدوا من ذلك بأنفسكم . 3. بالنسبة لإستخدام with أو عدم استخدامها لا علاقة لها بتقنية ADO أو DAO ويبقى الهدف من استخدمها ان استخدمت كما ذكرت سابقا هو تسهيل عملية الوصول إلى الخصائص مباشرة بكتابتها بعد النقطة وبدون كتابة اسم مجموعة التسجيلات كما أوضحت ذلك في الدرس السابق. 4. لا يوجد هنا خاصية Edit. ولا داعي لإستخدامها كما في DAO أما بالنسبة لخاصية التحديث Update. فسواءً تم وضعها أو لا النتيجة واحدة. أملا لكم التوفيق في فهم الدروس . في الدرس القادم سنتحدث عن خاصية Bookmark وأهميتها. المرفق التالي يشمل الست أمثلة التي تم مناقشتها حتى الأن. مع الاحترام والتقدير RecordsetLesson_6_Examples.rar
  23. السلام عليكم أخي رضا عقيل ، بارك الله فيك أشكرك على هذا الموضوع المثير وبارك الله في جهودك ... لن أتحدث هنا عن مثالك الذي أعتقد أنه محمي بشكل جيد ، وذلك لأنني لست من هواة فك الحماية . أود هنا أن أعرض طريقة لحماية الجداول برمجياً بحيث ولو أن المستخدم عدل خيار إظهار الكيانات المخفية من الأدوات .. خيارات ، فإنه لن يستطيع إظهار الجدول الذي تم إخفاءه. Private Sub HT(strTableName As String) Dim db As DAO.Database Dim tdf As DAO.TableDef Set db = CurrentDb Set tdf = db.TableDefs(strTableName) tdf.Attributes = tdf.Attributes + dbHiddenObject End Sub أرجو منك تجربة المثال وإبداء رأيك في هذه الطريقة. مع الاحترام والتقدير HideTables.rar
  24. السلام عليكم أخواني وأخواتي ، بارك الله فيكم جميعا الأن ننتقل لدرس تحديث السجلات بتقنية DAO في مثالنا التالي سنقوم بوضع ملاحظة لجميع الموظفين الذين يعملون في قسم الإدارة التي رقمها 10 والملاحظة هي أن الموظف مسافر في مهمة. Private Sub Command0_Click() Dim db As Database Dim rst As DAO.Recordset Set db = CurrentDb Set rst = db.OpenRecordset("SELECT EmpNotes FROM Employees WHERE DepId='10'; ", dbOpenDynaset) MsgBox rst.RecordCount & " هذا العدد لا يشير إلى عدد السجلات " rst.MoveLast rst.MoveFirst MsgBox rst.RecordCount & " عدد السجلات في المجموعة المختارة " Do While Not rst.EOF rst.Edit rst!EmpNotes = "مسافر في مهمة" rst.Update rst.MoveNext Loop rst.Close End Sub ملاحظات : 1. في جملة الفتح نلاحظ أننا نستطيع استعمال جملة sql مباشرة وفي هذه الحالة نوع مجموعة التسجيلات يكون Dynaset. 2. نلاحظ أن العدد الذي سنحصل عليه من recordcount قبل عملية الذهاب إلى أخر سجل movelast وثم الرجوع إلى أول سجل هو ليس عدد السجلات الصحيح ، وحتى نحصل على عدد السجلات الصحيح يجب إتباع هذا الأسلوب دائما وبعدها فقط نستطيع أن نعرف عدد السجلات الناتجة من التعريف. 3. قبل تعديل أي حقل في مجموعة التسجيلات يجب جعل السجل في وضع التعديل edit وبعد التعديل يجب عمل Update (تحديث) وإلا لن يتغير شيء. 4. يمكن كتابة الأوامر بدون ذكر اسم مجموعة التسجيلات كل مرة باستخدام with كما يلي Private Sub Command0_Click() Dim db As Database Dim rst As DAO.Recordset Set db = CurrentDb Set rst = db.OpenRecordset("SELECT EmpNotes FROM Employees WHERE DepId='10'; ", dbOpenDynaset) With rst MsgBox .RecordCount & " هذا العدد لا يشير إلى عدد السجلات " .MoveLast .MoveFirst MsgBox .RecordCount & " عدد السجلات في المجموعة المختارة " Do While Not .EOF .Edit !EmpNotes = "مسافر في مهمة" .Update .MoveNext Loop .Close end with End Sub يعني عمل with هو تمكيينا من الرجوع للخصائص العائدة لمجموعة التسجيلات بدون كتابة اسم مجموعة التسجيلات rst في كل مرة. سيلحق هذا الدرس (بإذن الله) نفس المثال ولكن بإستخدام تقنية ADO . مع الاحترام والتقدير Edit_Update_DAO.rar
  25. السلام عليكم أخي محمد ، بارك الله فيك قمت بدراسة مرفقك وخصوصا جدول الحركة اليومية التي تسجل فيه تفاصيل الحركات بأنواعه لجميع العملاء وشركات الأسهم . أرجو منك فضلا ، أن تشرح لي ما هو التقرير المطلوب بالضبط عمله وكيفية احتسابه من ذلك الجدول ، بدون التعرض للبرمجة فقط شرح نظري محاسبي . مع الاحترام والتقدير
×
×
  • اضف...

Important Information