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

جهراوي الكويت

03 عضو مميز
  • Posts

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

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

مشاركات المكتوبه بواسطه جهراوي الكويت

  1. اختي الفاضلة ..

    نسيت اخبرك مكان البحث... بعد اذن استاذنا ( رضــــــــــــــــــــــــــــــــــــــــــــوان )

    يوجد في قسم الأرشيف - مثال اسمه برنامج البحث المتطور للمبدع أبو هادي , ابحث عنه

    فهو يبحث بعدة خيارات و في جميع الحقول

  2. اختى الفاضلة ..

    هناك امثلة وملفات كثيرة بالمنتدى للرد على سؤالك ..

    على العموم أنت تريدين ( تصفية السجلات ) وليس ( البحث عن سجلات )

    ابحثي تجديد مثالا جميلا لاخونا ابو هادي واستاذنا الكبير ( رضوان )

    وشكار وانا على اسعتداد للشرح من الألف الى الياء

  3. اخواني الافاضل ..

    لاحظت السؤال عن( تنسيق التاريخ ) وليس ( دالة التاريخ ) ومن بينها سؤال الاخ FRILL

    واليكم هذه المعلومات البسيطة ..عن تنسيق التاريخ

    نختار مربع النص ---- ثم نختار خصائص المربع النص تبويب ( التنسيق ) .. ثم نختار تنسيق

    عندما كتابة ما يلي

    فرضنا ان التاريخ المسجل في مربع النص هو 2/11/2007

    وعند التنسيق لمربع النص وضعنا

    التنسيق

    d

    تنسيق الايام حيث يرمز هذا الايام الى اظهار اليوم فقط في مربع النص فتكون النتيجة = 2

    *******************************************************

    dd

    تنسيق الايام حيث يرمز هذا الايام الى اظهار اليوم فقط في مربع النص فتكون النتيجة = 02

    حيث لا بد من وجود خانتين لو كان اليوم 2 = النتيجة 02 _______ ولو كان اليوم 11 النتجة 11

    لا بد من ووجود خانتين عند اخيتار هذا التنسيــق بعكس اتنسيق الأول

    **************************************************************************

    ddd

    تنسيق الايام حيث يرمز هذا الايام الى اظهار ( اسم ) اليوم وليس اليوم فقط في مربع النص فتكون النتيجة = مثلا السبت أو ألاحد أو الاثين أو الثلاثاء ... أ

    **************************************************************************

    dddd

    تنسيق الايام حيث يرمز هذا الايام الى اظهار ( اسم ) اليوم وليس اليوم فقط في مربع النص فتكون النتيجة = مثلا السبت أو ألاحد أو الاثين أو الثلاثاء ... أ

    والفرق بين الاثنين...يكون خاصا عند الكتابة اللغة الانجليزية ..

    اما اللغة العربية فلا يوجد اختصار لأيام ولا للشهور

    فمثلا عند اخيتار تنسيق اليوم

    ddd =يظهر اختصار اليوم فقط ( أي ثلاثة حروف ) مثلا sunday يظهر النتيجة = sun

    dddd= يظهر ( اسم اليوم ) كاملا مثل sunday يظهر النتيجة = sunday

    ************************************************************

    هذا الدرس اليوم..

    والدرس القادم عن

    **********************************************

    mm

    mmm

    mmmm

    yy

    yyyy

    w

    d/m/yyyy

    dd/mm/yy

    dddd dd/mm/yyyy

    ********************************************************************

  4. مشاركة ابو عبدالرحمن في المنتدى بتاريخ: 12-October 03

    اعمل مربع نص وسمه com1 في النموذج وزر أمر ألصق فيه هذا الكود في حدث عند النقر

    
    
    Dim a As String
    
    com1.SetFocus
    
    FIL1 = "[asnaf] " & "Like '" & "*" & [com1] & "*" & "'"
    
      Me.Filter = FIL1
    
      Me.FilterOn = True
    
    	 If Me.RecordsetClone.RecordCount = 0 Then
    
    MsgBox"لا يوجد نتائج تطابق ما تبحث عنه"
    
    Me.FilterOn = False
    
    End If

    انتبه لمصدر السجل في حقل الأصناف سميته في هذا الكود ب (asnaf) استخدم نفس الاسم أو عدله في الكود كما هو عنك

    تم تحرير المشاركة بواسطة ابو عبدالرحمن: Oct 15 2005, 03:18 AM في منتدى اوفيسنا

    هذه المشاركة اللطيفة والجيدة لأخونا ابو عبدالرحمن ..

    أفادتنا كثيرا في تصفية السجلات .. لكن المشكلة .. انها تبحث في حقل واحد فقط ...وهو حقل الاصناف

    هل هناك طريقة للتعديل على الكود السابق للبحث في جميع الحقول دفعة واحدة

    وشكرا لكم ...

  5. اخواني الافاضل

    سؤالي .. عندي مربعي نص غير منضمين .. للاستفسار عن تاريخين

    احيانا .. المستخدم.. يكون غير عارف ان شهر سمتبر ( مثلا ) عدد ايامه 31 يوما

    فعند الاستفسار ووضع تاريخ 31/9/2007

    يتعطل النموذج

    السؤال

    اريد عند وضع تاريخ غير مقبول مثلا (30/2 أو 32/9

    تظهر رسالة تنبه المستخدم على ذلك ولكم جزيل الشكر

    مرفق ملف

    ____________31_9.rar

  6. لحساب الفارق الزمني بين تار

    Datediff(“m”;[date1];[date2]

    )

    قبل كل شيء يجب ملاحظة ما يلي :-

    1- أن الدالة السابقة تحسب الفارق بين تاريخين

    2- عدم وجود مسافة عند كتابة الدالة وملاحظة وضع الشهر بين علامتين تنصيص"" ووضع التاريخ الأول والتاريخ الثاني داخل أقواس [ ]

    3- الفاصلة تكون فاصلة منقوطة ..

    4- يرجى ملاحظة ما سبق ....

    أولا : بداية نتكلم عن الوسيطة الاولى ... وهي في مثالنا السابق الشهر "m"

    Datediff(“m”;[date1];[date2])

    تعيد الفرق بعدد الاشهر

    مثال 1

    Datediff(“m”;[2005/05/09];[2007/070/09])

    يكون الفرق بين التاريخين 26 شهر لأننا طلبنا الفرق بالأشهــــر وليس الايام أو السنوات

    ********************************************************************

    Datediff(“d”;[date1];[date2])

    تعيد الفرق بعدد الايام

    مثال 2

    Datediff(“d”;[2005/05/09];[2007/070/09])

    تعيد الناتج 791 يوم ( لأننا طلبنا الناتج يكون بالايـــــــــــام عن طريق الوسيط D

    **************************************************

    Datediff(“YYYY”;[date1];[date2])

    تعيد الفرق بعدد السنوات

    مثال 3

    Datediff(“y”;[2005/05/09];[2007/070/09])

    تعيد الناتج 2 سنة= سنة 7- سنة 5 = عدد السنة الفارق 2سنة لأننا طلبنا الفرق بالسنوات

    *********************************************************************

    Datediff(“Y”;[date1];[date2])

    تعيد الفرق بعدد الايام ...يرجى ....ملاحظة أن كتبنا سنة وليس يوم ..

    تعالوا ننظر الى هذه الدالة ......

    Datediff(“M”;[date1];[date2])/12

    المفروض أنها تعيد الفارق بعدد الأشهر لأننا استعملنا الوسيطة (M) يعني شهر

    لكن الصحيح انها تعيد عدد السنوات لانها اشترطنا أن الناتج يقسم على 12 شهر

    وبالتالي فان النتيجة يكون بعدد السنوات لا بعدد الاشهر مع اننا استعملنا الوسطية شهر

    لاحظ أن وضعنا /12 خارج الأقواس وليس داخل الاقسام ...... تعيد الفارق بالسنوات + كسور

    ********************************************************************************

    ******

    يرجى ملاحظة الجدول لمعرفة الفروقات

    الإعدادالوصف

    yyyy السنة

    الأسبوع ww

    الأسبوع

    h الساعة

    n الدقيقة

    s الثانية

    وفيما عدا ذلك لا يعتد بذلك

    مثلا لو استعملنا أحد الوسائط التالية mm-mmm-mmm-dd-ddd-dddd-YY-YYY

    لا تعيد الدالة أي قيمة وترجع خطأ.............!!!

    ********************************************************************************

    ******

    ملاحظات :-

    1- عند عكس التاريخ ووضع التاريخ الصغير في النهاية ووضع التاريخ الكبير في البداية

    تعطي نفس النتيجة السابقة لكن (-) يعني بالسالب ....

    ********************************************************************************

    ******

    وأيضــــــــــــــــــا تستطيـــــــــــــــع

    Datediff(“d”;[date1]; NOW())

    Datediff(“d”;[NOW()];[date2])

    تستطيع استخدام تاريخ الــــيــــــــوم كما في المثال السابق

    مثال على ذلك..استخدام الدالة لانتهاء صلاحية الجواز ... أو لمعرفة عدد أيام العمل ولمعرفة ( عمر الشخص ) ولمعرفة عدد سنوات العمل في الوزارة ... وهكذا .....

    ********************************************************************************

    ***

    Datediff(“d”;[date1]; #2007/10/25#)

    Datediff(“d”;# 2007/10/25#;[date2])

    تستطيع استخدام هذه الدالة لمقارنة بين تاريخ ثابت لا يتغير وبين تاريخ تضعه في حقل

    مثال على ذلك لاستخدام الدالة لمعرفة الفروقات بين تاريخ ثابت وتاريخ متحرك أو تاريخ متتغير

    لكن في هذه الحالة لا تستخدم أقواس [ ] ولكن استخدم # # لوضع التاريخ الثابت

    ********************************************************************************

    *******

    لكن ماذا تفعل هذه الدالات : صراحة لا علم بها ... أتمنى أحد من ألأخوة يفيدنا بها ....

    Datediff(“d”;1;[date2])

    Datediff(“M”;2;[date2])

    Datediff(“Y”;5;[date2])

    Datediff(“d”;5;NOW()

    Datediff(“Y”;4;NOW())

    ***********************

    ربط الدالة بمربع رســــــــــــــــــالة

    تستطيع ربط( الدالة بمربع رسالة )

    مثلا تستطيع عمل دالــــة لطرح التاريخ الحالي من تاريخ انتهاء جواز

    واذا كان الناتج > 29 يوم

    يظهر مربع رسالة ((( انتـــبـــــه .... جواز سفــر قارب على الانتهـــــــــــــــــــــــاء )))؟؟؟!!!

    لذلك نطلب من أحد الأخوة .... التطوع لعمل هذه الفكــــرة .. لنــــرى النتيجـــة ....

    ***************************************************************************

    قد يطرح بعض الاخوة سؤال ما هو الهدف من الحصول على هذه النواتج المختلفة أحيانا بالايام واحيانا بالاشهر واحيانا بالسنوات ..؟؟!!

    1- نحتاج احيانا الى الحصول الى العدد الناتج بالسنوات ( مثال لذلك معرفة عمر الشخص ) فلا يعقل أن يسألك شخص ما عن عمرك فتقول له 20 سنة و5 شهور 12و يوم وانما الجواب المعتاد 20 سنة ..

    2- نحتاج احيانا الى الحصول الى العدد الناتج بالايام ( لحاجات كثيرة منها مثلا اخبارنا ، بانتهاء الجواز أو البطاقة أو رخصة القيادة قبل بـ 29 يوما ولا نحتاج الأشهر او السنوات ..

    3- أحيانا نحتاج الى العدد الناتج يكون بالسنوات والاشهر والايام .. مثلا ( لحساب نهاية خدمات موظف : نحتاج معرفة ايام العمل للموظف ( سنوات – اشهر- أيام ) وهكذا .....

    ********************************************************************************

    اخطـــــــــــــــــــاء هذه الدالة القابلـــة للـحــــــــــــــــل :-

    1-عند مقارنة 31 ديسمبر من هذه السنة بـ 1 يناير من السنة التالية، تقوم الدالة DateDiff للسنة ("yyyy") بإرجاع 1 على الرغم من مرور يوم واحد فقط.

    مثال استعمل # بدلا من الاقواس .....

    Datediff(“YYYY”;[2007/12/31];[2008/01/01])

    لاحظ أن الفرق بين هذه التاريخين هو يوم.. لكن النتيجة .. حسب الدالة السابقة 1 سنة .... وهذه خطأ فادح ..؟؟؟؟ جرب الدالة وانظر أين الخطـــأ.....

    2- عدم تقريب الارقـــــام .. فمثلا لو كان عمر شخص (25 سنة و11شهر و29 سنة ) لا يتم تقريب هذه الارقام ....اذا كان الوسيط ( سنة )

    3- احيانا نحتاج لمعرفة عدد أيام بين حقلين تاريخين هما ( تاريخ التعيين ) ( وتاريخ انتهاء التعيين ) ونريد معرفة عدد أيام العمل لهذا الموظف لكن .. ( بعد حذف ايام الخميس والجمعة – لا يوجد عمل بهذين العمل ) ... فما هو الحل في هذه الحالــــة ...؟؟؟؟!!!!!!!!!!!!

    4- لنقص أيام أو سنين من تاريخ افتراضي فما هو الحل ...

    يعني تاريخ 15/2/2007 ننقص منه 5 أيام

    فما هو الحل اذا أردنا يكون الناتج على شكل تاريخ وليس عددا..

    5- هل هناك طريقة ليكون الناتج على شكل تنسيــق بمعني .. هل تسطيع هذه الدالة

    Datediff(“y”;[2005/05/01];[2007/070/09])

    فيكون الناتج 8 يوم /2 شهر / 2سنة

    الجواب .. نعم هناك دالة موجودة في المنتدى .. لكن لا أذكرها موقعها بالتحديـــد ....

    ********************************************************************************

    *************

    وأخيــرا يجب قراءة هذه الملاحظات التي أحضرتها من تعليمات البرنامج (مكتوبة باللون الزهري):-

    لحساب عدد الأيام بين date1 و date2، يمكنك إما استخدام "يوم من السنة" ("y") أو "اليوم" ("d"). عندما تكون interval عبارة عن "يوم من الأسبوع" ("w")، تقوم الدالة DateDiff بإرجاع عدد الأسابيع بين التاريخين. إذا وقع date1 في يوم الاثنين، تقوم الدالة DateDiff بحساب عدد أيام الاثنين حتى date2. يتم حساب date2 وليس date1. إذا كان interval عبارة عن "أسبوع" ("ww")، تقوم الدالة DateDiff مع ذلك بإرجاع عدد أسابيع التقويم بين التاريخين. يتم حساب أيام الأحد بين date1 و date2. تقوم الدالة DateDiff بحساب date2 إذا وقع في يوم الأحد؛ ولكن لا يتم حساب date1، حتى ولو وقع في يوم الأحد.

    إذا كان date1 أو date2 عبارة عن تاريخ حرفي، تصبح السنة المحددة جزءً دائماً من هذا التاريخ. ولكن إذا كان date1 أو date2 داخل علامتي اقتباس (" ")، وقمت بحذف السنة، يتم إدراج السنة الحالية في التعليمات البرمجية في كل مرة يتم حساب تعبير date1 أو date2. وهذا يسمح بكتابة التعليمات البرمجية التي يمكن استخدامها في سنوات مختلفة.

    ملاحظة بالنسبة للتاريخين date1 و date2، إذا كان إعداد الخاصية التقويم هو الميلادي، يجب أن يكون التاريخ ميلادياً. إذا كان التقويم هجرياً، يجب أن يكون التاريخ هجرياً.************************************************************************

    في النهاية

    1-لي طلب صغير من جميع من قرأ هذه السطور .. بالتكرم باعطائنا مثال ( عملي ) يعني برنامج صغير عن الدالة السابقة حتى تعم الفائدة

    مثلا من يتكرم باعطائنا رسالة توضح عدد الايام المتبقية لنهاية سنة 2007م

    2- يرجى التكرم من الاخوة اضافة أي معلومة جديدة عن الدالة حتى تكون مرجع لباقي الاعضاء ....

    وفي الختام ....

    1- الفضل لله تعالى أولا وأخيرا على هذه المعلومات المتواضعة .. ثم الفضل لمنتديات ( الفريق العربي للبرمجة ومنتدى أوفيســــنا ) ولجميع الاعضاء والمشرفين في هذين المنتدين

    2- قد يكون الترتيب لهذا الكلام غير منطقي لأنني كتبتها على عجالة ..

  7. 1- عندي نموذج رئيسي فيه حقل اسمه تاريخ استلام آخر راتب من الشركة

    2-عندي نموذج فرعي فيه حقل اسمه الحالة وحقل آخر اسمه تاريخ آخر استلام راتب

    تاريخ استلام الراتب بتاريخ 1/1/2007

    تاريخ استلام الراتب بتاريخ 1/2/2007

    تاريخ استلام الراتب بتاريخ 1/3/2007

    تاريخ استلام الراتب بتاريخ 1/4/2007

    أريد وضع تاريخ استلام آخر راتب من ( النموذج الفرعي ) ووضعه في حقل في النموذج الرئيسي

    بحيث في المثال السابق يذكر تاريخ 1/4/2007

    ولو حدث تغيير في النموذج الفرعي ووضعنا تاريخ جديد لاستلام الراتب ... يتم ووضعه تلقائيا في النموذج الرئيسي

    مرفق لكم القاعدة .. اخوكم / جهراوي الكويت

    ______.rar

  8. اخي الفاضل ....

    لو انك بحث في هذا المنتدي .. لوجدت .... ما اردت ......

    على العموم هنا طريقتان ....

    واليك الطريقة الاولى حاليا ...

    1- اعمل النموذج الذي تريده وضعه في الواجهه ..

    2-اذهب الى القوائم _______ ادوات ____ بدء التشغيل ....

    3 - اختر ( عرض النموذج / صفحة ) واختر اسم النموذج التي تريده ...مثلا النمذوج الرئيسي )ثم موافق

    الخطوة الثانية وليس الطريقة الثانية ..

    ضع هذا الكود عند حدث الفتح او التحميل للنموذج الذي تريد ان يكون ملء الشاشة

    DoCmd.Maximize

    حتى يظهر النموذج عند فتحه ملىء الشاشة كاملة دون أن يكون معه أي شيء آخر ...ثم بالخطوات التالية :

    1- في خصائص النموذج في حدث عند الفتح أو عند التحميل ضع الكود التالي :

    Private Sub Form_Open(Cancel As Integer)

    DoCmd.Maximize

    End Sub

    2- في خصائص النموذج في تنسيق عند " أشرطة التمرير" نختار : لا هذا و لا ذاك .

    3- في خصائص النموذج في تنسيق عند " نمط الحدود " نختار : بلا .

    4- في خصائص النموذج في تنسيق عند " محددات السجلات " نختار : لا .

    5-منبثق = نعم

    هذه الطريقة الاولى ....

    واذا صادفتكم مشكلة .. انا حاضر وتحت امركم ..

    بالتوفيق

  9. اخي ..

    اذهب الى النموذج بطريقة عرض التصميم

    ةوعند الحدث ( قبل التحديث ) للنموذج

    ضع هذا الكــــــــــــــــــــــــــــــود

    قد يبدو الكود غير واضح أو غير منسق .. لأنه مكتوب باللعة العربية

    لكن اعمل عملية نسخ .. وضعه في النموذج وسوف يعاد الى وضعه الطبيعي ..

    هذا لكود يعمل عند حدوث أي تغييرات ويعبر عنه باللغة الانجليزيىة ( ديرتي )

    اذا حفظ أو تراجع

    
    If Me.Dirty = True Then
    
    Dim a As String, b As String
    
    Dim c As Long
    
    a = " åá ÊÑíÏ íÝÙ ÇáÊÛííÑÇÊ "
    
    b = "Êã ÊÛííÑ ÇáÓÌá"
    
    c = MsgBox(a, vbYesNo + vbExclamation, b)
    
    If c = vbNo Then
    
    Cancel = True
    
    Me.Undo
    
    End If
    
    End If

  10. اخي ..

    لاضافة سجلات جديدة في ( النموذج الفرعي ) دون رؤية السجلات القديمة

    اذهب الى

    1- النموذج الفرعي ووضع المؤشر عند أي خانة

    2- من القوائم اختر سجلات

    3- اختر ( ادخال بيانات )

    وهكذا تضيف بيانات جديدة دون رؤية البيانات السابقة أو السجلات السابقة

×
×
  • اضف...

Important Information