اذهب الي المحتوي
أوفيسنا

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

كل منشورات العضو jjafferr

  1. حياك الله 🙂 على بركة الله 🙂 جعفر
  2. بالعكس ، الفكرة جدا جميلة ، وتُظهر براعة المبرمج وفهمه في تسهيل امور المستخدم 🙂 انا شفت مجموعة من البرامج ، لما يفتح البرنامج ، نرى نموذج فارغ (شاشة بيضاء) ، ولا يوجد اي شيء ممكن ان يعمله المستخدم سوى الخروج من النموذج !! بينما الفكرة هنا ، ان نغير اعدادات النموذج : لجعل النموذج يقبل ادخال البيانات me.DataEntry = True me.allowedits = true me.allowadditions = true . هكذا فيتحول النموذج الى نموذج ادخال بيانات 🙂 جعفر
  3. وعلشان يستفيد الجميع 🙂 1. بدأنا في الاستعلام ، فما ممكن ان نكتب اسم الحقل ، ثم نشير الى نفس الحقل في المعادلة (لأنه سيشكل حلقه LOOP في الحصول على النتيجة) : 2. في التقرير ، عينا ولنفس السبب ، فما ممكن ان نكتب اسم الحقل ، ثم نشير الى نفس الحقل في المعادلة (لأنه سيشكل حلقه LOOP في الحصول على النتيجة) : طبعا بإمكاننا ان نعطي الحقل اي اسم ، مثل ZZ ، ولكن حذاري ، فدائما استخدم اسم يعطي معنى للحقل/المتغير ، علشان بعد سنة لما تريد تعدل على الكود ، الاسماء تكون واضحة ولها معنى 🙂 جعفر
  4. السلام عليكم 🙂 لو تتبعت التاريخ لما يدخل في دالتي ، لوجدت انه غير الذي تم ارساله ، ولم استطع معرفة السبب !! لهذا السبب ، استعمل نفس دالة التجربة التي استعملتها انت ، ولكن ارسل التواريخ الى دالتي اولا ثم الى دالتك ، وسترى ان النتيجة صحيحة ، يعني : بدلا عن ارسال التواريخ الى دالتك اولا Debug.Print YMD_Diff(Date1, Date2) , YMDDif(Date1, Date2) ارسل التواريخ الى دالتي اولا Debug.Print YMDDif(Date1, Date2) , YMD_Diff(Date1, Date2) . جرب Sub Test2() Dim Date1 As Date Dim Date2 As Date Dim yy As Integer, mm As Byte, dd As Byte Debug.Print "YMDDif" ,"YMD_Diff" Date1 = DateSerial(1970, 2, 28) Date2 = DateSerial(1970, 3, 1) Debug.Print YMDDif(Date1, Date2) , YMD_Diff(Date1, Date2) Date1 = DateSerial(1970, 1, 31) Date2 = DateSerial(1970, 2, 27) Debug.Print YMDDif(Date1, Date2) , YMD_Diff(Date1, Date2) 'Debug.Print "--------------------" 'Debug.Print YMD_Diff(Date1, Date2, yy, mm, dd) 'Debug.Print yy, mm, dd 'Debug.Print "--------------------" 'Debug.Print YMD_Diff(Date1, Date2, yy, mm, dd, True) 'Debug.Print yy, mm, dd 'Debug.Print "--------------------" End Sub . لهذا السبب ، لما ارسلت التواريخ مباشرة الى الدالة ، كانت النتائج صحيحة : . ------------------------------------------------------------------------------------------------ ولكن هذا الكلام كله صار بسبب قولك : وفي الواقع تم اثبات ان الاكسس لا يعطي نتائج خطأ بين التاريخين ، وإنما الخطأ كان في دالتك اللي في اول مشاركة لك . وللعلم ، فتجاربك في مشاركتك الاخيرة ، ليست على دالتك الاصل (والتي اثارت كل هذا النقاش) ، وانما على دالتك التي قمت بتعديلها 🙂 ومثل ما قلت سابقا ، طريقة عمل دالتك جميلة 🙂 جعفر
  5. لا وانت الصادق ، قصدك واضح في مشكلة 🙂 كما ذكرت في مشاركتي السابقة ، الكود موجود في هذا الرابط : Public Function YMDDif(sDate1, sDate2) 'sdate1 earliest date sdate2 later Dim iYear As Integer Dim iMonth As Integer Dim iDay As Integer Dim dInterim1 As Date Dim D As Integer Dim M As Integer Dim Y As Integer iMonth = DateDiff("m", sDate1, sDate2) If Day(sDate1) > Day(sDate2) Then iMonth = iMonth - 1 End If dInterim1 = DateAdd("m", iMonth, sDate1) iDay = DateDiff("d", dInterim1, sDate2) D = iDay M = iMonth Mod 12 Y = iMonth \ 12 YMDDif = CStr(Y) & " س/" & CStr(M) & " ش/" & CStr(D) & " ي" End Function جعفر
  6. جميل 🙂 انت استبدلت مكان الحقلين في الاستعلام ، بحيث وضعت الحقل "التسلسل داخل" الذي فيه القيم كاملة اولا ، ثم الحقل "التسلسل خارج" الذي القيم فيه غير كامله ثانيا : . ولكنك لم تنتبه الى ما قاله صاحب الموضوع : فجوابك يصلح للسيناريو الموجود حاليا ، ولكن لما يصير العكس ، فطريقتك لن تعمل 🙂 جعفر
  7. 1. عملك كان شيء جديد وجميل ، وقمنا بالاعجاب به ، 2. المشكلة انك تقول انها انها ليست دالتك ، بينما انت الذي قمت بعمل التغيير عليها ، فنتائجها خاضعة لتغييراتك ، لهذا السبب اردت ان اثبت لك ان دالتي الاصل (طبعا المأخوذة من مساعد الاكسس ، والتي عملت عليها تغييرات) تعطي النتائج الصحيحة. جعفر
  8. السلام عليكم 🙂 الكود باللون الاصفر يعمل تغيير معين في ريجستري الكمبيوتر (لا اعرف هذا التغيير) ، ولا علاقة له بالنسخ 🙂 جعفر
  9. من المعروف ان Null قيمته اقل من الارقام ، لذا يجب ان نحتال على الاكسس ، حتى نظهر الارقام (بالتسلسل التصاعدي) فوق الخانات الفارغة Null ، فاللي عملته للحقلين ، هو تغيير اسم الحقلين (بإضافة الرقم 2 عليهم) ، ثم عمل معادلة ، بحيث نطلب من اكسس ان يستبدل الخانة الفارغة بالحرف A : . والنتيجة تصبح مثل ما نريد : . والان في التقرير ، نطلب من الحقل ان يغير القيمة A الى فراغ (حتى نخفي A ) (رجاء ملاحظة تغيير اسماء الحقول مرة اخرى) ، مع استعمال الحقلين للفرز (انظر اسفل التقرير) : . والنتيجة : . جعفر 1212.TEST_QUERY.accdb.zip
  10. اخي حسام 🙂 ليش الاعتذار ، هي تجربة انت قمت نها !! جعفر
  11. حياك الله 🙂 معلش ، خذني على قدر عقلي ، فأنا فهمي ضعيف 🙂 واكتب لي مثال في الاكسل لوسمحت وارفقه هنا 🙂 شو الموجود حاليا ، وشو اللي لازم يصير 🙂 جعفر
  12. وعليكم السلام 🙂 وقد تستفيد من هذه الروابط : . جعفر
  13. وعليكم السلام 🙂 نفترض ان حقل اليوم هو iDate ، وحقل العطلة هو iLeave ، عليه ، ممكن نضع هذا الكود على حدث "بعد تحديث" iDate : select case me.iDate case "Friday" , "Saturday" , "الجمعة" , "الجمعه" , "السبت" me.iLeave ="عطله رسمية" else case me.iLeave ="" end select . اما اذا اردت ان تجعلها في استعلام ، فيمكن استعمال الكود التالي للحقل iLeave : iLeave: iif([iDate]="Friday" or [iDate]="Saturday" or [iDate]="الجمعة" or [iDate]= "الجمعه" or [iDate]="السبت" ,"عطلة رسمية" , "") جعفر
  14. السلام عليكم 🙂 الدالة موجودة في اكثر من موضوع ، منها : . وانا قلت: . . . لا تعليق لدي على دالة اخي Hawiii ونتائجها . ولكن هناك خطأ في حساب اخوي ابو تراب ، فالمواقع التالية اعطتنا هذه النتائج: . و . و . عندما ادخلت هذه التواريخ على دالتي الاصلية ، حصلت على نفس النتيجة : . هذا الكلام جدا خطير ، وغير مقبول على الاطلاق !! حيث ان معظم مؤسسات وشركات العالم قائمة في حساباتها على البرامج ، ولا يمكن ان يكون هناك خطأ حتى بمقدار ساعة واحدة ، وإلا فحقوق الناس ستذهب هباءً !! المؤسسات وشركات العالم تدفع الملايين على برامجها حتى لا تقع في مثل هذا الخطأ ، ونحن نرفع هذا الكود ، مثله مثل بقية الاكواد والبرامج التجريبية ، و نوادر وتجارب سنين ، بالمجان 🙂 شكرا للأخ الاستاذ @محمد طاهر ان وفر لنا هذا المنتدى ، و بالمجان ، لنساعد اخواننا في طلب العلم ، ونحصل على الثواب الجزيل 🙂 جعفر
  15. السلام عليكم 🙂 اعتقد اخوي @ابوخليل عنده معرفة في هذا الموضوع اكثر مني 🙂 جعفر
  16. السلام عليكم 🙂 . . ثم في التقرير : . والنتيجة : . اما الطريقة الثانية : انا اعتذر ، كنت اعتقد بأن Combobox موجود عندك في النموذج ، ولكن الظاهر انك عملت Lookup للحقل في الجدول (وهذه الطريقة لا يُنصح بها لمشاكلها ، ومنها ما تواجهه انت الآن) !! فالطريقة اننا نحول الحقل في التقرير الى Combobox ، ثم نأخذ طريقة بيانات الحقل من الجدول ، ونضعه في حقل التقرير : . والنتيجة كذلك: . اما هذه رجاء تشرحها بمثال وبأرقام ، لأني ما سمعت بهكذا عمل سابقا 🙂 جعفر 1212.TEST_QUERY.accdb.zip
  17. السلام عليكم 🙂 اذا لاحظت المثال الذي ارفقته انا ، فعملت مجلد داخل مجلد ، مثل D:\Testing\Data_Folder ، لهذا السبب هناك كود لكل مجلد : dim myFolder as string عمل المجلد الاول' Testing myFolder= "D:\Testing" if len(dir(myFolder, vbDirectory))=0 then mkdir myFolder end if عمل المجلد التالي' Data_Folder myFolder= myFolder & "\Data_Folder" if len(dir(myFolder, vbDirectory))=0 then mkdir myFolder end if لذلك ، يجب عليك عمل المجلد الخارجي اولا Testing (او على الاقل التأكد انه موجود ، و الكود اذا لم يجد المجلد ، فإنه يعمله) ، وبعدها تعمل المجلد الذي بداخله Data_Folder (وكذلك الكود اذا لم يجد المجلد ، فإنه يعمله) 🙂 بالنسبة الى لمجلدات التي اردتها انت ، فيمكن عملها كما قال اخي حسام ، هكذا : Private Sub btn17_Click() Dim str_folder As String str_folder = CurrentProject.Path & "\fails" If Len(Dir(str_folder, vbDirectory)) = 0 Then MkDir (str_folder) End If str_folder = str_folder & "\" & Format(Me.num, "0000000") ' folder to open If Len(Dir(str_folder, vbDirectory)) = 0 Then MkDir (str_folder) End If Call Shell("explorer.exe " & str_folder, vbNormalFocus) End Sub جعفر
  18. طيب بالنسبة لأولا : اعمل لكل تاريخ Combobox في التقرير ، بحيث يكون بنفس طريقة الـ Combobox اللي في النموذج (وممكن تعمل نسخة منه من النموذج وتلصقه في التقرير) 🙂 جعفر
  19. وعليكم السلام 🙂 انا صرت ما ارد على الاسئلة اللي مافيها شرح وافي في الموضوع ، ولا اريد ان انزل المرفق ، وبعدين يتضح لي اني ما اقدر ارد على السؤال 🙂 جعفر
  20. وعليكم السلام 🙂 اهلا وسهلا بك في المنتدى 🙂 علشان نعمل المجلد: D:\Testing\Data_Folder على حدث النقر على الزر ، اكتب هذا الكود : dim myFolder as string myFolder= "D:\Testing" if len(dir(myFolder, vbDirectory))=0 then mkdir myFolder end if myFolder= myFolder & "\Data_Folder" if len(dir(myFolder, vbDirectory))=0 then mkdir myFolder end if جعفر
  21. السلام عليكم 🙂 اخي ازهر : اذا عندك المريض A في المستشفى ، ثم خرج من المستشفى ، ثم عاد مرة اخرى !! طريقتك لن تسمح له ، لأن اسمه موجود على القائمة 🙄 لذا انصحك ان تعمل حقل "تاريخ الخروج" من المستشفى ، او موجود/غير موجود ، واللي على اساسه تتم التصفية كذلك 🙂 جعفر
  22. تمت الاجابة على هذا السؤال هنا : https://www.officena.net/ib/topic/93414-تصدير-بيانات-أكسس-إلى-جدول-في-الوورد/?do=findComment&comment=617621 جعفر
  23. السلام عليكم 🙂 للعلم ، انا اضفت الزبون رقم 5 للجدول T_oldprom 🙂 لو استعملنا الاستعلام التالي ، لحصلنا على جميع الاحتمالات (استعلام مجاميع) ، لاحظ اننا ما عملنا علاقة بين الجدولين : . . والآن نضيف استعلام فرعي على الاستعلام اعلاه ، في هذا الاستعلام الفرعي ، نطلب منه ان لا يعطينا القيم الموجودة في الجدول T_oldprom 🙂 الاستعلام التالي يعطيك ارقام الهدايا الفارغة لكل زبون : . SELECT T_oldprom.CusCode, T_ConditionType.ConditionID FROM T_ConditionType, T_oldprom GROUP BY T_oldprom.CusCode, T_ConditionType.ConditionID HAVING (((T_oldprom.CusCode) Not In (SELECT T_old.CusCode FROM T_oldProm AS T_old WHERE T_old.CusCode = T_oldprom.CusCode AND T_old.ConditionType = T_ConditionType.ConditionID))) ORDER BY T_oldprom.CusCode, T_ConditionType.ConditionID; . والنتيجة : جعفر 1211.No_Match.accdb.zip
  24. اولا: شو اسم مربع السرد ، ثانيا: بأي حقل تريد الفرز التصاعدي ؟ جعفر
×
×
  • اضف...

Important Information