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

منتصر الانسي

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

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

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

  • Days Won

    1

كل منشورات العضو منتصر الانسي

  1. اخي العزيز يجب عليك تحديد الحقول المرتبطة بكل قائمة ويمكنك الإطلاع على الرابط هنـــا لعله يفيدك تحياتي,,,
  2. اخي العزيز بدلاً أن نحصر الأمر على الدرجات من صفر الى عشرة من لأفضل الإستفادة من دالة التفقيط بعد تعديلها بما يتناسب مع الدرجات لتشمل الدرجات حتى مليار درجة لو حبيت مرفق لك مثالك بعد التعديل ويبقى مسألة الأمور اللغوية يمكنك مراجعتها وتعديلها أو طرحها هنا ليتم التعديل . تحياتي,,, درجات.rar
  3. اخي العزيز بالإمكان ذلك ولكن نتيجة إنك عامل الرئيس والمعاونين في حقول مستقلة والأعضاء في حقل واحد سيعقد المسألة من حيث تصميم التقرير وتكون هذه الطريقة هي الأنسب أما فيما يخص الاستعلام التوحيدي فإنه عبارة عن دمج جملتي SQL (أو أكثر) في جملة واحدة عن طريق ربطها بكلمة (Union) ويشترط في الجملتين أن تشمل نفس عدد الحقول وبنفس الترتيب فمثلاً في هذا المثال شملت الجمل على الحقول (رقم اللجنة - اللجنة - الاسم - الصفة) وبنفس الترتيب أي لا يتم جعل الاسم بعد الصفة في إحدى الجمل مثلاً وبالإطلاع على الاستعلام في المثال فهو مكون من جملة Sql التالية SELECT [Al-lejan].Nlejna, [Al-lejan].NAlejna, [Al-lejan].name,"الرئيس" As [TheJob] FROM [Al-lejan]; UNION SELECT [Al-lejan].Nlejna, [Al-lejan].NAlejna, [Al-lejan].name1,"المعاون الاول" As [TheJob] FROM [Al-lejan]; UNION SELECT [Al-lejan].Nlejna, [Al-lejan].NAlejna, [Al-lejan].name2,"المعاون الثاني" As [TheJob] FROM [Al-lejan]; UNION SELECT [Al-lejan].Nlejna, [Al-lejan].NAlejna, [Al-Musad].Name, "عضو اللجنة" AS TheJob FROM [Al-lejan] INNER JOIN [Al-Musad] ON [Al-lejan].Nlejna = [Al-Musad].Nlj; وستلاحظ أنها مكونة من الجمل التالية SELECT [Al-lejan].Nlejna, [Al-lejan].NAlejna, [Al-lejan].name,"الرئيس" As [TheJob] FROM [Al-lejan]; SELECT [Al-lejan].Nlejna, [Al-lejan].NAlejna, [Al-lejan].name1,"المعاون الاول" As [TheJob] FROM [Al-lejan]; SELECT [Al-lejan].Nlejna, [Al-lejan].NAlejna, [Al-lejan].name2,"المعاون الثاني" As [TheJob] FROM [Al-lejan]; SELECT [Al-lejan].Nlejna, [Al-lejan].NAlejna, [Al-Musad].Name, "عضو اللجنة" AS TheJob FROM [Al-lejan] INNER JOIN [Al-Musad] ON [Al-lejan].Nlejna = [Al-Musad].Nlj; ولو قمت بنسخ كل جملة لوحدها ولصقتها في محرر SQL في الاستعلامات سينتج عنها إستعلام مستقل وتم ربطها (توحيدها) بكلمة Union أرجو أن يكون الشرح واضح تحياتي,,,
  4. اخي العزيز kemas طلبك ستجده في الموضوع هنــا في آخر مرفق تحياتي,,,
  5. اخي العزيز الموضوع لايحتاج الى شرح كل ما في الامر انه تم انشاء استعلامين يقومان بتجميع كميات المستلم والمنصرف بحسب الصنف ثم تم عمل استعلام لطرح اجمالي المنصرف من اجمالي المستلم وبصدق لا اعرف طريقة الشرح هكذا ولكن قم بفتح الاستعلامات الثلاثة في وضع التصميم لتعرف ماتم واذا كان هناك استفسار حول نقاط معينة يمكنك طرحها تحياتي,,,
  6. تفضل اخي تم إضافة إستعلام وتقرير تحياتي,,, اللجان.rar
  7. تفضل اخي مثالك بعد التعديل تحياتي,,, الاسماء.rar
  8. اخي العزيز مرفق لك تعديل أرجو ان يكون هو طلبك وستجده في الاستعلامات الثلاثة والتي تقوم بتجميع المستلم والمنصرف بحسب الصنف والثالث لإظهار الرصيد رغم تحفظي على تصميم الجداول فكان من الأفضل لك لو جمعت جدولي (المستلم والمصروف) في جدول واحد مع إضافة حقل وليكن اسمه (نوع الحركة) يتم فيه تحديد (وارد-منصرف) بدلاً من التشتت تحياتي,,, قاعدة بياناتي 6-9-2011.rar
  9. اخي العزيز قد يكون الامر مرتبط بالمراجع افتح محرر فيجوال في برنامجك ثم افتح قائمة Tools واختر اول خيار References عندها سيظهر لك صندوق يحتوى على المراجع المعتمدة في برنامجك وإذا ظهرت كلمة Missing أمام احد المراجع قم بالبحث عنه سواء داخل الجهاز أو في الانترنت وقم بنسخه الى مجلد System32 في الويندوز يرجى التأكد مما سبق والافادة بالنتيجة تحياتي,,,
  10. المعذرة المعذرة المعذرة كنت حاسس اني وقعت في خطأ بسبب الإرهاق وبالفعل كنت على خطأ اخي العزيز الكود الذي معك صحيح وليس عليه غبار وماعليك سوى استبدال السطر For I = Val(txtCount) To co + Val(txtCount) - 1 بهذا السطر For I = 1 To co + Val(txtCount) - 1 ولكنك ستواجه مشكلة في اول مرة حيث سيبدأ بالترقيم من 1 مما سيؤدي الى تكرار الرقم لذا يجب اولاً ان تجعل خاصية الحقل ID في الجدول قابل للتكرار ثم قم بتنفيذ الامر واذا اردت ان تعيد الخاصية كما كانت فليس هناك مشكلة مرفق لك المثال الاصلي بعد التعديل المذكور والمعذرة مرة أخرى (هذه من مساوئ السهر) تحياتي,,, Nu.rar
  11. اخي العزيز من اطلاعي للبرنامج لا يوجد كود ترقيم تلقائي وللتأكد غير آخر رقم برقم 1000 مثلا ثم نفذ الأمر ستلاحظ أنه سيبقى كما هو ولكن الترقيم التلقائي ينفذ عند إضافة سجل جديد فقط وحتى وإن أردت تنفيذ الترقيم التلقائي فإن العملية تتطلب تصفير جميع السجلات في البداية ثم تنفيذ الترقيم لأن الكود Me!ID = Nz(DMax("[id]", "[student]"), 0) + 1 يقوم بأخذ أكبر رقم موجود ويضيف له 1 فإذا لم تصفر الأرقام أولاً فسيظل يزيد 1 على أكبر رقم ولن يبدأ من 1 وتصفير الارقام غير ممكنة لأنك جاعلها لا تقبل التكرار لذا فالمطلوب منك أولاً تعديل خصائص الحقل ID لتجعلها تقبل التكرار ثم إضافة كود التصفير قبل تنفيذ الترقيم مرفق لك مثالك معدل على عجل في هذا الوقت المتأخر لتجربه وإذا كان هناك أي مشكلة فالسبب الإرهاق تحياتي,,, Nu.rar
  12. اخي العزيز في اصدارات 2007 و 2010 هذه الميزة مضمنة في البرنامج اما في 2003 فقد وضع حل كما في المرفق ويتطلب مايلي - إستيراد الوحدة النمطية (modMouseHook) الى برنامجك - في حدث (On Load او عند التحميل) في النموذج المراد إيقاف الماوس فيه يكتب الكود التالي Dim blRet As Boolean blRet = MouseWheelOFF(False) - وفي حدث (On Unload او عند إلغاء التحميل) يكتب الكود التالي Dim blRet As Boolean blRet = MouseWheelON وذلك لإعادة تشغيل عجلة الماوس - ضمن المرفقات ستجد أداة إسمها (MouseHook.dll) ويجب عليك إما أن تجعلها في نفس المجلد مع البرنامج أو تنسخها إلى المجلد (System32) في مجلد الويندوز لتعمل مع جميع البرامج في الجهاز تحياتي,,, الماوس.rar
  13. تفضل اخي مثالك بعد التعديل تحياتي,,, db31.rar
  14. اخي العزيز من خلال ردك (أجبت عن نفسك بنفسك) فطالما أن تلك المجاميع تظهر في الإستعلام فما فائدة إدخالها مرة أخرى إلى الجدول فلو فتحت الجدول أو الإستعلام ستظهر لنا صفحة بيانات لافرق بينهما سوى أن بيانات الإستعلام محتسبة أما بيانات الجدول مدخلة إدخال ولو قارنا بين فوائد وعيوب كل منها سنجد أن : في مثالك وبناء على قيمة الحقل (المبلغ) والذي يساوي (الكمية × سعر الوحدة) وسنطلق عليها أساس الإحتساب - البيانات المحتسبة تكون متغيرة ومتجددة ومحدثة بتحديث بيانات أساس الإحتساب وبالتالي تظهر لنا بيانات حقيقية تعكس الواقع ولا تؤثر في حجم قاعدة البيانات - أما البيانات المدخلة تظل جامدة (حتى ولو تغيرت بيانات أساس الإحتساب) مالم يتم تحديثها يدويا أو حتى عن طريق الكود وسيكون هناك إمكانية لظهور بيانات خاطئة وفوق هذا وذاك سيتم زيادة حجم الجدول بحجم تلك البيانات وفي إعتقادي أن جوهر قواعد البيانات هو عملية (إدارة البيانات) أي أن يتم إدخال بيانات خام وبحدها الأدنى (مالم تكن هناك ضرورة لها) وإستخراجها كمعلومات مفهومة ولها هدف المعذرة على الإطالة ولكن كان يجب توضيح هذه الفكرة للعلم فقط ولك أن تختار مايناسبك فإن كنت ترى من الضرورة إثبات هذه البيانات في الجدول فكل ماعليك هو - تغير إسم الحقل (Soum) إما في الجدول أو الإستعلام ليتم الإشارة إليه ولا يحدث خلط عند تنفيذ الكود حيث أن الحقل المحتسب في الإستعلام لايمكن تحديثه بواسطة الكود (المهم لو قمنا بتعديل إسم الحقل في الجدول الى Total) بدلاً من Soum - نكتب كود الإحتساب في حدث (بعد التحديث أو After Update) لحقلي (الكمية وسعر الوحدة) ليتم تنفيذ الإحتساب بعد كل تعديل لبيانات هذين الحقلين والذين هما أساس الإحتساب والكود هو على الشكل التالي Total = Contit * Unit_price ومرفق لك مثالك بعد التعديل المذكور تحياتي,,, PARPAIN_Email.rar
  15. اخي العزيز ليكون في معلومك فإن الدالة في المثال تشمل التمدد الأفقي والرأسي ومرفق لك مثالك للتأكد ولكني فضلت أن يكون العرض ثابتاً حتى لا يتغير تصميم النموذج فالتمدد سيصل الى مايصل اليه طول النص الذي سيتم إدخاله (وهذا غير جيد من وجهة نظري) وأما بخصوص تصميم أستاذنا الكبير أبو هادي فما زلت (افصفصه بإنبهار) حتى أفهمه وأستوعبه جيداً (وأتعجب من عقلية واضعه)ولكن الكود الذي ذكرته أنت فأعتقد أنه خاص بصندوق الرسائل ككل اما مايخص مربع التسمية (LblPrompt) فالكود هو With Me.LblPrompt .Caption = BoxStyle.Prompt .Height = Height - 1200 .Move 50, _ IIf(.Height > 275, 180, (Height - 875 - .Height) / 2), _ Width - IconWidth - 365 If Height = 1785 Then .TopMargin = 85 End With تحياتي,,, 100.rar
  16. اخي العزيز لماذا تُعقد المسائل على نفسك فبصفتك مصمم قاعدة البيانات يمكنك ان تضع الحلول التي تراها ومنها مايلي - تعديل التصميم لتجعل نوع الحقل نص بدل الرقم - إدخال نسبة العمر (6 أشهر تعادل نصف سنة أي 0.5) مثلاً - الحل الأفضل أن تجعل النتيجة محتسبة وذلك بأن يتم إدخال تاريخ الميلاد ويحتسب العمر حتى تاريخ اليوم أو تاريخ الإدخال مثلاً ويمكنك أن تبتكر حلك الخاص فما يهم المستخدم هو النتيجة وليس الطريقة وما يهمك هو أن تكون طريقة غير معقدة ولا تثقل على برنامجك تحياتي,,,
  17. اخي العزيز اجعل اسم الماكرو بهذا الإسم (AutoExec)وعندها سيتم تشغيله عند فتح القاعدة تحياتي,,,
  18. اخي العزيز مرفق لك مثالك بعد التعديل وبطريقة غير طريقة أبو هادي المهم هنا أن يكون عرض مربع التسمية ثابت اما الطول فسيتغير مع النص تحياتي,,, 100.rar
  19. اخي العزيز هل من الضروري اظهار النص في مربع تسمية (Label)أم يمكن أن يظهر في مربع نص (TextBox) ....؟ ونص التذكير هذا هل سيتم أخذه من جدول أم سيدخل كل مرة من قبل المستخدم ...؟ أرجو توضيح هذين الأمرين وإن شاء الله لا يصير خاطرك إلا طيب تحياتي,,,
  20. اخي العزيز بالإعتماد على المثال Resize قم بالخطوات التالية : قم بإستيراد الميدولات (gr & tow) الى قاعدة بياناتك 1- في حدث (عند التحميل او On Load) للنموذج يكتب الكود الذي يقوم بتكبير حجم النموذج للحد الأقصى ثم يقوم بإغلاق بقية النوافذ المفتوحة حتى لا تتأثر من تغيير دقة الشاشة DoCmd.Maximize Shell "taskkill /f /im explorer.exe", vbMinimizedNoFocus ملحوظة : اذا كنت ترغب في تنبيه المستخدم عن التغييرات قبل تنفيذها يمكنك أن تسبق الكود بهذا السطر If MsgBox("سيتم إغلاق خلفية ويندوز فإذا كان لديك برامج لم تحفظها اختر (إلغاء الأمر) وقم بحفظها أولاً", vbOKCancel, "تنبيه") = vbCancel Then DoCmd.Quit 2- في حدث (عند الفتح أو On Open) في النموذج اكتب الكود الذي يقوم بحفظ الإعدادات الحالية وتغييرها الى الإعدادات الخاصة بك Call xg_GetScreenResolution Call ChangeResolution(1024, 768) وهنا يمكنك إستبدال الأرقام 1024 و 768 بالدقة المطلوبة بحسب رغبتك 3- في حدث (عند إلغاء التحميل او On UnLoad) يكتب الكود الذي يسترجع الإعدادات الأصلية ويشغل بقية النوافذ Call ChangeResolution(aa1, aa2) Shell "explorer.exe", vbMinimizedNoFocus ومرفق لك مثال مطبق فيه ماسبق أرجو أن يكون الشرح واضح تحياتي,,, NewResize.rar
  21. بالطبع اخي العزيز لأن العملية في الأساس مبنية على جملة Sql التي تقوم بتصفية السجلات بناء على النص الذي يتم إدخاله وجملة Sql يجب أن تستمد البيانات من جدول تحياتي,,,
  22. اخي العزيز هذه الرسالة تعني ان هناك كود يعتمد على عنصر تحكم غير موجود وفي هذه الرسالة يخبرك أن الكود لم يجد عنصر التحكم الذي إسمه (Newbal) لذا كل ما عليك الا أن تفتح محرر فيجوال الخاص بالنموذج وتقوم بالبحث عن الاماكن التي ذكرت فيها هذه الكلمة وستجدها مثلاً في حدث (BeforeInsert أو قبل الإدراج) كما يلي Private Sub Form_BeforeInsert(Cancel As Integer) Me![Nclient] = Me![dl] Me![Soum] = Me![Newbal] End Sub فإن كان وجود عنصر التحكم هذا ضرورياً فيجب عليك إنشاؤه في النموذج مالم فقم بحذف الكود تحياتي,,,
  23. بالفعل اخي المعذرة لم انتبه لهذا الاستعلام ومرفق لك التعديل تحياتي,,, Service.rar
  24. مشكور اخي ابو احمد على الكلام الطيب الموضوع ليس فيه اي عملقة ولا شيئ ولكن هذا مايثبت ان اي دوال تصمم في اكسس يمكن تنفيذها في اكسل وحتى وورد (والعكس صحيح) فجميعها تعمل في بيئة واحدة هي بيئة(VBA)ولكن الصعوبة التي واجهتني كانت انه يتم اخذ الاستثناءات الخاصة بالأسماء كـ(عبد , الله , الدين , ....الخ) من جدول في قاعدة البيانات ولم أكن أعرف طريقة التنفيذ في اكسل فقد كان أفكر ان أجعلها في ورقة مستقلة بحيث يتم أخذها من هذه الورقة وبصراحة فأنا أجهل كيفية التعامل مع اوراق العمل والخلايا في اكسل ولكن الأستاذ خبور (وهو العملاق الحقيقي) قد تجاوزها بواسطة إستخدامه المصفوفة ومن هنا تم عمل التوليفة في الأخير لدي استفسار هل هناك إمكانية لتنفيذ هذه الطريقة (ان يتم وضع الإستثناءات في ورقة مستقلة) لمنح حرية اكبر للمستخدم...؟ تحياتي,,,
  25. اخي العزيز هذا شكل تقرير وليس استعلام عموماً مرفق لك تعديل بتقرير مشابه تحياتي,,, db31.rar
×
×
  • اضف...

Important Information