بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
-
Posts
583 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
25
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو متقاعد
-
رسالة معرفة انا كان هنالك حقل فارغ في سجل
متقاعد replied to النهر العطشان's topic in قسم الأكسيس Access
نعم اخي وان كنت افضل ان يكون الحل مقدم من احد اساتذة الموقع او الخبراء الافاضل نعود للموضوع المطلوب نقل سجلات الطالب من جدول الى اخر عن طريق رقم الطالب والتأكد بعدم وجود حقول خاليه خلال عمليه النقل الفكرة على النحو التالي مع التأكيد بان الكود يمكن اختصاره في زر الامر نقل وضعنا الكود التالي Dim n As Integer n = IIf(IsNull([Text0]), 0, [Text0]) If DCount("*", "[Students]", "[ID]=" & n) = 0 Then Exit Sub Dim rst As Recordset Dim rs As Recordset Dim fld As Field Set rst = Me.RecordsetClone Set rs = CurrentDb.OpenRecordset("team") rst.FindFirst "[ID]=" & [Text0] For Each fld In rst.Fields If IsNull(fld.Value) Then MsgBox fld.Name DoCmd.OpenForm "frm_Stud", , , "[id]=" & [Text0] Exit Sub Else rs.AddNew rs.Fields(0) = rst.Fields(0) rs.Fields(1) = rst.Fields(1) rs.Fields(2) = rst.Fields(2) rs.Fields(3) = rst.Fields(3) rs.Fields(4) = rst.Fields(4) End If Next fld rs.Update rs.Close: rst.Close Set rs = Nothing: Set rst = Nothing السطر 1 و 2 و3 الغرض منها ايقاف تنفيذ الامر في حالة كون رقم الطالب غير صحيح او ان حقل البحث فارغ ويمكن استبدالها بامر معالجة الاخطاء الاسطر 4 و 5 و 6 حجز متغيرات اثنين مصدر سجلات وواحد حقل الاسطر 7 و 8 اسناد متغيرين الى مصدرهما السطر التاسع البحث عن رقم الطالب 10 و 11 عمل حلقة لفحص الحقول في السجل المطلوب نقلة 12 و 13 و 14 اضهار رسالة باسم الحقل الفارغ وفتح النموذج على بيانات الطالب لاستكمال الحقول الفارغة وانهاء الاجراء لحين استكمال البيانات يمكن الاستغناء عن سطر 12 من 15 الى 21 في حالة عدم وجود حقول فارغة انقل السجل كل حقل بمكانه المحدد ايضا ممكن اختصاره من 7 اسطر الى 3 اسطر طالما اسماء الحقول متطابقة باقي الاسطر لانهاء الشرط والحلقة الدوارة واغلاق مصدر السجلات ملاحظة جعلنا مصدر النموذج الخاص بتنفيذ الامر جدول الطالب بدون اضافة اي حقول وممكن الاستغناء عن الخطوة بجعل الربط والغاء الربط عن كريق الكود ولكن الامر ليس مهما الملف مرفق تحياتي النهر.accdb -
رسالة معرفة انا كان هنالك حقل فارغ في سجل
متقاعد replied to النهر العطشان's topic in قسم الأكسيس Access
نعم ممكن عمل ذلك والفكرة تتلخص في عمل كود يبحث في البداية برقم الطالب الذي نرغب نقل بياناته هنا نستخدم مصدر السجلات Recordset ثم نعمل حلقة باستخدام For Each تمر على كافة حقول السجل المطلوب نقله ⬇️ For Each fld In rst.Fields If IsNull(fld.Value) Then اي في حالة وجود اي حقل فارغ نفذ الشرط وجواب الشرط يكون فتح نموذج الطالب وعلى نفس السجل الحالي لنقوم باستكمال الحقل او الحقول الفارغة DoCmd.OpenForm "frm_Stud", , , "[id]=" & [Text0] اي اننا نعمل نموذج يفتح عند تحقق وجود حقول فارغة واذا كان لديك مسبقا نموذج خاص بالطلاب فلادعي للنموذج الجديد اما في حالة عدم وجود حقول فارغة فيتم نقل السجل للجدول الاخر سواء عن طريق استعلام او عن طريق مصدر السجلات ونتوقف قليلا وندع الامر لاحد الاساتذة ربما لديه فكرة افضل تحياتي -
غير اسماء الحقول وفقا لما لديك الملف مرفق تنبيه بالتكرار.accdb
-
نعم يا ابا جودي الفكرة ليست جديدة مع ذلك قالت العرب الافكار ملقاه كالحجارة على قارعة الطريق يعرفها العربي والعجمي والبدوي والحضري ولكن الشأن في جودة السبك. كثير من الاختراعات التي غيرت وجه العالم لم تكن من بنات افكار من اخترعوها وانما كانت لديهم الشجاعة والعزم والهمة لالتقاط تلك الافكار ووضعها محل التنفيذ . احسنتم جميعا ونفتخر بامثالكم تحياتي
-
انشاء نموذج بحث برقم الهوية او رقم الجوال وعرض النتائج
متقاعد replied to Hamtoooo's topic in قسم الأكسيس Access
احسنت وشرحك جميل مداخلتي من باب طرح حلول وافكار اخرى بالنسبة لاجبار المستخدم على ادخال ارقام في حقل نصي انت استخدمت قناع الادخال وهي فكرة جيدة وتؤدي المطلوب تماما مع ذالك بعض قدامى المبرمجين لا يستخدمون قناع الادخال ويفضلون ان يكون التقييد عن طريق الكود لذا ممكن كتابة الامر التالي ⬇️ بدلا من قناع الادخال If Not IsNumeric([tx]) Or Len([tx]) <> 10 Then MsgBox "هذا الحقل رقمي فقط وبعدد 10 ارقام" Me.tx = "" End If ايضا بالنسبة لاغلاق النموذج لا داعي لكتابة اسمه والافضل كتابة الامر على النحو التالي ⬇️ DoCmd.close acForm, Me.Name اخيرا ماذا لو كان رقم الهوية غير موجود ؟ سوف يفتح النموذج فارغ والاجراء الامثل ان يتم فحص الرقم اذا كان مسجل يفتح النموذج او يظهر رسالة بان السجل غير موجود ويوقف الاجراء وتوجد امثلة بالموقع تشرح ذلك وهنا نتوقف ونشير كما اعتدنا ان الامر يتحدث عن افكار اخرى فقط تحياتي -
جميل جدا اخي ابو اشرف وممكن بطريقة اخرى ⬇️ Dim rs As Recordset Set rs = Me.RecordsetClone rs.FindFirst "[nn] = " & Me.nn If Not rs.NoMatch Then Cancel = True MsgBox "هذة القيمة مكررة" Else End If rs.Close تحياتي
-
سبق ان تم ايضاح ذلك ⬇️ بل يوجد لكن الفكرة باختصار تتطلب وجود حقل في جدول يتم تحديثة بالقيمة الافتراضية كلما قمنا بتغييرها ويبقى الحقلين aa و bb غير منضمة bb يحدث القيمة و aa يحصل على القيمة الافتراضية باستخدام DLookup او احدى شقيقاتها ولكن ننتظر رأي الاساتذة ربما لديهم افكار افضل
-
احسنت استاذنا العزيز الحقيقة كلما شاهدت مشاركة لك تذكرت اخ وصديق عزيز اقتعني بالعودة ثم اختفى 😃 اسأل الله ان يعود سالما غانما تحياتي
-
ياهلا بالاستاذ موسى الحقيقة انا لست مهندس كنت مبرمج ثم تدرجت في هذا المجال الى ان انهيت مساري الوظيفي بطلب التقاعد نعود للموضوع دائما عندما اضع مشاركة لا اشير الى انها حل بديل وانما كطريقه اخرى للحل وعندما يكون هناك اكثر من حل وجميعها تؤدي للمطلوب فانني افضل حينها الاخذ بمبدأ اوكام اما بشأن ما نريده لاحقا فهناك دائما حلول ولكن لكل حدث حديث تحياتي وتقديري 🌹
-
ايضا اذا اردنا التعامل مع حقل كحقلي نصي ويقبل جميع التنسيقات وبدون زيادة عدد اسطر الكود Dim x As String x = Nz(BB, "") DoCmd.OpenForm "form1", acDesign Forms!form1!AA.DefaultValue = "'" & x & "'" DoCmd.close acForm, "form1", acSaveYes DoCmd.OpenForm "form1" الملف مرفق قيمة افتراضية(2).accdb
-
احسنت استاذنا الفاضل @Moosak والحقيقة لم احرص في مشاركتي على احترازات نوع الحقول لكون الطريقة في الاساس ليست عمليه ولن تعمل عند تحويل القاعدة وانما وضعت المشاركة ردا على سؤال الاستاذ مراد واشرت بوضوح الى انها ليست الاجراء الصحيح تحياتي
-
القيم الثابتة هي مجموعة من الحقول تحتوي على بيانات نحتاج الى استخدامها في انحاء متفرقة من البرنامج مثال لدينا برنامج للمدرسة ونرغب في توزيعة او بيعة لعدة مدارس هل نقوم بكتابة اسم المدرسة وعنوانها وارقام الاتصال واسم المدير والمنطقة التعليمية وووو الخ في كل التقارير والنماذج الخ او اذا كان برنامج للفواتير هل نكتب كل مرة اسم المؤسسة وعنوانها والرقم الضريبي ونسبة الضريبة والحد الاعلى للحسم ... الخ الاجابة لا وانما يكون لدينا جدول لهذه الحقول ونموذج لادخال بيانات لهذا الجدول ويقوم المستفيد من البرنامج بادخال هذه البيانات عند اول استخدام للبرنامج فقط ساحول تبسيط الامر انت مثلا عملت برنامج لمدرسة اسمها مدرسة أكودة الاعدادية وترغب في وضع اسم المدرسة على التقارير بدون استخدام هذه القيم انت ستقوم بفتح التقرير في وضع التصميم ثم تستخدم حقل نص او عنوان وتكتب اسم المدرسة ولو اردت بيعة على مدرسة اخرى ستقوم بهذا التعديل اليدوي وهكذا كل مرة اما عند استخدام القيم كل المطلوب ان نضع حقل نصي لاسم المدرسة يحصل على قيمته من جدول القيم وبالتالي يقوم مدير المدرسة بكتابت اسمها مرة واحدة في الجدول وسيظهر الاسم في التقرير هذا هو المقصود بالقيم الثابتة تحياتي
-
ممكن عمل ذلك ولكن الاجراء الصحيح ان يكون لدينا جدول للقيم الثابتة للبرنامج على كل حال في زر الامر نضع الكود Dim x As String x = BB DoCmd.OpenForm "form1", acDesign Forms!form1!AA.DefaultValue = x DoCmd.close acForm, "form1", acSaveYes DoCmd.OpenForm "form1" معنى الامر حسب ترتيب الاسطر احجز متغيير نصي اسمه اكس قيمة المتغيير اكسس تساوي المكتوب في حقل bb افتح النموذج في عرض التصميم اجعل القيمة الافتراضية للحقل aa تساوي المتغيير x اغلق النموذج مع حفظ التغيير اعد فتح النموذج ----------------------------- ملاحظة 1 هذا الكود لن يعمل اذا كانت القاعدة بصيغة Accde او mde ملاحظة 2 عند الرغبة كتابة نص للقيمة الافتراضية نكتب في حقل bb النص هكذا 'منتهي' اما الارقام فتكتب بشكل عادي تحياتي والملف مرفق قيمة افتراضية.accdb
-
دمج اكثر من عمود فى جدول فى عمود واحد فى جدول جديد اسفل بعض
متقاعد replied to Abo-yousef's topic in قسم الأكسيس Access
مع اني اشرت في ردي السابق مع ذلك تحقق الشرط الاول ونتجاوز عن الثاني الان الفكرة الاولى ان يكون اضافة الجهد من خلال قائمة منسدلة بالاشهر ولا علاقة لنا بالجهد 400 او 500 او مايكون ثم نعمل استعلام يكون مصدر للنموذج وفي هذا النموذج نفلتر بالشهر او بالشهر والجهد او بالجهد فقط ومرفق ملف بهذه الطريقة الطريقة الثانية بدون استخدام اكواد وبدون الحاجة الى جدول sd اي ان البيانات تبقى في جدول the main وبدل من جدول sd وكود الاضافة نعمل استعلامين الاول استعلام توحيد والثاني استعلام عادي يكود مصدر للنموذج وايضا يمكن الفلترة بالشهر او بالشهر والجهد او بالجهد فقط ومرفق ملف بهذة الطريقة تحياتي Database20.accdb Database211.accdb -
يامرحبا باخي واستاذي د.حلبي كما اشرت في ردي السابق ان عدم عمل الكود بسبب الخاصية مشروط وليس منبثق والكود يقوم بتعديل الخاصية مشروط الى لا عند تنفيذ الكود فقط ليتم تصغير النافذة وعند استعادة النافذة تجد انها لم تتغير منبثق نعم مشروط نعم انظر الفيديو المرفق مع العلم باني اعمل على نسخة 21 تحياتي
-
بل يعمل يا د. محمد ولكن قبل ذلك نوضح الاتي خاصية منبثق نعم مشروط لا " يعمل الكود بدون مشكله " ------ منبثق نعم مشروط نعم " لن يعمل الكود " لكون الخاصية مشروط تعني تعطيل اي نافذة اخرى الى ان تغلق النموذج المشروط اخيرا اذا كنا نرغب في منبثق نعم ومشروط نعم ويعمل الكود هنا يتطلب الامر ان نعطل خاصية مشروط عند تنفيذ الامر فقط لذا ممكن وضع الامر التالي في بداية الكود لزر الامر Dim k As Boolean: Forms("form1").Modal = False ليصبح الكود ⬇️ Dim k As Boolean: Forms("form1").Modal = False keybd_event 91, 0, 0, 0 keybd_event 77, 0, 0, 0 DoEvents keybd_event 91, 0, KEYEVENTF_KEYUP, 0 keybd_event 77, 0, KEYEVENTF_KEYUP, 0 DoEvents تحياتي الملف مرفق مع الشكر للاستاذة لميا WIn+M_Lamyaa(1).accdb
-
الأسس العلمية لقواعد البيانات ( للخبير : InternetMaster )
متقاعد replied to أبو امين's topic in قسم الأكسيس Access
ولا انا -
الأسس العلمية لقواعد البيانات ( للخبير : InternetMaster )
متقاعد replied to أبو امين's topic in قسم الأكسيس Access
احسنت يا ابا جودي والحقيقة اني كتبت رد اشرت فيه الى مثل ذلك وامور اخرى ولكن اثرت عدم نشره حتى لا يفهم الامر بشكل اخر ويكفي ماحصل العام الماضي تحياتي لك ولكل من شارك ولنا لقاء في موضوع اخر قالت العرب يكفي من الزاد ما بلغك المحل -
كيفية عمل استعلام الحاق عن طريق كود في زر امر
متقاعد replied to hussein arby's topic in قسم الأكسيس Access
تمام عليك يعمل بشكل صحيح السؤال هل نستطيع ان نلحق سجلات ونحذف سجلات ونحدث سجلات بدون بدون انشاء استعلام وبدون استخدام جملة sql الحقيقة نعم عن طريق التعامل مع مصدر السجلات وتوجد العديد من الامثلة بالموقع ولكن اذا كان هناك اكثر من طريقة للحل وهذه الطرق جميعها تؤدي المطلوب فان الحل الاسهل هو الحل الافضل "مبدأ اوكام" تحياتي -
كيفية عمل استعلام الحاق عن طريق كود في زر امر
متقاعد replied to hussein arby's topic in قسم الأكسيس Access
مع ان الموضوع قديم المشكلة التي كانت تواجه الاستاذ العربي انه سخ الكود مباشرة من الاستعلام الى زر الامر فاصبح الكود ⬇️ والحقيقة انه بهذا الشكل لن يعمل DoCmd.RunSQL "INSERT INTO tabl2 ( id, INAME, sal_price, Qty )" SELECT tabl1.id, tabl1.INAME, tabl1.sal_price, tabl1.Qty FROM tabl1 WHERE (((tabl1.id)=1)); الان نعدل الكود من خلال تقسيمة بشكل صحيح وسوف يعمل باذن الله ⬇️ DoCmd.RunSQL "INSERT INTO tabl2 ( id, INAME, sal_price, Qty )" & _ "SELECT tabl1.id, tabl1.INAME, tabl1.sal_price, tabl1.Qty FROM tabl1 " & _ "WHERE (((tabl1.id)=1));" اذن الامر صحيح ولكن المشكلة كان في تقسيم الكود الى اسطر الملف مرفق برنامج مطعم - Copy.accdb -
نعم اتفق هذة الطريقة هي الافضل وكنا نستخدمها حتى في البرامج الكبيرة لانه من غير المجدي ان يكون لدينا اكثر من جدول للطلاب من وجهة نظر خاصة ليس من المجدي ان تتكر الحقول في اكثر من جدول الا ما يتعلق بحقول العلاقات وهذا التكرار يحكمة نوع العلاقة تحياتي
-
الأسس العلمية لقواعد البيانات ( للخبير : InternetMaster )
متقاعد replied to أبو امين's topic in قسم الأكسيس Access
ليس الامر كذلك وانما المشكلة في الاحكام القطعية من لم يقرا الكتاب بتمعن فلينسى اكسس وعلى كل حال قلت في ردي السابق اخيرا انا لست عبقري ولا عالم ولم ادعي ذلك. انا عضو في الموقع اشارك بما لدي واخطي واصيب ومن تجارب مريرة سابقة اشير في كل مداخلة قد تحتمل التأويل الى ان هذا رأي شخصي تحياتي -
الأسس العلمية لقواعد البيانات ( للخبير : InternetMaster )
متقاعد replied to أبو امين's topic in قسم الأكسيس Access
مبالغة كبيرة وحكم قطعي بدون مستند على الرغم من الموضوع طويل جدا وواضح انه منقول مع ذلك حاولت ان اكمل ولكن كاتب الموضوع يقفز من فكرة لاخرى فجعله اقرب مايكون لاحلام العصر رأي شخصي غير ملزم ولكن البداية غير مشجعة قالت العرب كنت مثل الكتاب أخفاه طي ... فاستدلوا عليه بالعنوان تحياتي وتقديري لاخي العزيز derbali -
برنامج القروض البنكية والسداد للموظفين هدية مجانية
متقاعد replied to عبد اللطيف سلوم's topic in قسم الأكسيس Access
تمام يا ابو اشرف تمنياتي لك بالتوفيق -
برنامج القروض البنكية والسداد للموظفين هدية مجانية
متقاعد replied to عبد اللطيف سلوم's topic in قسم الأكسيس Access
ياعبد اللطيف جرب تحديد عدد الاشهر تجد ان الكود يزيد شهر مثلا عدد الدفعات 12 تجد انها 13 لذا عدل السطر ⬇️ For i = 0 To CountAmunt الى ⬇️ For i = 0 To CountAmunt - 1 انظر للتعديل في مشاركتي السابقة دائما اذا بدانا بصفر لابد ان ننقص واحد من 1 الى 10 = 10 من 0 الى 10 = 11 تحياتي