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

ابو جودي

أوفيسنا
  • Posts

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

  • Days Won

    214

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

  1. يا افندم اهلا بيكى فى اى وقت محدش زعلان ولا متعصب ولا تعبان موضوع ان طلبات حضرتك بتكون مبهمه دى فى ايد حضرتك وده اللى انه طلبته من حضرتك شرح المطلوب تفصيلا لا اكثر ولا اقل قرار عدم دخول حضرتك المنتدى شئ لا نقبله ولا يسعدنا طبعا اختلاف وجهات النظر لا يعنى القطيعة فالمنتدى تعليمى ويقدم كل الاساتذة والاخوة ما يملكون قدر الامكان لهذا المنتدى ابتغاء وجه الله عزوجل
  2. لن اقول الا ان فهم السؤال ثلثى الاجابة وارجو ولوجه الله تعالى رحمة ورأفة بمن يحاول تقديم المساعدة - ان يتقدم صاحب المسألة بالشرح الوافى والكافى ليتثنى للجميع الفهم الجيد الذى سوف يترتب عليه كل شئ - وضع المرفق المراد العمل عليه وتعديله - وضع كل التصورات التى يريد صاحب المسألة تحقيقها ليجد مبتغاه بسهولة حتى وان كان يمتلك فكرة بمرفق ويريد تحقيها يضع المرفق وينوه عنها نحن وحين نضع الاجابات لن نفتح المندل او نضرب الودع او نحضر الارواح لتدلنا على افكاركم وتطلعاتكم دعونا لا نتفاجئ بعد وضع الحل وبذل الجهد والوقت لتحقيق ما تم طلبة بتطلعات فى خيال صاحب السؤال فنكون مجبرين على ان نعيد التحليل والتفكير والنظر مرة بعد مره تلو الاخرى واعادة هيكلة الكود او حذف جزء او اجزاء استغرقت الوقت الوجهد فنمسى كالتى نقضت غزلها . الرحمة يرحمكم الله
  3. طيب من الصورة اللى حضرتك شاركتيها انتى معاكى الطريقة بتاعتك اللى بتنفذ طلبك اصلا فبل ما تطلبيه واكيد عارفة انت عاملاها ازاى وتقدرى تنفذيها وزر الامر الغية والمرفق كله لو عاوزه احذقيه ولما تحبى تضيفى اكتر من نتيجة اعمليها فى ميت خطوة فى ناس بتحب تضيع عمرها ع الفاضى لان وقتها فاضى وانا مش منهم اعتقد انا قدمت كل ما املك فعلا وبقدر الامكان والمستطاع بفضل الله تعالى لم اكن من المقصرين فى نقل العلم او تقديم النصيحة والمساعدة
  4. هو انتى جربتى تختارى اكتر من نتيحة اصلا علشان يسجل اكتر من نتيجة انتى بتهزرى واللا ده بجد
  5. طبعا لازم يعمل كده واكتر من كده المفروض يشد قى شعرة ويصرخ والله مع الرسالة كمان لان سيادتك مش مركزة اصلا 😡 حدث التركيز يا دكتور = TextBox_GotFocus([Form],[TestnameN]) لكن الحدث للنقر المزدوج هو اللى يكون بالشكل ده لما نكون عاوزين الليست بوكس متعدد القيم يا دكتور =OpenListBoxForm([Form],[TestnameN],True) ولكن الحدث للنقر المزدوج هو اللى يكون بالشكل الافتراضى ده لما نكون عاوزين الليست بوكس قيم مفردة فقط وليست متعددة يا دكتور =OpenListBoxForm([Form],[TestnameN]) يا ريت نركز شوبة انا عامل لك افكار اقسم طلعت عينى مش هتبقى انت وهى ومراتى والعيال
  6. اه حاجة ع الهامش كده يا دكتور @safaa salem5 بطلى تاكلى الحروف زى حلاتى انتى كتبتى Macroscopic Examintion : كلتى حرف a Macroscopic Examination : وطبعا الافضل تكون Macroscopic Examinations :
  7. ابدأ فى العمل وعندما تتعثر اسأل مبدأ المنتدى سؤال وجواب يا صديقى العزيز هذا القسم من المنتدى تعليمى أما ولكن فى حالة طلب ليس هذا المكان المناسب وإنما عليك أن >>---> تتوجه الى هنا على الفور
  8. اتفضلى يا ست الدكتورة على الله بس الشغل يعجب معاليكى كده 3 جنيه مش حسيبهم يرجى التركيز جيدا لقد قمت تقريبا بتكويد العمل كله من خلال وحدة نمطية ولا يوجد اى اكواد مستقبلا تخص هذه الجزئية فى النماذج يتم استدعاء الدوال لحدث التركيز من خلال Expression Builder وليس من خلال Code Builder وبالتالى حدث التركيز يتم استدعاءه بالشكل التالى = TextBox_GotFocus([Form],[TestnameN]) مما تتيح هذه الطريقة اختيار كل مربعات النص دفعة واحدة التى نريد تفيذ هذا الاجراء عليها ووضع كود الاستدعاء السابق فى حدث التركيز مرة واحدة بدلا من عمل ذلك لكل مربع والمعلمات التى نمررها لكود الاستدعاء هذا تكون كالتالى اسم النموذج الحالى وبدلا من كتابة اسم النموذج كل مرة فقط [Form] سوف تتكفل بذلك. اما الجزء الثانى اسم مربع النص الذى نريد تحديث قيمته الكود الثانى فى حدث النقر المزدوج بنفس الآلية والاسلوب السابق ولكن يزيد عليه اضافة القيمة البولينية (Boolean value) >>--> True بالشكل التالى : =OpenListBoxForm([Form],[TestnameN],True) عندما يكون الاستدعاء بالشكل السابق سوف يتم استدعاء النموذج Resultaddfixed_frm بقائمة قيم متعددة .. لا سحر ولا شعودة دا اكسس يا حضرات طيب وعندما نريد للقيم ان تكون مفردة وليست متعددة يتم الاستدعاء بالشكل الافتراضى بدون اضافة القيمة البولينية (Boolean value) =OpenListBoxForm([Form],[TestnameN]) وفى انتظار رأى استاذى الجليل ومعلمى القدير الاستاذ @Moosak صاحب المكتبة العامرة هل تستاهل الافكار هنا فى المرفقات الثالث والرابع عبى يابا واللا ايه وطبعا فى إنتظار رأى استاذى الجليل ومعلمى القدير الاستاذ @kkhalifa1960 والذى اسأل الله تعالى له الشفاء و دوام الصحة والعافية والبركة فى العمر والعمل بما أنه صاجب السبق فى الرد على الموضوع احد اعمدة المنتدى الذين اتعلم منهم الطريقة الرابعة.accdb
  9. لو الطريقة الثالثة مع بيانات كثيرة سريعة وفعالة بس الاول فول لى مربع النص اللى انا مسحته بتستخدميه فى ايه وانا اوجد لك الحل وبعدين ولو حتستخدمى الطريقة الاول ودى اخر كلام هاروح احمل مرفقها واشوف هاعملها لك ازاى منتظر رايك وبسرعة
  10. طيب قبل ما افكر فى تحقيق المطلب بتاع اختيار قيمة او اكثر عاوزه التعديل على انهو طريقة من الثلاثة ؟
  11. طب وعلشان يبقى لى جنية مش ربع جنيه بس 😡 الطريقة الثالثة والاخير كما ينبغى انا عن نفسى لو دا شغلى حيبقى كده الفيم الافتراضية اللى عمالين نعملها DLookUp كل شوية لكل حقل اللى بصراحة انا مش عارف معناها ايه ولكن ايه العذاب ده هى حبة سطور فى موديول وخلصت الحكاية ' Procedure to load default values from lookup table into text boxes for any form Public Sub LoadDefaultValues(frm As Form) Dim ctl As Control Dim defaultValue As String For Each ctl In frm.Controls ' Check if the control is a text box and has the specific tag If ctl.ControlType = acTextBox And ctl.Tag = "GetTestFixedData" Then ' Set the default value if it exists defaultValue = Nz(DLookup("fixeddefault", "fixed_tbl", "[Reportname] = '" & ctl.Name & "'"), "") If defaultValue <> "" Then ctl.defaultValue = """" & defaultValue & """" Else ctl.defaultValue = "" End If End If Next ctl ' Repaint and process events for the entire form Call RepaintAndProcessEvents(frm) End Sub اعملى بقه 100 تموذج وفى كل نموذج حطى الـ 80 مربع نص باسمائهم صح وبس فى حدث التحميل Call LoadDefaultValues(Me) وهو شاطر وابن حلال هيفهمك لوحده وبسرعة ويحقق لك احلامك بس بشرط هنجيلة كمان شوية --- طيب طالما ان النماذج ممكن تكون كثيرة وكذلك مربعات النص لنتائح التحاليل انا وفرت كل شوية كتابة كود فى حدث التركيز لكل مربع نص لانه عذاب ووجع قلب اه والله زيمبئولك كده بجد الا اذا وقتك فاضى بئه وعاوزة تضيعيه ومعاه عمرك فى كتر الكتابة كل الحكاية انا فى الدالة دة OpenListBoxForm استخدمت السطر ده defaultValue = Nz(DLookup("fixedname", "fixed_tbl", "[Reportname] = '" & FormName.ActiveControl.Name & "'"), "") ده بيعمل ايه والمفروض انا التزم بأيه علشان يشتغل معايا صح ده بيروح قبل ما يفتح نموذج الليست بوكس ع الجدول fixed_tbl وتبعا لاسم مربع النص اللى انا هاعمل عليع دوبل كليك يجيبلك قيمة fixedname لما يكون الحقل Reportname = اسم مربع النص الحالى ولو تفتكرى قلتلك " بس بشرط هنجيلة كمان شوية " وهنا نيجى للنقطة المهمة جدا جدا جدا دى القيمة اللى فى الجدول fixed_tbl فى حقل fixeddefault واللى هتكون بداخل مربع النص اللى انا هأفتح منه الليست بوكس لازم يكون اسم مربع النص بنفس اسم القيمة اللى فى Reportname فى نفس الجدول ده " وهو ده الشرط المهم " طبعا الشغل اللى فات ده كله بناء على تحليل الالية والنتائج والافكار اللى انا شوفتها فى تصميمك المرفق اذا انا فهمت وحللت صح او طبعا سيادتك ما تفاجئينا كالعادة طبعا بعد تقديم الحل انك تقصدى شئ تانى او فى شئ خفى فى تصميمك ولم تذكيرة او لم تطلبى كل طلباتك والمتعلقة بالسؤال والموضوع مرة واحدة المرفق بعد كل التعديلات ومسح كل الزيادات ووجع القلب اللى كان وتضيع الوقت والعمر فى تكرار اكواد كثيرة تم اعادة تنقيحه وهيكلتة اذا وافق رغباتك يبفى الحمد الله فضل ونعمه 🤲👌 اذا فى مفاجئات كالعادة يبقى لنا الله الطريقة الثالثة.accdb
  12. ملاحظة هامة جدا انا مازلت على سفر يعنى ارجو التماس العزر لى فى حالة التاخير انا فى العمل وقتى ضيق
  13. وادى الطريقة التانية وشوفى كم الاكواد اللى هتبطلى تكبتبيها عمال على بطال فى النماذج كده الحساب ربع جنية بس يلا خليها علينا احنا الطريقة الثانية.accdb
  14. ان شاء الله نعم انا مجيب اعتذر على التأخير انا على سفر هناك طريقة ثانية لاختصار واختزال كل اوامر الـتركيز >>--->> GotFocus() بس لما حضرتك تاكدى على الاول ان هى دى النتيحة اللى انتى عاوزاها صح يا افندم الطريقة الاولى.accdb
  15. يمكنك إنشاء الجدول tblRecords قم بعمل الحقول NationalID النوع: Text (نص) الطول: 14 (أو حسب طول الرقم القومي الخاص بك) RecordYear النوع: Number (رقم) الحجم: Integer (عدد صحيح) قم بتحديد NationalID , RecordYear كحقول مفتاح مركب (Composite Key) لضمان عدم تكرار الرقم القومي لنفس السنة لعمل المفتاح المركب: بعد إضافة الحقول اضغط على Ctrl من لوحة المقاتيج واستمر بالضغط عليها أثناء تحديد الحقول NationalID , RecordYear انقر بزر الماوس الأيمن على أي من الحقول المحددة واختر "Primary Key" (مفتاح أساسي) من القائمة المنسدلة بذلك سوف يظهر رمز المفتاح بجانب الحقول المختارة الان قم باعداد نموذج لإدخال البيانات في الجدول tblRecords تأكد من تأكد من أن لديك مربعات نصية باسماء txtNationalID , txtRecordYear في نموذج إدخال البيانات الان على زر الامر حفظ اضف الكود الاتى : Dim db As DAO.Database Dim rst As DAO.Recordset Dim strSQL As String Dim NationalID As String Dim RecordYear As Integer NationalID = Me.txtNationalID.Value RecordYear = Me.txtRecordYear.Value strSQL = "SELECT * FROM tblRecords WHERE NationalID = '" & NationalID & "' AND RecordYear = " & RecordYear Set db = CurrentDb Set rst = db.OpenRecordset(strSQL) If rst.EOF Then DoCmd.RunCommand acCmdSaveRecord MsgBox "Record saved successfully!", vbInformation Else MsgBox "This National ID is already present for the year " & RecordYear & ".", vbExclamation End If rst.Close Set rst = Nothing Set db = Nothing
  16. بل جزاكم الله انتم وكل اساتذتنا العظماء عنا نحن طلاب العلم كل الخير بما تقدمونه لنا دائما نتعلم منكم فانتم الضياء والثريا العفو منكم استاذى الجليل ومعلمى القدير انتم فى مقام الوالد اسأل الله تعالى له الرحمة هو وكل المسلمين لكم فى القلب مكانتكم وفوق رؤسنا انتم تيجان العلم يوضع الإنسان في اختبار من الله فيمتحن ليعرف مدى صبره وإيمانه على قضاء ربه فاصبر واحتسب إلهي أذهب البأس رب الناس اشف وأنت الشافي لا شفاء إلا شفاؤك شفاء لا يغادر سقما أذهب البأس رب الناس بيدك الشفاء لا كاشف له إلا أنت يارب العالمين يا إلهي اسمك شفائنا وذكرك دوائنا وقربك رجائنا وحبك مؤنسنا ورحمتك طبيبتنا في الدنيا والآخرة وإنك أنت المعطي العليم الحكيم يا مفرج الكرب يا مجيب دعوة المضطرين اللهم ألبس كل مريض ثوب الصحة والعافية عاجلا غير آجل يا أرحم الراحمين اللهم اشف وأنت الشافي اللهم آمين آمين آمين
  17. السلام عليكم ورحمة الله تعالى وبركاته استاذى الجليل ومعلمى القدير الاستاذ @kkhalifa1960 اسعد الله صباحكم طيب ايه رايك اقول لحضرتك على فكرة بنت حلال وبسيطة قوى قوى وقمة فى السهولة نمسح كل كل الاكواد وكل الوحدات النمطية من المرفق وننشئ وحدة نمطية جديدة مثلا باسم : basFillFields ونضع بها الدوال الاتية Option Compare Database Option Explicit Const ListBoxFormName As String = "frm_Specifications" Public Function OpenListBoxForm(FormName As Form) DoCmd.OpenForm ListBoxFormName, , , , , acDialog, FormName.Name & ";" & FormName.ActiveControl.Name End Function Public Function UpdateFieldFromListBox(FormName As String, FieldName As String, SelectedValue As Variant) Forms(FormName).Controls(FieldName).Value = SelectedValue End Function بس كده وفى كل النماذج فقط يكون الكود Option Compare Database Option Explicit Private Sub CmdClose_Click() DoCmd.Close End Sub اما بالنسبة لنموذج :frm_Specifications سوف نستخدم الاكواد الاتية Option Compare Database Option Explicit Dim Args() As String Private Sub List0_DblClick(Cancel As Integer) Args = Split(Me.OpenArgs, ";") Call UpdateFieldFromListBox(Args(0), Args(1), Me.List0.Value) DoCmd.Close acForm, Me.Name End Sub Private Sub List0_Click() Args = Split(Me.OpenArgs, ";") frm1 = Args(0) Txt2 = Args(1) Me.Txt1 = Me.List0.Column(0) End Sub Private Sub cmdOK_Click() Call UpdateFieldFromListBox(Args(0), Args(1), Me.List0.Value) DoCmd.Close acForm, Me.Name End Sub وطبعا انا استخدمت الاكواد السابقة للحفاظ على التصميم والية العمل وفقا للمرفق تماما ولكن يمكن فقط استخدام هذا الجزء فقط والاستغناء عن باقى الاكواد الاخرى Option Compare Database Option Explicit Dim Args() As String Private Sub List0_DblClick(Cancel As Integer) Args = Split(Me.OpenArgs, ";") Call UpdateFieldFromListBox(Args(0), Args(1), Me.List0.Value) DoCmd.Close acForm, Me.Name End Sub طيب الان نصل الى اهم واجمل جزء الاستدعاء سوف اقوم باستخدام Expression Builder لاستدعاء الدالة بالشكل التالى =OpenListBoxForm([Form]) واخيرا المرفق DDTest602-3.accdb
  18. اتفضل Dim Omra As Boolean Dim OmraAnne As Integer Omra = IIf(DLookup("Haj", "Mena7", "EmployeeID =" & Me.EmployeeID & " AND Menha_ID = 11") = -1, True, False) OmraAnne = DLookup("annee", "Mena7", "EmployeeID =" & Me.EmployeeID & " AND Menha_ID = 11") If Omra = True Then MsgBox "هذا الموظف مستفيد من منحة العمرة خلال سنة " & OmraAnne Me.Undo Exit Sub End If
  19. ومشاركة واثراء للموضوع ازيدكم من الشعر بيتا لماذا دائما نتجاهل استخدام دالة Switch و اول ما يشغل بالنا هو دائما دالة iif استخدام Switch انا احبه وافضله عن استخدام دالة iif يعدا قل تعقيدا واكثر سهولة فى الفهم ممكن استخدام الكود االتالى ' Sets rb to "normal" if Hb is between 10 and 16 (inclusive). ' Sets rb to "up" if Hb is greater than 16. ' Sets rb to "down" if Hb is less than 10. ' Sets rb to "" if Hb is blank. Me.rb = Switch( _ [Hb] >= 10 And [Hb] <= 16, "normal", _ [Hb] > 16, "up", _ [Hb] < 10, "down", _ [Hb] = "", "" _ ) طبعا انا قمت بكتابته على هذا النحو للتوضيح ممكن كتابته بالشكل التالى Me.rb = Switch([Hb] >= 10 And [Hb] <= 16, "normal", [Hb] > 16, "up", [Hb] < 10, "down", [Hb] = "", "")
  20. حزاكم الله خيرا استاذى الجليل و معلمى القدير و والدى الحبيب استاذ @ابوخليل ابشركم بالخير ان شاء الله جارى العمل لاننى ايضا للاسف لم احتفظ او فقدت القاعدة السابقة سوف اشارككم القواعد بمجرد الانتهاء منها
×
×
  • اضف...

Important Information