بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 16 يون, 2022 in all areas
-
3 points
-
وعليكم السلام-مبدئياً لا يمكن لأى أحد مساعدتك بدون رفع الملف وتوضيح المشكلة بكل دقة فلا يمكن العمل على التخمين ... ومن تالواضح من هذه الرسالة ان الكود لا يعمل عند وجود الخلايا المدمجة .. يجب ان تعود نفسك ان تبتعد قدر المستطاع عن عمل الخلايا المدمجة فهذه دائماً تقف عائقاً امام تنفيذ اى كود وشكرا2 points
-
في هذه الحالة يمكنك تخزين التاريخ في خلية وقيمة الليبل في خلية وفي حدث عن الإغلاق يتم تحديث الخليتين وفي حدث بداية النموذج يتم فحص خلية التاريخ إذا كانت أقل من تاريخ اليوم يضع قيمة الخلية في الليبل وإلا فلا يفعل شيئا بالتوفيق2 points
-
2 points
-
الشكر لله اخي احمد لكن لازم تنتبه اننا استخدمنا كود بيكون بطئ لو كان لديك عدد كبير من السجلات التي سيتم تحديثها في المره الواحدة يعني مثلا بتنقل عشرات الموظفين في كل حركة نقل لذا ارفق لك تعديل باذن الله بيكون اسرع وان شاء الله ما تواجه فيه اي مشاكل إدارة المشاريع(1).accdb2 points
-
وعليكم السلام ورحمة الله وبركاته 🙂 حياك الله أخي العزيز .. نعم حصلت معي كذلك .. والحل موجود في هذا الفيديو وقد انحلت المشكلة معي ولله الحمد ..2 points
-
ممكن باكثر من طريقة وساشرح طريقة بسيطة في مصدر القائمة نقوم باضافة حقل يجمع الكود واسم المادة [الكود]&" "&[اسم المادة] لنقوم بالفلترة من خلال هذا الحقل ولكن هناك بعض الخطوات في خصائص القائمة تبويب بيانات توسع تلقائي = لا تبويب تنسيق عدد الاعمدة = 3 عرض الاعمدة = 0سم;2سم;3سم الان في حدث عند مفتاح اعلى نضع الكود التالي If Len(co2.Text) > 0 Then Me.co2.RowSource = " SELECT [id] & "" "" & [item] AS Expr1, tbl_it.id, tbl_it.item, tbl_it.price " & _ " FROM tbl_it " & _ " WHERE ((([id] & "" "" & [item]) Like ""*"" & [Forms]![frm_3]![co2].[Text] & ""*""));" Me.co2.Dropdown Else Me.co2.RowSource = " SELECT [id] & "" "" & [item] AS Expr1, tbl_it.id, tbl_it.item, tbl_it.price " & _ " FROM tbl_it;" [tx2] = Null: [tx4] = Null End If co2 هي القائمة المنسدلة tx2 و tx4 هي الحقول التي سيتم اضهار الصنفى وسعر الصنف بها ثم في حدث بعد التحديث للقائمة نضع الامر Me.tx2 = Me.co2.Column(2) Me.tx4 = Me.co2.Column(3) بالتاكيد توجد طرق اكثر ولكن ساكتفي بهذه الطريقة اخيرا انا لا فضل استخدام مربعات التحرير والسرد ودائما استخدم مربع نص غير منضم يتم ادخال رقم الصنف به وفي حالة عدم معرفة رقم الصنف نضع رقم صفر ليفتح لنا نموذج اختيار الاصناف جاهزة للفلترة برقم او اسم الصنف وهذه الطريقة اسرع في ادخال البيانات ولا نحتاج لاستخدام الماوس في الصورة المتحركة في المثال ⬇️ يوجد خطا حيث وضعنا اسم الصنف في حقل السعر والسعر في حقل الصنف لاني عملت المثال وصورتة وانا مشغول بعمل اخر ولم اراجعة تحياتي2 points
-
السلام عليكم ورحمة الله وبركاته اخواني ظهرت عندي مشكله قبل كم يوم ان قوقل وقفت خدمة الوصول التطبيقات الأقل أمانًا في البريد الاكتروني بشكل نهائي من قبل كانت شغاله معي تمام والان ما اقدر ارسل عن طريق الاكسس ايميل الى عدة اشخاص في المثال المرفق لاحد الاخوه استخدمت الكود فيه وشغال عليه من فتره وماشي زي الفل لكن الان توقفت الخدمة وتوقف الارسال عن طريق الاكسس هل هناك اخواني حل او طريقة اخرى لهذه المشكله لان بالنسبه لي ارسال الايميل عن طريق الاكسس مهم جدا وعملي متوقف عليه الان وكثير من الاخوه ايضا يحتاج هذه الخدمه ارجو المساعده بارك الله فيكم وجزاكم الله خير Course certificates -Mohd+Moosa.zip1 point
-
بصراحة لم افهم شيئا استاذ @محمد احمد لطفى ماهي علاقة التاريخ الذي تدخلة للطباعة بالتاريخ الموجود في Q1 انا حاولت ادخل تاريخ اليوم للطباعة فيظهر لي خطأ لان التاريخ غير موجود في استعلام Q1 ربما لاني لم اتجول بالبرنامج1 point
-
مشاركة مع اساتذتي DELETE USER.id FROM USER WHERE (((USER.id) Not In (SELECT TOP 1 USER.id FROM USER)));1 point
-
1 point
-
شغالة معي تمام .. 👍🏼 فقط أضف هذين السطرين لزر الطباعة : Private Sub أمر43_Click() If IsNull(Me.tx3) Or Me.tx3 = "" Then: MsgBox "يرجى كتابة عدد النسخ": Me.tx3.SetFocus: Exit Sub If IsNull(Me.tx4) Or Me.tx4 = "" Then: MsgBox "يرجى كتابة التاريخ": Me.tx4.SetFocus: Exit Sub DoCmd.OpenReport "Q1", acViewPreview, , , acHidden DoCmd.PrintOut , , , , [tx3] End Sub1 point
-
1 point
-
وعليكم السلام ورحمه الله وبركاته مشاركه مع اخى موسى جزاه الله خير باستخدام الشرط سواء لرقم اليوزر او لاسم اليوزر DELETE tblUsers.*, tblUsers.UsersName FROM tblUsers WHERE tblUsers.UsersName<>"admin"; غير ما يلزم بالتوفيق1 point
-
ورقة عمل Microsoft Excel جديد (1).xlsm First_one.xlsm عندي مشكلة باللغة العربية استبدل بالشيت و بالكود1 point
-
صحيح ياعم احمد و لكن هنا نعطي افكار ولو بشكل غير مباشر على سبيل المثال بعد مشاركة المهندس @Eng.Qassim والحديث عن نماذج فرعية يكون قد نقل الحديث الى مسار اشمل ويدفع الاخرين في كيفية التعديل للاستفادة في تطبيقات اخرى منها تعديل الكود في نموذج الفاتورة وتغير الشرط بحيث لا يمكن تعديل بنود الفاتورة المرحلة او اي شرط نراه او عدم امكانية تعديل درجات الاختبار اذا اعتمدت نتيجة الاختبار وووو ... الخ من المؤكد ان هذه التعديل امرها يسير على كثير من رواد الموقع ولكن يبقى هنا من يستفيد من هذه الافكار تحياتي1 point
-
المشكلة في أن المنطق الذي ذكرته أخي @أبو حوده غير دقيق .. والمثال المرفق أيضا غير مناسب للتطبيق على قاعدة واقعية ، فالأسماء مكتوبة كحروف : ر ، ز ، ، س وهذه لا تعطيك نتائج واقعية .. والشيء الآخر ... هب أنك بحثت عن " محمد " ولديك 320 محمد في قاعدة البيانات ومن 320 أسر مختلفة .. أي محمد منهم سيحضر لك ؟ أنت في هذه الحالة تحتاج لفصل البحث عن العرض ، قائمة خاصة بالبحث .. وقائمة أخرى لعرض الإخوة الذين هم في نفس العائلة .. أو أنك تقبل بالبحث بالطريقة التي اقترحتها عليك مع تطويرها بالشكل مناسب . 🙂1 point
-
من الواضح في الصورة أن البيانات غير منضبطة في الصفوف أم أنك تريد حذف الصف الذي ليس به بيانات وإذا كان به بيان واحد يتم الابقاء عليه ؟؟1 point
-
أعتقد ينبغي الاحتفاظ بقيمتها في خلية معينة وليكن aa1 في حدث قبل إغلاق النموذج وفي بداية تحميل النموذج يتم وضع قيمة الخلية في التسمية label3 بالتوفيق1 point
-
عليكم السلام جرب تعدبل كود تغيير مربغ النص الى Private Sub TextBox1_Change() If TextBox1.Text <> "" Then ActiveSheet.ListObjects("data2").Range.AutoFilter Field:=4, Criteria1:="=" & TextBox1.Text & "*", Operator:=xlOr Else ActiveSheet.ListObjects("data2").Range.AutoFilter Field:=4 End If End Sub بالتوفيق1 point
-
واتفضل هذا التعديل علشان تبحث كما تريد سواء بالرقم او بالاسم وبعد الضغط دبل كليك سوف يتم تصفيه الليست ع الاخوه وتتنقل بينهم بالتوفيق تجارب(4).accdb1 point
-
بارك الله فيك استاذى الكريم وجعله الله فى ميزان حسناتك هو المطلوب فعلا1 point
-
اتفضل قم بمراجعه التعديلات فكل من النموذج الرئيسى والفرعى للربط والليست عند الكليك بالتوفيق تجارب(1).accdb1 point
-
صحيح اخي لذا انا ذكرت انه استخدام غير مالوف ولم اكتب انه استخدام خاطئ تحياتي وتقديري لك1 point
-
امسح اسم التقرير الموجود في الكود واعد كتابته لان به مسافة غير مرئية ولا يكثر من استخدام On Error Resume Next1 point
-
جرب الان واعتذر لعدم تمكني من المراجعة حيث تم التعديل بشكل عاجل تحياتي إدارة المشاريع.accdb1 point
-
بارك الله فيك وجزاك الله خير استاذي الغالي موسى الف شكر لك راح اجرب واخبرك بالنتيجة ان شاء الله1 point
-
1 point
-
هذا ما فعلت بالضبط ربما خانني التعبير فكما اشرت عملت المثال وكتبت المشاركة اثناء تناول الافطار 😄1 point
-
استاذي العزيز @مبرمج سابق او استاذ خالد لماذا لانجمع الحقلين في استعلام ونجعل المعيار له مساوية لقيمة الكومبوبوكس ؟1 point
-
1 point
-
شايف كيف ياعم احمد الشباب يفوز 5 اسطر كودك افضل واسهل من كود الشايب 7 اسطر1 point
-
الطريقة الاسهل في حدث في الحالي للنموذج ضع الامر التالي Dim intnewrec As Integer intnewrec = Form.NewRecord If intnewrec = 0 Then Me.AllowEdits = False Else Me.AllowEdits = True End If تحياتي1 point
-
وعليكم السلام -طبعاً وبالتأكيد هذا مجهد ومتعب حتى لو كان الشخص محترف الإكسيل -أقترح عليك من الأفضل طبعاً عمل وفتح 12 صفحة بعدد شهور السنة ثم عمل صفحة أساسية للمدخلات اليومية ومنها يتم ترحيل كل مدخلات للشهر الذى يخصه وأعتقد ان هذا سيكون أفضل وأسهل بكثير وليس هناك داعى طبعاً لعمل صفحة لكل يوم لأنك بالتالى ستحتاج فتح أكثر من 360 صفحة بالملف مما سيجعل العمل على هذا الملف بطىء جداً وشكراً لكم-وذلك بإستخدام هذه المعادلة بجميع شيتات الشهور ... كما ان هناك صفحة تسمى Summary بها تجميع لكل شهر على حده =IFERROR(INDEX(Input!$A$5:$I$1000,AGGREGATE(15,6,(ROW(Input!$B$1:$B$1000)/(Input!$H$5:$H$1000=MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1),1)+1,LEN(CELL("filename",$A$1))-FIND("]",CELL("filename",$A$1),1)))),ROWS(January!$A$1:A1)),MATCH(January!A$5,Input!$A$5:$I$5,0)),"") جميع مبيعات السنة-بالمعادلات.xlsm1 point
-
السلام عليكم في هذا الموضوع شد انتباهي استخدام like مع علامة النجمة في معيار دالة Dlookup وهو استخدام غير مألوف لاسباب نبينها في ثنايا المشاركة بداية علامة النجمة تستخدم بديلا عن الاحراف او الارقام الغير معروفة في الحقل ونستخدمها عندما نرغب في البحث او الفلترة بجزء من قيمة الحقل ومن المعروف ان هذه الدالة ترجع قيمة حقل واحد استنادا إلى المعلومات المحددة في المعايير فاذا وجدت القيمة في اكثر من حقل ترجع القيمة الاولى وبالتالي لو ان لدينا عدة اصناف لها الارقام التالية 100055556600 100055556601 100055556611 100155556600 100055556500 فعند كتابة جزء من قيمة الحقل مثلا 10005 او 0555566 او 5555 الخ هنا ستعود الدالة بقيمة اول حقل طابق الجزء من المعيار لذا يجب تحديد معايير فريدة تضمن أن تكون قيمة الحقل التي يتم إرجاعها صحيحة والا فقد نحصل على القيمة غير المرغوبة واعتقد ان السبب لهذ الاستخدام ⬇️ ومن وجهة نظر مبرمج سابق ان الاجدى ان يكون لكل منتج رقم باركود يمثل رقم فريد وبالتالي يمكن استخدام الدالة بمعايير تحقق الهدف الذي وضعت له وحتى لو كانت هناك علاقة بين هذه المنتجات فتوجد حلول اخرى اذا اردنا العمل وفق قواعد صحيحة ولكن هذا امر اخر الموضوع يمثل وجهة نظر غير ملزمة ولا يقصد منه النقد والله الموفق1 point
-
تفضل Private Sub CommandButton6_Click() Select Case ComboBox1.Value Case "بحث في الاسماء" ListBox1.Clear For i = 1 To 12 Controls("textbox" & i + 1).Value = "" On Error Resume Next Next i If TextBox1 = "" Then Exit Sub Sheets("Sheet1").Activate ss = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row j = 0 For Each C In Range("a2:a" & ss) If C Like TextBox1.Value & "*" Then ListBox1.AddItem ListBox1.List(j, 0) = Cells(C.Row, 1).Value ListBox1.List(j, 1) = Cells(C.Row, 2).Value ListBox1.List(j, 2) = Cells(C.Row, 3).Value j = j + 1 End If Next C Case "بحث في الرقم القومي" ListBox1.Clear For i = 1 To 12 Controls("textbox" & i + 1).Value = "" On Error Resume Next Next i If TextBox1 = "" Then Exit Sub Sheets("Sheet1").Activate ss = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row j = 0 For Each C In Range("c2:c" & ss) If C Like TextBox1.Value & "*" Then ListBox1.AddItem ListBox1.List(j, 0) = Cells(C.Row, 1).Value ListBox1.List(j, 1) = Cells(C.Row, 3).Value j = j + 1 End If Next C Case "بحث في تاريخ الميلاد" ListBox1.Clear For i = 1 To 12 Controls("textbox" & i + 1).Value = "" On Error Resume Next Next i If TextBox1 = "" Then Exit Sub Sheets("Sheet1").Activate ss = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row j = 0 For Each C In Range("b2:b" & ss) If C Like TextBox1.Value & "*" Then ListBox1.AddItem ListBox1.List(j, 0) = Cells(C.Row, 1).Value ListBox1.List(j, 1) = Cells(C.Row, 2).Value j = j + 1 End If Next C End Select End Sub 1- 2- 3- project.xlsm1 point
-
فى البداية نقوم بفتح برنامج الاردوينو ومسح المحتوي الذى بداخلة كله ولصق هذا الكود : // Example_1_Computer MSACCESS_Interfacing // Design By : Karim Adel El-Hosseny // Mobile : 01277877151 int Door=7; // تهيئه متغير يقوم يتعويض رقم المنفذ 7 الى اسم لسهولة البرمجة int value; // تهيئة متغير لتخزين قيمة القراءه من المنفذ التسلسلي void setup () // دالة عامه لتهيئة المنفذ التسلسلي { Serial.begin(9600); // ضبط معدل النقل ويجب ان تتوافق هذه القيمة مع القيمة المضبوطبه بالبرنامج بالاكسس pinMode(Door,OUTPUT); // تهيئة الطرف الخاص بالخرج digitalWrite(Door,LOW); // جعل قيمة الجهد المسلط على الطرف الخاص بالخرج مساوى لصفر فولت } void loop () { // دالة تكرار لا نهائية value = Serial.read(); // تخزين قيمة البيانات المستلمة من المنفذ التسلسلي والمرسلة من الاكسس بالمتغير المحجوز مسبقاً if (value == '1') // يقوم هذا الامر من مراجعة قيمة البيانات المرسلة اذا كانت مساوية للواحد ويتحقق الشرط يقوم بتنفيذ الاوامر التالية { digitalWrite(Door,HIGH); // جعل الالجهد المسلط على الطرف مساوية لاعلى فولت ممكن delay(3000); // الانتظار لمده ثلاث ثواني digitalWrite(Door,LOW); // جعل الجهد المسلط على الطرف مساوية لاقل فولت ممكن } else if (value == '0') {digitalWrite(Door,LOW);} // وفى حالة عدم تحقق الشرط يجعل الجهد المسلط على الطرف لاقل فولت ممكن } ولفهم الكود بشكل اكبر سنقو بشرحة خطوه خطوه فى البداية تعريف للكود والمصمم له : // Example_1_Computer MSACCESS_Interfacing // Design By : Karim Adel El-Hosseny // Mobile : 01277877151 -------------------------------------------------------------------------------------------------------------------------------- int Door=7; int value; وفى هذا الجزء قمنا بحجز سجل ( متغير رقمي ) فى الذاكره المؤقته بالميكروكونترول باسم Door و جعلنا قيمتها 7 و 7 هى رقم الطرف الذى سيوصل عليه البوابة او لمبة الاناره ويكون الرقم مكتوب بجوار الطرف كما بالصورة : وحجز خانة اخري بالمسمي Value لتسجيل بها البيانات المستقبله من طريق السيريال بورد . void setup (){ } وهى دالة محجوزة بالميكروكونترول ويكتب بها اوامر النهيئة الخاصة بالاطراف او الموديلات الداخلية المدمجة معه . Serial.begin(9600); ويقوم هذا الامر بتفعيل وتهئية موديل السيريال بورد المدمج مع الميكروكونترول ويخبره بان معدل نقل البيانات المستخدم هو 9600 كيلو بايت ويجب ان يكون جهاز الكمبيوتر متوافق مع هذا الرقم وايضا البيانات المرسلة من الاكسس كما سنوضحها لاحقاً . pinMode(Door,OUTPUT); طبيعة الطرف ان الاردوينو لكل طرف بها وظيفتين اساسيتان والبعض اكثر من وظيفة فالوظيفه الاولى هى استعمالة كخرج بمعني ان يقوم بتوصيل كهرباء لهذا الطرف او قطع الكهرباء عنه وهذا مفهوم بسيط لتسهيل استيعابه والوظيفة الشانية ان يستخدم كدخل اى ان يقوم بفحصه هل يوجد عليه كهرباء ام لا . اذا فالوظيفة الاولى كخرج والثانية كدخل . ونحن هنا نستخدمة كخرج فنامره عند ارسال قيمة معينه من الاكسس يقوم بالتوصيل واذا انقطعت يتوقف . digitalWrite(Door,LOW); وكما وضحنا فى الامر السابق اننا نستخدمه كخرج فيتحكم هذا الامر فى طبيعة الخرج وقمنا بامره ان يجعل الكهرباء المسطله اقل قيمة كهربيه اى صفر فولت لا لا يقوم بالتوصيل او التشغيل . void loop () { } وهى دالة البرنامج الرئيسى التى اول ما يعمل الميكرو ويقوم بالتهيئة يدخل اليها لتنفيذ التعليمات المرغوبة . ملحوظة هامه : ان الميكروكونترول ليس مرن كالاكسس بمعنى انه يقوم بتنفيذ التعليمات بالترتيب ولا يستطيع ان يقفز الى امر اخر دون المرور على البقية . value = Serial.read(); وهنا نامر الميكرو بتسجيل البيانات المستقبلة فى المتغير المحجوز سلفاً فى الكود . if (value == '1') { وكالمعتاد والمتوقع عن ايجاد دالة الشرط IF كما تعودنا استخدامها فى الاكسس وتختلف فقط بطريقة كتابها كما موضح . وتقوم بفحص حالة المتغير فاذا كانت قميته تساوى واحد صحيح يقوم بتنفيذ الاوامر واذا لم تكن يقوم بتنفيذ التالى وكذلك يمكن استخدام Elseif ونرسل قيمة مثلا 2 فيقوم بفتح بوابة اخري وهكذا . digitalWrite(Door,HIGH); فاذا تحقق الشرط يقوم بجعل قيمة الخرج المسلط على الطرف المحدد سلفاً باعلى قيمة فولت لتشغيل الريلاى لفتح البوابة . delay(3000); وهذه داله تمنيت وجودها فى الاكسس وهى دالة تأخير زمني والرقم 3000 بمعني 3 ثواني فالميكروكونترول لديه قدره لتقسيم الثانية الواحده الى 1000 جزء ويتعامل معها كجزء من الـ1000 digitalWrite(Door,LOW); بعد الانتظار لمدة ثلالث ثواني يقوم بتخفيض الفولت الى صفر لغلق البوابة واذا احببتم زياده الوقت نقوم بزياده ال 3000 else if (value == '0') {digitalWrite(Door,LOW);} وفى حالة عدم تحقق الشرط او عدم وجود قيمة يقوم بابقاء الفولت منخفض للحفاظ على غلق البوابة . وبعد الانتهاء من ادخل الكود نقوم بالضغط على علامه الصح بالاعلى للتأكد من صحه الكود وفى حالة الخطأ سيقوم البرنامج بالتوضيح فى الجزء الذى بالاسف بالاخطاء الموجوده ويجب ان تظهر هذه العبارات التى توضح المساحة المستخدمة من الذاكره الخاصة بالميكرو والرام فاذا ظهرت هذه الرسالة يكون الكود خالى من الاخطا وبامكانك شحن الاردوينو بالبرنامج من هذه العلامة : وهكذا نكون اتممنا برمجه الاردوينو بنجاح . والله الموفق . ونلتقي قريباً .1 point
-
اعرض الملف الدليل الشامل في حساب مدد خدمة الموظفين وإجمالي هذه المدد بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته ================ كثرت الأسئلة في الفترة الأخيرة حول حساب الفرق بن تاريخين ويستخدم هذا في حساب مدة خدمة الموظفين من تاريخ التعيين إلى الآن وكذلك مدد الخدمة الإضافية وكذلك مدد الانقطاع عن العمل -------------------------------------- ولذلك توكلت على الله وقمت بتصميم هذا الملف لعله يفيد كل من يبحث في هذا الموضوع والله من وراء القصد ولا ينقصني سوى دعاؤكم ............ تم تحديث البرنامج وإجراء بعض التعديلات صاحب الملف أ / محمد صالح تمت الاضافه 13 نوف, 2011 الاقسام قسم الأكسيس1 point
-
شكرا جزيلا لكل من شارك الموضوع وفقنا الله لكل ما يحب ويرضى1 point
-
1 point
-
يفضل أن تبدأ موضوعاً جديداً بهذا الخصوص مع إرفاق ملف للتعديل عليه هذا طبعاً بعد محاولتك أنت في الوصول للحل1 point
-
أخي الكريم ضع هذا الكود في حدث عن النقر للزر Me.الرابط.SetFocus SendKeys "^k" ويعني هذا الكود وضع المؤشر في حقل الرابط ثم الضغط على مفاتيح Ctrl+k وهي الخاصة بإظهار الصندق الحواري تحرير ارتباط تشعبي وذلك من خلال الطريقة sendkeys .......... ونصيحة أخي الكريم تعود على تسمية الحقول في الجداول والنماذج بحروف انجليزية ولو حتى بأسماء عربية مثل edafa حتى يسهل كتابة الكود1 point
-
بارك الله فيك أخي وليد بالنسبة لأولاً : الأمر بسيط جداً حيث يمكنك إنشاء تقرير من خلال المعالج ثم اجعل مصدر هذا التقرير الاستعلام query1 سيظهر لك التقرير الخاص بالموظف المعروض في النموذج بالنسبة لثانياً : أنا جربت الكود على موظف واحد وجاري تجريبته على أكثر من موظف ولكن العبرة بصحة طريقة الحساب ولي عدد الموظفين. بالنسبة لثالثاً: إذا اعتمدت على طريقة سنوات الخدمة الإضافية بطريقة تاريخ البداية والنهاية فهذا موضعه أما إذا أخذت طريق ناتج الخدمة فاستخدم معادلة الجمع بين المدد فقط حيث يتم إعطائها مصفوفة بالمدد وتقوم الدالة بجمعهم أو طرحهم حسب علامة السالب في بداية المدة بالنسبة لرابعاً: إذا كانت عملية إختيار اسم الموظف واختيار نوع الخدمة من قائمة وكتابة تاريخ بداية ونهاية المدة شيء صعب فما هو السهل إذاً؟؟!! بالنسبة لخامساً: الدوال الموجودة في الموديول لحساب الفرق بين تاريخين ثم قراءة ناتج الدالة الأولى والتعامل معه بالجمع أو الطرح ويوجد دالة لقراءة عمود مدة الخدمة من الاستعلام وإخراجه في صورة مصفوفة حتى يمكن للدالة الثانية التعامل معها ويتم استخدام الدوال الموجودة في الكود في أي مكان في قاعدة البيانات في الاستعلامات و النماذج والتقارير وجاري دراسة المعادلة مادامت أخرجت نتائج غير صحيحة معك أخي الكريم1 point
-
ويمكنك تنفيذ كل هذه التعليمات الوارد ذكرها في الصفحة المشار إليها بهذا السطر من الكود CreateObject("WScript.Shell").RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\" & Application.Version & "\Common\Security\DisableHyperlinkWarning", "1", "REG_DWORD" كل عام أنتم بخير1 point
-
بارك الله فيك أخي قصي ولكن واجهتني مشاكل مع ويندوز 7 لم يعمل معي كما ينبغي1 point
-
ما فائدة الدوس بالنسبة للويندوز؟ تنفيذ اوامر بدون واجهة رسومية أو إمكانية استعمال سطر الأوامر في تنفيذ أوامر من خلال برامج أخرى هذا هو نفس دور mysql console التحكم في قواعد البيانات بدون واجهة رسومية كما يمكن استعماله داخل برامج أخرى لتنفيذ استعلامات عبر mysql والله أعلم1 point