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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    415

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

  1. وعليكم السلام واهلا وسهلا بك في المنتدى تفضل: Account_Pending_Days: IIf(Len([Payment_Date] & '')=0;Time()-[Account_Receiving_Date];[Account_Receiving_Date]-[Payment_Date]) ولكني اعتقد بانه يجب عليك استخدام Date() بدلا عن Time() ليصبح الكود Account_Pending_Days: IIf(Len([Payment_Date] & '')=0;Date()-[Account_Receiving_Date];[Account_Receiving_Date]-[Payment_Date]) جعفر
  2. وعليكم السلام نعم ممكن: في تصميم التقرير ، في اعدادات الصفحة: . وللعلم ، فإن هوامش الطابعة سوف تضاف الى العرض ايضا ، ولا يمكن عمل هوامش الطابعة = صفر (إلا في الطابعات الافتراضية) ، وبعد عمل جميع الاعدادات وضبط عرض التقرير ، وللتأكد ان عرض التقرير سيُطبع على حجم الورقة التي تم اختيارها ، انظر الى اسم التقرير الموجود في اعلى يسار التقرير (البضاعة في مثالنا اعلاه) ، انظر تحته ، فإذا رأيت مثلث اخضر صغير ، فمعناه ان عرض التقرير اكبر من عرض الورقة وعادة عملنا يفرض علينا طباعة تقارير باحجام اوراق مختلفة ، والطابعات هذه الايام تأتي بعدة ادراج لمختلف احجام الورق ، فيمكنك بالطريقة التالية عمل اعدادات الطابعة لطباعة هذا التقرير بحجم A5 وعلى ورق A5 من الرج رقم 2 من الطابعة HP8500 مثلا: . جعفر
  3. السلام عليكم الطريقة الصحيحة للبرمجة: 1. حقل الرقم التلقائي ، هو فهرسة لسرعة جلب بيانات الجدول للبرنامج ، يعني هذا الحقل يجب ان لا يعتمد عليه المبرمج وانما هو للبرنامج (نعم تستطيع استعماله متى ما شئت بالوضع الذي هو عليه) ، 2. حقل التسلسل ، وهو الحقل الذي يعمله البرنامج حسب حاجته فالآن انت خلطت بين الاثنين والحل ان تترك هذا الحقل مثل ماهو ، ولا تهتم بارقامه ، واعمل حقل جديد تعتمد عليه لبرنامجك جعفر
  4. وعليكم السلام يجب عليك تغيير اسم المسار والمجلد ، الى مسار ومجلد موجود عندك في الجهاز ، هذه الرسالة تقول بأنك تريد حفظ الملف في مسار/مجلد غير موجود ، والمسار حسب الكود هو: c:\temp جعفر
  5. بالعكس اخوي شفان ، انا دائما ارحب اكثر من مشاركة في الموضوع ، فبهذه الطريقة الاجابات تكون مختلفة ، وهاي فائدة للجميع جعفر
  6. وعليكم السلام 1. انا غيّرت الحقل "رقم السند" الى نص ، 2. هذه الوحدة النمطية تقوم بعمل الترقيم Function Next_Seq(T As String) As String 'T = Type نوع السند 'A = سند ايردات 'M = سند مصروفات 'S = سند سداد 'G = سند قبض myGroup = "A = سند ايردات" & vbCrLf & _ "M = سند مصروفات" & vbCrLf & _ "S = سند سداد" & vbCrLf & _ "G = سند قبض" If Len(T & "") = 0 Then MsgBox "يجب ان يكون نوع السند" & vbCrLf & "A او M او S او G" & vbCrLf & vbCrLf & myGroup Exit Function ElseIf T <> "A" And T <> "M" And T <> "S" And T <> "G" Then MsgBox "يجب ان يكون نوع السند" & vbCrLf & "A او M او S او G" & vbCrLf & vbCrLf & myGroup Exit Function Else Next_Seq = Nz(DMax("Mid([رقم السند], 2)", "السندات", "Mid([رقم السند], 1, 1) = '" & T & "'"), 0) Next_Seq = T & Format(Next_Seq + 1, "00000") End If End Function وكلما اردت ان تحصل على رقم جديد في نموذجك ، اكتب هذا الكود: تذكر 'A = سند ايردات 'M = سند مصروفات 'S = سند سداد 'G = سند قبض me.[رقم السند]= Next_Seq("A") جعفر 698.3333.mdb.zip
  7. 1. ابدأ بعتاب ، المادة رقم 2 2. تأكد انك لم تختار الارقام العشوائية من اعدادات الحقل في الجدول ، فالصورة تعطيك الاعداد الصحيح: 3. هذه الارقام غير عشوائية ، وانما انت لم تعمل فرز بهذا الحقل ، فاعمل الفرز ، واعمل رقمين التاليين ، وستلاحظ انها ليست عشوائية اما اذا كانت هناك مجموعة كبيرة من الارقام غير موجودة ، والرقم التالي يكون كبير ، فاحذف الرقم الكبير ، واعمل كما قال أخونا ابو عبدالله اعلاه جعفر
  8. 1. نعم ، لأنك استخدمت رقم العميل ، واللي هو حقل رقم ، بينما لا يمكنك استخدام اسم العميل (حقل نص) بنفس الطريقة ، 2. عرض التقرير اعرض من الورقة ، لذا لازم تضيقه علشان التقرير ينطبع في ورقة واحدة جعفر
  9. الطريقة الصحيحة لأكثر من معيار: Private Sub cmd_Print_Click() Criti = "[رقم الفاتورة]=" & Me.[رقم الفاتورة] Criti = Criti & " And [اسم العميل]='" & Me.[اسم العميل] & "'" DoCmd.OpenReport "فاتورة مبيعات", , , Criti End Sub Private Sub cmd_Print_Preview_Click() Criti = "[رقم الفاتورة]=" & Me.[رقم الفاتورة] Criti = Criti & " And [اسم العميل]='" & Me.[اسم العميل] & "'" DoCmd.OpenReport "فاتورة مبيعات", acViewPreview, , Criti End Sub جعفر
  10. وعليكم السلام قد يفيدك هذا الرابط جعفر
  11. السلام عليكم اخي سلمان انا قبل ان اعمل تعديل على النموذج ، آخذ نسخة منه ، وبسبب عدم التوضيح مني ، انت تستخدم النموذج النسخة من ن_ادخال_العروض !! رجاء استخدام النموذج ن_ادخال_العروض ، لتحصل على: جعفر
  12. وعليكم السلام اخي وضاح السؤال هو ، في اي نموذج ، في اي حقل ، هل السنة لها علاقة بالموضوع جعفر
  13. انا اعتذر منك ، لم اجرب الكود قبل ان اضعه لك واليك التغيير ، بعد التجربة: Dim rst As DAO.Recordset Dim C 'As Integer Set rst = CurrentDb.OpenRecordset("Select * From qry_workscope_utility") rst.MoveLast: rst.MoveFirst rst.MoveNext C = rst!VisitNo rst.MovePrevious rst.Edit If C <> "NA" Then rst!VisitNo = C + 1 End If rst.Update rst.Close: Set rst = Nothing Me.frm_WORKSCOPE.Requery جعفر
  14. بالنسبة الى الخطأ ، اعملي هذا التغيير على السطر rst!VisitNo = IIf(IsNumeric(C), C + 1, "") والآن عندك كودين يشتغلون ، وانتي اختاري الكود اللي يريحك جعفر
  15. بالنسبة للتغيير اللي انتي عملتيه ، استخدمي التعديل التالي ، وراح يشتغل الكود Dim rst As DAO.Recordset Dim RC 'As Integer Dim C 'As Integer Set rst = CurrentDb.OpenRecordset("Select * From qry_workscope_utility") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount rst.MoveNext C = rst!VisitNo rst.MovePrevious If C = "NA" Then Else ' If IsNull(Form_frm_WORKSCOPE.VisitNo) Or Form_frm_WORKSCOPE.VisitNo = "" Then rst.Edit rst!VisitNo = C + 1 rst.Update Me.frm_WORKSCOPE.Requery 'End If End If rst.Close: Set rst = Nothing جعفر
  16. غيري السطر rst!VisitNo = C + 1 الى rst!VisitNo = IIf(C = "NA", "", C + 1)
  17. 1و2. تمام بس اكتبي السطر التالي في النهاية Me.frm_WORKSCOPE.Requery جعفر
  18. وعليكم السلام تفضلي Dim rst As DAO.Recordset Dim RC As Integer Dim C As Integer Set rst = CurrentDb.OpenRecordset("Select * From qry_workscope_utility") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount rst.MoveNext C = rst!VisitNo rst.MovePrevious rst.Edit rst!VisitNo = C + 1 rst.Update rst.Close: Set rst = Nothing جعفر
  19. تفضل Dim a() as string x = "852 ,123, 456, 789, 741" 'بدل ان يكون عندنا سطر للمتغير 'x 'اعمله اعمدة للمتغير 'a 'Array 'بحيث يكون فصل كل كلمة بعد الفاصلة a=split(x,",") 'خلينا نشوف قيم المتغير 'a 'من اول سطر فيه ، وهو صفر ، الى اخر سطر فيه 'Lower Bound(a) to Upper Bound(a) for i=lbound(a) to ubound(a) if a(i)=789 then msgbox "found 789" end if next i جعفر
  20. وعليكم السلام Dim a() as string x = "852 ,123, 456, 789, 741" a=split(x,",") for i=lbound(a) to ubound(a) if a(i)=789 then msgbox "found 789" end if next i جعفر
  21. وهنا شرح كيف تستطيع ان تعمل التصفية بنفسك جعفر
  22. وعليكم السلام هلا والله بولد بلادي رجاء تخبرنا اي نموذج تتكلم عنه ، واسم زر الطباعة ، وايش الطريقة اللي لازم نتبعها علشان نوصل للي تريده ، يعني يُفضل مثال لوسمحت جعفر
  23. وعليكم السلام تفضل: لقياس سرعة تنفيذ المجموعة 1 ....كود t = timer ....كود t1 = timer - t ' الوقت بالثواني ....كود لقياس سرعة تنفيذ المجموعة 2 ....كود t = timer ....كود t2 = timer - t ' الوقت بالثواني ....كود . هكذا ، t1 و t2 و ... يعطوك وقت تنفيذ كل مجموعة ولكن اخذ اكثر من قراءة واحدة لكل مجموعة ، ثم اخذ المعدل. جعفر
  24. اعتذر عن هذا الخطأ جرب المرفق جعفر 694.مثال على البرنامج 1.accdb.zip
×
×
  • اضف...

Important Information