بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
-
Posts
4517 -
تاريخ الانضمام
-
Days Won
198
Foksh last won the day on مارس 3
Foksh had the most liked content!
السمعه بالموقع
2536 Excellentعن العضو Foksh

- تاريخ الميلاد 07/02/1982
البيانات الشخصية
-
Gender (Ar)
ذكر
-
Job Title
فني صيانة موبايل وكمبيوتر
-
البلد
الأردن ♥
-
الإهتمامات
برمجة وصيانة الموبايل والكمبيوتر
اخر الزوار
10614 زياره للملف الشخصي
-
تنفيذاً لما ذكرته لك :- قمت بتغيير عنصر الصورة القديم الى عنصر صورة غير منضم فقط . والحدث في بعد التحديث للكومبوبوكس :- Private Sub cmbUser_AfterUpdate() On Error GoTo Err_Handler Me.txtFullName = DLookup("fullname", "tblUsers", "username = '" & Me.cmbUser.Column(1) & "'") Me.imgPhoto.Picture = DLookup("Photo", "tblUsers", "username = '" & Me.cmbUser.Column(1) & "'") Exit Sub Err_Handler: MsgBox "حدث خطأ : الصورة غير موجودة في المجلد", vbCritical + vbMsgBoxRight, "خطأ" Me.imgPhoto.Picture = "" End Sub أما فكرة الأستاذ خليفة فهي جميلة لأنها تقوم ببناء المسار الكامل للصورة أولاً . ثانياً أسهل لإضافة حقول أخرى في المستقبل ، لو حبيت تطور الفكرة . ثالثاً تتعامل مع جميع الإحتمالات . وانا افترضت أن مسار الصور في الحقول ثابت وغير قابل للعبث لكني اقترحت الفكرة من باب التوسع في الخيارات saad1.zip
-
وعليكم السلام ورحمة الله وبركاته.. ابسط طريقة هي استخدام الدالة Dlookup بشرط رقم الموظف الفريد . لم اطلع على الملف ، هي مجرد فكرة.
-
تمهيداً للتحدي الثاني ، وللإنتقال إلى مرحلة أكبر عن المستوى الأول . وإنطلاقاً من باب المشاركة للجميع . سنتجه للأخذ بترشيحكم لموضوع من بين 3 مواضيع ، ليتم طرحه كسؤال التحدي الثاني . 1️⃣ إنشاء مؤقتة الصلوات .. 2️⃣ إنشاء نظام تسجيل دخول احترافي برمجياً ، مع نظام صلاحيات متعدد المستويات .. 3️⃣ إنشاء نظام قارئ للنصوص متعدد الخصائص ..
-
المشاركة التي كان لها نصيب الإعجاب في إجابتها ، كانت للأخ @Debug Ace . في هذه المشاركة هنا
-
أخواني وأساتذتي ومعلمينا ( دون استثناء ) الكل مر بحياته على هاي اللعبة البسيطة والجميلة ، إن كان في طفولته أو في شبابه .. واليوم جسدناها بطريقة فوكشية جديدة من خلال آكسيس ، وتحدي معوقاته بالتعامل مع الصور .. وبدون ما نتكلم في هذه النقطة - واللي رح أتركها لكم للتجربة - رح أشرحلكم اليوم اللعبة ببساطة للي ما بعرفها من قبل . تتكون اللعبة من مجموعة من الأوراق ، تتمثل في :- أوراق الأرقام : تحتوي اللعبة على أوراق الأرقام (9-0) ضمن ألوان مختلفة : الأحمر ، الأصفر ، الأزرق ، الأخضر . بطاقات الأوامر : تختلف هذه البطاقات في اللون والأمر الذي يترتب على استخدامها ، وهي كالآتي :- بطاقة تغيير الاتجاه : تُمكن اللاعب من تغيير سير اللعبة من اليسار إلى اليمين أو العكس . وإذا كانت اللعبة مكونة من لاعبين اثنين فقط ، يتم تخطي دور اللاعب الآخر ويعود الدور للّاعب الذي لعب البطاقة . بطاقة السحب +2 : وتمكن اللاعب من إجبار اللاعب التالي على سحب ورقتين من كومة الأوراق . ويتم تخطي دوره وينتقل الدور للّاعب الذي يليه . بطاقة تخطي الدور : تمكن اللاعب من منع اللاعب التالي من لعب دوره القادم وينتقل الدور للاعب الذي بعده . بطاقة السحب +4 : وتمكن اللاعب من اختيار اللون الذي سيلعبه اللاعب التالي ، وإجباره على سحب 4 أوراق من كومة الأوراق . ويتم تخطي دوره وينتقل الدور للّاعب الذي يليه . بالنسبة إلى توزيع الأوراق في الأونو ، يتم التوزيع بشكل عشوائي ، حيث يوزع 7 أوراق لكل لاعب ويضع باقي الأوراق بشكل مقلوب على يسار منطقة اللعب ، وتسمى ( كومة اللسحب ) . وييتم وضع آخر ورقة بشكل مكشوف في منتصف منطقة اللعب ، وهذا المكان يسمى ( النار ) ، وإذا كانت أوّل ورقة مكشوفة في النار هي بطاقة تغيير اللون أو بطاقة اسحب 4 ، هنا يجب إعادتها لكومة الأوراق وتسحب ورقة أخرى غيرها . طريقة اللعب :- يبدأ اللاعب باللعب في نسختنا ، وذلك برمي أي ورقة في النار ، على أن توافق هذه الورقة آخر ورقة في النار بأحد الشرطين :- - اللون نفسه من أي قيمة . - القيمة نفسها من أي لون . ينتقل الدّور بين اللاعبين باتجاه عقارب الساعة ، وإذا لم يمتلك أحد اللاعبين ورقة أو بطاقة مناسبة للّعب ، يجب عليه أن يسحب من كومة الأوراق . زر الأونو :- وهي كلمة يقولها اللاعب إذا تبقت في يده ورقة أو ورقتان ، وسيلعب إحداهما ويضعها في كومة النار ، هنا يجب أن يقول " أونو " لتحذير اللاعبين الآخرين قبل رمي ورقته ما قبل الأخيرة ، وإذا لم يُحذّر اللّاعب من امتلاكه بطاقة واحدة وانتبه عليه اللاعبون الآخرون سيُعاقب بسحب بطاقتين من كومة الأوراق وهذا ما أطلقنا عليه اسم تحدي الأونو 😁 . في نموذج البداية ، تم إضافة وتفعيل 3 خيارات للتحكم بخصائص اللعبة . بحيث لديك :- 1️⃣ السماح بالسحب التراكمي عند رمي ورقة السحب +2 . ماذا يعني هذا ؟ يعني لو اللاعب رمى ورقة +2 ، والكمبيوتر معه ورقة +2 ، فالكمبيوتر بقدر يرمي الورقة اللي معه بغض النظر عن لونها . وهيك بكون الدور عندك إنك تسحب 4 ورقات . إلا إذا كان معك ورقة +2 ثانية ، فبتقدر ترميها . وبرجع الدور للكمبيوتر يسحب 6 ورقات ..... وهيك بشكل تراكمي . 2️⃣ السماح بتبديل الأوراق عند رمي أي لاعب ورقة 0 أو ورقة 7 مهما كان لونها . فسيتم تبديل الأوراق التي بيدك لتصبح بيد الكمبيوتر والعكس طبعاً 😜 . 3️⃣ السحب من كومة الورق حتى يجد اللاعب ورقة صالحة للّعب . يعني بدل ما تسحب ورقة وحدة ، رح تضل تسحب حتى تلاقي ورقة ترميها للنار . 4️⃣ تحديد قيمة النتيجة التي يفوز اللاعب الذي يصل لها أولا . فعند فوز أي لاعب ، يأخذ مجموع القيم للأوراق التي في اللاعب الثاني . والإحتساب كما يلي لقيمة كل ورقة . طريقة حساب النقاط :- تحسب النقاط في لعبة أونو كما يأتي :- أوراق الأرقام = قيمة الورقة نفسها . بطاقة اسحب 2 = 20 نقطة . بطاقة تخطّي الدّور = 20 نقطة . بطاقة تغيير الاتّجاه = 20 نقطة . بطاقة تغيير اللّون = 50 نقطة . بطاقة اسحب 4 = 50 نقطة . صورة حية من اللعبة :- ملفات اللعبة للإصدارين ، 64 و 32 :- للإصدار 32 :- Uno Game - 32.zip للإصدار 64 :- Uno Game - 64.zip :- يجب أن يكون ملف اللعبة بجانب مجلد الصور حتى لا تواجه مشاكل في اللعب .
-
أخي الكريم ، وعليكم السلام ورحمة الله وبركاته .. فيما يخص طلبك ، اعتقد أنه مخالف لقوانين المنتدى ولأخلاقياته . حيث أن أصحاب الملفات المحمية بكلمة مرور قاموا بالتعب على مشروعهم وملفهم بحمايته من أيدي العابثين . أو ممن لهم هوايات بكسر الحماية . لذا فإنك لن تجد رداً لطلبك هنا للأسف . شكراً لتفهمك سيتم اغلاق الموضوع لمخالفته الإجابات لو تمت .
-
انتهت المدة المحددة للتحدي الأول ، ونشكر جميع من قام على هذا الدعم والمشاركة .. وسيتم إختيار الإجابة التي نالت الإعجاب بالتقييم قريباً. وسيتم الإعلان أيضاً عن التحدي الثاني قريباً جداً بإذن الله تعالى ، وذلك بالتصويت لنوع وموضوع التحدي الذي تفضلونه من بين مجموعة مواضيع. شكراً لكم 💐
-
⏳ باقي من الوقت : 3 أيام حتى نهاية التحدى الأول
-
⏳ باقي من الوقت : 5 أيام حتى نهاية التحدى الأول
-
وعليكم السلام ورحمة الله وبركاته .. أهلاً أخي أمين ، وبارك الله بك على هذه المبادرة الجميلة .. بدايةً ، واعلم أنك قد طرحت فكرة من تطبيقك وخطوة بخطوة ، وهو شيء جميل شعورك بأنك استطعت نقل الفكرة وتطبيقها ونجاحها معك . ولذا ومستقبلاً ومن باب التطوير لك ، إليك نصيحة قد تكون الخطوة الأولى لبناء مشروع سليم . تتلخص بما يلي :- عدم إستعمال المسميات العربية للحقول أو العناصر أو المكونات بشكل عام ( حقول ، جداول ، استعلامات ، مربعات نص أو أزرار .... إلخ ) . عدم استعمال المسافات بين أسماء المكونات التي تتكون من مقطعين أو أكثر ، وهنا لاحظت إنك تلافيت هذه النقطة باستخدامك الشرطة السفلية أو العادية ( ـ ، - ) في معظم الأحيان . حاول دائماً مستقبلاً - ( إن شاء الله ) - أن يكون لأسماء العناصر دلالة عليها . بدلاً من استعمال الأسماء الإفتراضية مثل text0 , text1 أو أمر12 ، أمر45 ... إلخ . كي تسهل عليك الإستدلال عليها دون الحاجة للتنقل بين هنا وهناك لمعرفة وتذكر و كتابة أسمائها عند الإستدعاء داخل الأكواد . لاحظت أيضاً أنك استخدمت سطر VBA لأيقاف وتشغيل التنبيهات عند حذف سجل من الجدول ، وهذه نقطة إيجابية وجميلة منك انك استخدمتها ، بدلاً من الرسائل المزعجة التي يظهرها آكسيس عند حذف أو إضافة أو تعديل سجل أيضاً لاحظت أنك قمت بتبسيط الأمور على من يريد الإستفادة من فكرتك ، فالأكواد بسيطة جداً ومفهومة و واضحة ، ولا تحتاج ترجمة حتى يتقنها من يريد الإتقان والفهم . شكراً لك على مشاركتك الجميلة ، ونأمل منك أن لا تقطعنا من أفكارك التي تساعد بها من يحتاجها
-
⏳ باقي من الوقت : 7 أيام حتى نهاية التحدى الأول
-
وهذه فكرة تجمع بين عرض التكرارات التي يتنافس فيها الطلاب حسب رغبتك .. Data_Base_Rep.zip
-
بسيطة أخي الكريم .. يعني انت تريد إظهار الطلاب الذين في المركز الرابع مثلاً جميعهم بالتمييز بينهم ( متكرر ) !!!!!!! انا لم أقترب من الدالة التي قمت بإنشائها ، حرصاً على أنه قد يكون مطلبك .. لكن بعد التوضيح ، إليك التعديل الذي تم على الدالتين أولاً :- Public Function fncTrteeb() Dim rst As Object Dim RankNumber As Long ' تصفير الحقل أولاً CurrentDb.Execute "UPDATE Q_top10 SET trteeb = Null" Set rst = CurrentDb.OpenRecordset("SELECT * FROM Q_top10 ORDER BY average DESC, StudentID ASC", 2) If rst.RecordCount = 0 Then Exit Function rst.MoveFirst RankNumber = 0 Do While Not rst.EOF And RankNumber < 10 RankNumber = RankNumber + 1 rst.Edit rst!trteeb = GetArabicRank(RankNumber) rst.Update rst.MoveNext Loop rst.Close Set rst = Nothing End Function Public Function GetArabicRank(ByVal n As Long) As String Select Case n Case 1: GetArabicRank = "الأول" Case 2: GetArabicRank = "الثاني" Case 3: GetArabicRank = "الثالث" Case 4: GetArabicRank = "الرابع" Case 5: GetArabicRank = "الخامس" Case 6: GetArabicRank = "السادس" Case 7: GetArabicRank = "السابع" Case 8: GetArabicRank = "الثامن" Case 9: GetArabicRank = "التاسع" Case 10: GetArabicRank = "العاشر" Case Else GetArabicRank = "المركز " & n End Select End Function والإستعلام سيصبح بهذاالشكل :- SELECT TOP 10 S.StudentID, S.StudentName, S.ClassName, S.SETNO1, F.SemesterID, F.TotalSum, F.average, F.Grade, GetArabicRank(( SELECT COUNT(*) FROM TBL_Final1 AS F2 INNER JOIN TBL_Students AS S2 ON F2.StudentID = S2.StudentID WHERE F2.SemesterID = F.SemesterID AND S2.ClassName = S.ClassName AND (F2.average > F.average OR (F2.average = F.average AND S2.StudentID < S.StudentID)) ) + 1) AS RankText FROM TBL_Students AS S INNER JOIN TBL_Final1 AS F ON S.StudentID = F.StudentID WHERE F.SemesterID = [أدخل رقم الفصل] AND S.ClassName = [أدخل اسم الصف] ORDER BY F.average DESC , S.StudentID; في الاستعلام القديم كان المنطق هو ( احسب كم طالب معدله أكبر مني ) ؟؟ فإذا كان هناك طالبان معدلهما متساوٍ ( مثلاً 91% ) ، فإن كلاهما سيجد نفس العدد كترتيب من الطلاب المتفوقين عليهما ، وبالتالي يأخذان نفس الرقم ( مثلاً المركز 2 ) ، ثم يقفز الترتيب للمركز 4 مباشرة . أما في الاستعلام المعدل ، إذا تساوى طالبان في المعدل ، انظر لرقم الطالب ؛ صاحب الرقم الأصغر يعتبر هو الأسبق . وبالنسبة لي هذا غير منطقي ، فلا بد من شرط ثاني لتحديد المنافس على نفس المركز !!!! 💥 وفي هذا الموضوع هنا ، قد تطرقنا مع مشاركة أخي @ابو جودي لنفس الفكرة تقريباً . وملفك بعد التعديل :- Data_Base.zip
-
اهاااا ، بعد متابعة النتيجة ، وجدت أنه يأتيك بجميع الطلاب للفصل الأول والصف الثامن وعددهم 16 على سبيل المثال .. وأنت تريد فقط 10 جرب هذا الإستعلام التالي :- SELECT TOP 10 S.StudentID, S.StudentName, S.ClassName, S.SETNO1, F.SemesterID, F.TotalSum, F.average, F.Grade, ( SELECT COUNT(*) FROM TBL_Final1 AS F2 INNER JOIN TBL_Students AS S2 ON F2.StudentID = S2.StudentID WHERE F2.SemesterID = F.SemesterID AND S2.ClassName = S.ClassName AND F2.average > F.average ) + 1 AS RankOrder FROM TBL_Students AS S INNER JOIN TBL_Final1 AS F ON S.StudentID = F.StudentID WHERE F.SemesterID = [أدخل رقم الفصل] AND S.ClassName = [أدخل اسم الصف] ORDER BY F.average DESC, S.StudentID ASC;