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

محب العلم

04 عضو فضي
  • Posts

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

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

Community Answers

  1. محب العلم's post in أرجو المساعده في حساب الرصيد للفترة السابقه. was marked as the answer   
    نعم أخي lost2007

    لو ترفق مثال كما قال أخي knight يكون أفضل ولكن على كل الأحوال :

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

    حقل الدائن ... Pays

    حقل المدين ... Depts

    حقل تاريخ الحركة ... tDate

    وطبعا حقل الرصيد ... Balance

    لنفرض أن الجدول هو custDetails

    الطريقة في التقرير تعمل مربع نص وفي مصدره تكتب الكود الآتي


    كود = Nz(DSum("Pays", "custDetails", "tDate < #1-1-2008# "), 0) - Nz(DSum("Depts", "custDetails", "tDate < #1-1-2008# "), 0)  


    مع وافر الاحترام
  2. محب العلم's post in ( تمت الفائدة ) - مشكلة في الحماية والصلاحيات was marked as the answer   
    حياك الله أخي أبا محمد

    1. تم في المرفق بناء الجدول المشار اليه في مشاركتي السابقة وهو

    usersloginout ويحتوي على الحقول username ، userlogin ، userlogout ، notes والتي تم تفسيرها سابقا

    2. تم بناء نموذج جديد وتسميته login وهذا النموذج يتم تشغيله تلقائيا بمجرد فتح القاعدة من خيارات بدء التشغيل وفي هذا النموذج يتم عمل ما يآتي

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

    3. في نموذج الموظفين وفي حدثي بعد التحديث و بعد الإدراج (يعني بعد تعديل البيانات أو بعد إضافة سجل جديد ) يتم أضافة سجلات جديدة في جدول المستخدمين ووضع كلمة تعديل او اضافة حسب ما تم عمله.

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

    بالنسبة لتسجيل الخروج أيضا سهل كما ذكرت لك سابقا بتعديل وقت الخروج في السجل الخاص بالمستخدم ولكن هذا الأمر لن يتم إلا بعد الانتهاء من البرنامج كاملا حيث ستتم برمجته في زر الخروج من البرنامج

    تفضل التعديل Data.zip

    مع وافر الاحترام
  3. محب العلم's post in مثال لتبادل الرسائل بين مستخدمي البرنامج على الشبكة - ( عنوان معدل ) was marked as the answer   
    حياك الله أخي abumohamed

    صممت لك غرفة الدردشة المطلوبة

    تفضل Data.zip

    مع وافر الاحترام
  4. محب العلم's post in ترقيم فواتير مخصص was marked as the answer   
    حياك الله

    تفضل التعديل شامل الطريقة الأخيرة

    exampleUpdate2.zip

    مع وافر الاحترام


  5. محب العلم's post in معرفة السعر عن طريق جدول أسعار was marked as the answer   
    وعليكم السلام ورحمة الله وبركاته

    تفضل أخي ibrteeb،

    التعديل المطلوب : price.zip

    مع وافر الاحترام
  6. محب العلم's post in سؤال في قاعدة adp was marked as the answer   
    وعليك السلام أخي أبا الوليد

    الرقم وله أنواع طبعا :
     
    Byte تصبح Tinyint Integer تصبح Smallint Long Integer تصبح Int Simple تصبح Real Double تصبح Float Decimal تصبح Numeric, decimal Money تبقى Money التاريخ/الوقت Date/Time تصبح Datetime, smalldatetime الترقيم التلقائي AutoNumber تصبح Int (Identity) النص text تصبح Varchar, nvarchar المذكرة Memo تصبح Text, ntext نعم / لا Yes/No تصبح Bit
    مع فائق الاحترام
     
  7. محب العلم's post in كيفية تحويل التقويم الميلادى فى اكسس 2007 إلى هجرى was marked as the answer   
    وعليكم السلام ورحمة الله وبركاته

    حياك الله أخي غالي ومعك حق ،

    الطريقة هي في حدث عند التحميل للنموذج التي تريد إظهار أداة التاريخ بالهجري تضع الكود التاالي


    كود Application.SetOption "Use Hijri Calendar", 1  
     
    والنتيجة تكون كما يلي :



    مع وافر الاحترام والتقدير
  8. محب العلم's post in حل تعذر Microsft Access تغيير دليل العمل إلى C:\my document - ( معدل ) was marked as the answer   
    حياك الله أخي الكريم

    المشكلة بسيطة بإذن الله

    أدخل إلى الدائرة في يمين أعلى الشاشة ثم إلى خيارات أكسيس

    ثم انظر إلى اسم المجلد الإفتراضي وهنا تكمن المشكلة وهي إما

    1. أن هذا المجلد يشير إلى موقع غير صحيح يعني موقع ليس فيه برنامج الأكسيس ... أو

    2. أن طول الكلام أكثر من 360 حرفا وهذا ممنوع ايضا



    مع وافر الاحترام
  9. محب العلم's post in كيفية كتابة between في الكود was marked as the answer   
    السلام عليكم

    أخي ابراهيم ،

    الحل هكذا :


    كود If Time >= a And Time <= b Then MsgBox "حياك الله أخي ابراهيم" End If  


    أما بالنسبة للعملية between فإنها تستخدم في جزء where في جملة select

    مع وافر الاحترام
  10. محب العلم's post in لا استطيع كتابة التاريخ عن طريق الكود !!!! was marked as the answer   
    السلام عليكم

    مع شكري وتقديري لأخي منذر عساج على جهوده المتواصلة

    عزيزي ابراهيم ،

    إن ما يحدث هنا هو من الممنوعات المباحة فإستخدام حقل بأسم no أو name أو year أو date في جدول لا يؤدي إلى خطا مباشر في تعريفه في الجدول ولكنه للأسف يؤدي لخطأ قاتل في البرمجة عندما يتم استخدامه كما حدث معك وبل أكثر من ذلك قد يؤدي إلى الخطأ 2456 المشهور والذي ترشدك ميكروسوفت عندما تراجع حيثيات الخطأ بأن تغير أسماء بعض الحقول وهذا الإرشاد غير كافي .

    ما يجب فعله لحل المشكلة هو أن تقوم بتغيير اسم الحقل إلى شيء أخر مثل myno أو myname أو myyear أو mydate على الترتيب ثم تفتح قاعدة بيانات جديدة وتستورد جميع العناصر من السابقة لها وذلك يؤدي إلى اصلاح المشكلة .


    ibraheem.zip

    تذكير : لا تستخدم في أسماء الحقول no أو name أو year أو date

    مع وافر الاحترام والتقدير


  11. محب العلم's post in التحكم بحركات الماوس يمينا ويسارا وأعلى وأسفل was marked as the answer   
    حياك الله اختي نرجس الورد ،

    قمت بعمل مثال لم تطلبين بفكرة من تصميمي غير التي عرضتها لك سابقا

    2003_2007.zip

    مع وافر الاحترام
  12. محب العلم's post in كيف يمكن طباعة تقارير في اكثر من طابعة was marked as the answer   
    السلام عليكم

    حياك الله أخي ،

    إذا كنت تستخدم أكسيس 2002 أو أعلى فمبدئياً لإختيار طباعة محدد نستخدم كود مثل هذا



    كود Set Application.Printer = Application.Printers("HP LaserJet Series II") ولمعرفة الطابعة الحالية المعرفة معياريا نسنخدم


    كود dim strDefaultPrinter as string strDefaultPrinter = Application.Printer.DeviceName ويفضل استخدام المنطق البرمجي الأتي

    كود إقرأ معلومات الطابعة الإفتراضية
    dim strDefaultPrinter as string strDefaultPrinter = Application.Printer.DeviceName ثم عين الطابعة التي تريد الطباعة عليها مثلا هكذا

    Set Application.Printer = Application.Printers("HP LaserJet Series II") إعمل شيئا مثل طباعة تقريرك

    ثم أرجع الطابعة الإفتراضية

    Set Application.Printer = Application.Printers(strDefaultPrinter) أملا منك التجربة وموافاتي بالنتيجة فهناك المزيد من الأكواد المتعلقة بهذا الموضوع

    مع وافر الاحترام
  13. محب العلم's post in تفعيل او عدم تفعيل حقل was marked as the answer   
    وعليكم السلام ورحمة الله وبركاته

    لا أعتقد أنه يوجد حل مباشر كما في النموذج المفرد ، والصعوبة هنا أن طريقة العرض هي نماذج مستمرة لذا وجب التحايل على المسألة

    يمكن استخدام التنسيق الشرطي ولكن من المعروف أنه لا يعمل إلا على text أو combo لذلك عملت مربع نص غير منضم وعملت التنسيق الشرطي عليه وجعلته خلفية لمربع الاختيار

    طبعا عن طريف التنسيق يمكن التمييز بلوني خلفية مختلفين لمربع النص حسب القيمة الموجود في الرصيد ومقارنتها مع الصفر.

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

    علما أننا نستطيع أن نتستخدم ما نشاء دون علاقة بين الحلين يعني ممكن الاستغناء عن مربع النص والتنسيق الشرطي والإبقاء على حدث الدخول، ولكني أحببت تمييز مربع الاختيار عندما يكون محبطا (غير مفعل).

    الملف المعدل : test2.zip

    مع وافر الاحترام
  14. محب العلم's post in كيف تحويل Null في الاستعلام الى القيمة صفر was marked as the answer   
    نعم أخي الشقاوي ، صدقت هي بواسطة nz

    مثلا لو كان عندك متغير a و b وتريد جمعهما

    طبعا في الحقل الذي ستظهر فيه النتيجة يجب أن تضع a + b فتحدث المشكلة التي تذكرها وهي عدم ظهور النتييجة إذا كانت قيمة a او قيمة b هي null

    لحل المشكلة نستخدم الاقتران nz هكذا


    كود
    nz(a,0) + nz(b,0) وهكذا تستبدل القيمة بصفر إذا كانت null لكل من a و b

    ------------

    شرح إضافي ليس له علاقة بسؤالك

    كما يمكن استخدام هذا الاقتران أي nz لإرجاع أي قيمة

    مثلا

    لنفرض "a = "naser

    فإن نتيجة ("nz(a,"samer

    ستكون naser لأن قيمة a ليست null

    أما إذا كانت قيم a هي null فإن النتيجة لتعبير السابق ستكون samer

    -----------------------

    وللتأكد من فهم طرق استخدم الاقتران nz حاول أن تعرف ما هي نتيجة msgbox في البرنامج الأتي :


    كود
    Private Sub Command0_Click() Dim a, b, c  As Integer Dim n As String n = "محب العلم يشكر إخوانه الأعضاء على تفاعلهم مع هذا السؤال" a = Null b = 50 c = Nz(a, 50) + Nz(b, 0) n = Nz(Left$(n, 10), "شكرا") MsgBox n & "يشكرك " & c & Nz(Null, "مرة ") End Sub الجواب الصحيح هومحب العلم يشكرك 100 مرة
    مع وافر الاحترام
  15. محب العلم's post in كيف أجعل ال default value للحقل فى جدول التفاصيل تأخذ آخر قيمة حقل فى was marked as the answer   
    الأخ ميدو طه ،

    السؤال الأول في القيمة الأفتراضية للحقل تضع :


    كود =DLast("[p#]","ph")  


    السؤال الثاني :

    يجب إنشاء العلاقة بشكل صحيح بين الأساس والتفصيل

    تحياتي
  16. محب العلم's post in شرح وضع مفتاح من عدة حقول ( معدل) was marked as the answer   
    حياك الله ،

    هذا مثال مصور MultiFieldKey.rar

    تحياتي


  17. محب العلم's post in طلب كود من الحذف الا عن طريق رقم سري was marked as the answer   
    حياك الله أخي ،

    العملية تتم بفحص كلمة السر في حدث عند الحدف (يعني قبيل الحذف) تضع الكود الآتي :


    كود

    Private Sub Form_Delete(Cancel As Integer) TimerId = SetTimer(0, 0, 1, AddressOf TimerProc) str_Title = "إدخال كلمة المرور" str_Prompt = "الرجاء إدخال كلمة مرور" If InputBox(str_Prompt, str_Title) = "good" Then Exit Sub Else Cancel = True End If End Sub  



    لاحظ هنا أننا من خلال صندوق الادخال InputBox ندخل كلمة السر قبل الحذف فإن كانت صحيحة لا نعمل شيء بمعنى exit sub نخرج من الإجراء، وإن كانت خاطئة نلغي عملية الحذف وذلك عن طريق الكود cancel = true حيث cancel كما تلاحظ هي معلمة الحدث .

    أما بالنسبة لطباعة النجوم عند إدخال كلمة السر في صندوق الإدخال فهذه لوحدها حكاية وهي مرتبطة بالكود الموجود في الوحدة النمطية التي في المثال والتي يتم تفعيلها قبيل طلب صندوق الإدخال بواسطة الجمل الآتية


    كود TimerId = SetTimer(0, 0, 1, AddressOf TimerProc) str_Title = "إدخال كلمة المرور" str_Prompt = "الرجاء إدخال كلمة مرور"  


    إذا أردت حل بسيط جدا بدون النجوم stars (****) التي تظهر مكان كلمة السر يكون الحل هكذا



    كود

    Private Sub Form_Delete(Cancel As Integer) If InputBox("إدخال كلمة المرور", "الرجاء إدخال كلمة مرور") = "good" Then Exit Sub Else Cancel = True End If End Sub  


    وبإمكانك في هذه الحالة حذف الوحدة النمطية

    delete.rar

    أنصحك بالحل الكامل وهو الحل الأول



    تحياتي لك
  18. محب العلم's post in نقل محتويات مجلد من مسار إلى آخر was marked as the answer   
    الاخ حسن محمد ،

    وأخيرا توصلت إلى الحل المطلوب وهو هكذا




    Private Sub Command1_Click() Dim FSO As Object, fsoFolder As Object Dim strOldFolder As String Dim strNewFolder As String 'Set variables Set FSO = CreateObject("Scripting.FileSystemObject") strOldFolder = Me.FromFolder strNewFolder = Me.ToFolder 'Test for folder existence If FSO.FolderExists(strOldFolder) Then Set fsoFolder = FSO.GetFolder(strOldFolder) 'Check for new folder existence, create if not If Not FSO.FolderExists(strNewFolder) Then FSO.CreateFolder (strNewFolder) End If 'Copy folder contents On Error Resume Next FSO.CopyFolder Source:=strOldFolder, Destination:=strNewFolder End If End Sub

    وإليك المثال : CopyFolder.rar

    تحياتي


  19. محب العلم's post in لا يعمل الاستعلام إلا بعد ادخال سجل الابن؟! was marked as the answer   
    تفضل أخي سامي : samiUpdatev3.rar

    تحياتي
  20. محب العلم's post in الغاء كلمة المرور في الاكسس 2007 was marked as the answer   
    السلام عليكما

    أخي أبا أكرم (أكرمك الله) وشكرا لك

    أخي أبا نجود سأنجدك بإذن الله

    لعمل الباسورد اتبع الخطوات الأتية واهمها الأولى أن تفتح القاعدة في الوضع الخاص









    ولإلغاء الباسورد عندما تكون معينة كما يأتي



    تحياتي
  21. محب العلم's post in ادخال جديد للجدول عن طريق insert into - (عنوان معدل) was marked as the answer   
    تفضل worker.rar


  22. محب العلم's post in ترقيم الصفحة اسفل التقرير لا يعمل عندما يكون النموذج و التقرير منبثقان was marked as the answer   
    وهذا المثال لنموذج وتقرير منبثقان


    SL20875.rar


    تحياتي
×
×
  • اضف...

Important Information