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

AbuuAhmed

الخبراء
  • Posts

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

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

  • Days Won

    17

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

  1. ممتاز وشكرا لك، إذا هو نفس نظام ميزان أخونا إبن فلسطين فعملنا سليم في حساب الوزن ويبقى الخطأ في رمز الصنف والذي يجب أن يعدل من 7 خانات إلى 5 خانات. هل بإمكان إبن فلسطين أن يطبع لنا ملصق لنفس الصنف من ميزانين مختلفين؟ أعتقد أخي إبن فلسطين أن تطبيقك خاطئ، الباركود بعد التركيز على خانة الباركود أعلى مسميات الحقول وليس تحتها.
  2. العادة تكون التجارب على نموذج واحد، وعند نجاح التجارب تطبق التعديلات على النماذج الأخرى. عملت طريقة لتقليل حجم التخزين للبيانات وذلك بتقليص طول رمز الصنف إلى طول 7 خانات فقط في كل من جدول الأصناف وبيع أصناف. الطريقة أن هناك طريقتيت للإدخال الأولى أعلى مسميات الحقول وهذا مخصص للقارئ، والآخر هو الطريقة العادية المباشرة في قسم التفاصيل. عند اختلاف طول رمز الصنف عن طول الباركود هناك طريقين أما بالطريقة التي أنا طبقتها الآن أو بتوسيع طول رمز الصنف من 7 خانات إلى 13 خانة وهذا يعتبر عيب برمجي. Database1_03.mdb
  3. جرب النموذج بعد التعديل. وهناك ملاحظات كثيرة، أؤجلها إلى الليلة إن شاء الله تعالى. ملاحظة: لا يوجد لدي قارئ الباركود، لذلك التجارب عليكم. Database1_02.mdb
  4. ما أقدر أفتحها، إذا استطعت تحويلها إلى إصدار 2007 أو أقل سأقوم بالمحاولة إن شاء الله تعالى.
  5. غير متأكد ، عدل في هذا الحدث: Private Sub Form_Load() If Me.RecordsetClone.RecordCount = 0 Then DoCmd.GoToRecord , , acNewRec End If End Sub أو عطله تماما.
  6. إذن الوزن سنحصل عليه باستخدام المعادلة التالية: NetWt = Mid(BarCode, 8, 5) / 1000 ورمز الصنف: ItemCode = Left(BarCode, 7) وهذا جدول به المقارنات:
  7. الصورة الأخيرة ما استفدنا منها لأن السعر والوزن غير كاملين. أعتقد أول رقم من اليمين جزء من الوزن ولكن يبقى احتمال أنه مهمل.
  8. أخي حتى نفك لغز الباركود زودنا بأكثر من ملصق لأصناف مختلفة وأسعار مختلفة.
  9. أخي الفاضل .. ركز معي بيانات الملصق شيء وبيانات الباركود شيء آخر.
  10. أنا لست من أصحاب الخبرة اللقب أعطوني إياه بالخطأ ومشاركتي في موضوعك لقافة. عندي مشكلة أن الأكسس عندي 2007 ، ارفع لي نسخة بنفس الإصدار ربما تكون مشاركتي مع زملائي أكثر نفعا. أخي أنت صاحب الموضوع ولكن أعتقد "وسامحني على كلامي" أنك لا تعلم ما يحتويه الباركود من بيانات، والله أعلم هو لا يحتوي إلا على معلومتين فقط الوزن ورمز الصنف. وأتصور أن الميزان وظيفته معرفة الوزن ورقم الصنف يختاره الموظف الموزن يدويا وباستخدام برنامج وسيط لعمل الملصقات مرتبط بنفس قاعدة البيانات ولكن الباركود يقتصر على المعلومتين الوزن والرمز وجهاز الكاشير سيأتي بباقي البيانات من نفس قاعدة البيانات عن طريق رقم الرمز بالباركود. الآن فقط على الزملاء تقسيم الباركود إلى جزئين ، فجزء الوزن يقسم على 10000 والجزء الثاني هو رقم الصنف والمكون من 7 خانات ثم يجربوا. أعتقد بدون "الإنتر" من القارئ يمكن الإستفادة من حدث عند التغيير، وبالإنتر يمكن الإستفادة من حدث بعد التحديث. وأنا الصراحة هذه الأيام مزاجي متعكر وربما أكتفي بالتعليقات والإشارات البسيطة. الآن ورد في خلدي أن أول رقم من اليمين في الباركود هو موقع "." الفاصلة المئوية في الوزن، والله أعلم.
  11. أضفت كود حذف الفاتورة والمفترض عند حذف الفاتورة سيقوم بحذف الأصناف آليا لأنه مرتبط بعلاقة في الجداول. جرب الآن: Private Sub Command16_Click() Dim invRst As Recordset Dim itmRst As Recordset Dim DocID As Long On Error Resume Next If vbNo = MsgBox("هل تريد حذف الفاتورة الحاليه ؟؟؟", vbYesNo + _ vbCritical + _ vbMsgBoxRight + _ vbDefaultButton2, "تحذير") Then Exit Sub End If Set itmRst = CurrentDb.OpenRecordset("Stor1", dbOpenDynaset) Set invRst = Me.frmPurches.Form.RecordsetClone invRst.Filter = "Add_doc=" & Me.Add_doc Set invRst = invRst.OpenRecordset With invRst .MoveFirst Do While Not .EOF itmRst.FindFirst "Number1='" & !Number & "'" If Not .NoMatch Then itmRst.Edit itmRst!currentRased1 = itmRst!currentRased1 - !Qty_in itmRst.Update End If .MoveNext Loop End With If (Not Me.NewRecord) Then DoCmd.RunCommand acCmdDeleteRecord End If Set invRst = Nothing Set itmRst = Nothing End Sub
  12. على الهامش: أعتقد أن أول ستة أرقام من اليمين هي للوزن وأن أول سبعة أرقام من اليسار هي لرمز الصنف أن القارئ يقرأ ويلصق الباركود كوظيفة رئيسة أما عملية الإدخال "الإنتر" فهي اختيارية حسب عملية الضبط للقارئ.
  13. إذا لم يكن يوافق المطلوب ، أرجو التوضيح أكثر Percentages_01.xlsx
  14. جرب هذا الكود Private Sub Command16_Click() Dim invRst As Recordset Dim itmRst As Recordset If vbNo = MsgBox("هل تريد حذف الفاتورة الحاليه ؟؟؟", vbYesNo + _ vbCritical + _ vbMsgBoxRight + _ vbDefaultButton2, "تحذير") Then Exit Sub End If Set itmRst = CurrentDb.OpenRecordset("Stor1", dbOpenDynaset) Set invRst = Me.frmPurches.Form.RecordsetClone invRst.Filter = "Add_doc=" & Me.Add_doc Set invRst = invRst.OpenRecordset With invRst invRst.MoveFirst Do While Not .EOF itmRst.FindFirst "Number1='" & !Number & "'" If Not .NoMatch Then itmRst.Edit itmRst!currentRased1 = itmRst!currentRased1 - !Qty_in itmRst.Update End If .MoveNext Loop End With Set invRst = Nothing Set itmRst = Nothing End Sub
  15. فحص لكلامي: Sub TestPeriods() Dim DateFm As Date Dim DateTo As Date DateFm = DateSerial(1583, 1, 1) DateTo = DateSerial(9999, 12, 31) Debug.Print GetYears(DateFm, DateTo) Debug.Print (DateTo - DateFm + 1) / 365.25 Debug.Print (DateTo - DateFm + 1) / 365.2425 End Sub النتائج 8417 8416.82683093771 8416.99966460639
  16. هذه دالة تقوم بفرز الأيام البسيطة عن الأيام الكبيسة من شروطها أن يكون يوم النهاية من ضمن الفترة يعني لحساب إجازة لابد إدخال آخر يوم في الإجازة وليس أول يوم مباشرة بعد الإجازة. Function GetYears(ByVal DateFm As Long, ByVal DateTo As Long) As Double Dim Leap004 As Long Dim Leap100 As Long Dim Leap400 As Long Dim LeapYears As Long Dim SmblYears As Long Dim Leap As Long Dim Smbl As Long Dim LeapFm As Long Dim SmblFm As Long Dim inDate As Long Dim yy As Integer 'Years between 102 And 9999 If DateFm < DateSerial(102, 1, 1) Or _ DateTo < DateSerial(102, 1, 1) Then Exit Function 'Swapping If DateFm > DateTo Then inDate = DateFm DateFm = DateTo DateTo = inDate End If '------------------ DateFm = DateFm - 1 '------------------ inDate = DateFm GoSub Calculate LeapFm = Leap SmblFm = Smbl '------------------ inDate = DateTo GoSub Calculate Leap = Leap - LeapFm Smbl = Smbl - SmblFm '------------------ GetYears = (Leap / 366) + (Smbl / 365) Exit Function '------------------ Calculate: yy = Year(inDate) - 1 Leap004 = Fix(yy / 4) Leap100 = Fix(yy / 100) Leap400 = Fix(yy / 400) LeapYears = Leap004 - Leap100 + Leap400 SmblYears = yy - LeapYears Leap = CLng(LeapYears * 366) Smbl = CLng(SmblYears * 365) ' Day(DateSerial(yy + 1, 3, 0)) If day(DateSerial(yy + 1, 3, 1) - 1) = 29 Then Leap = Leap + (inDate - DateSerial(yy, 12, 31)) Else Smbl = Smbl + (inDate - DateSerial(yy, 12, 31)) End If Return End Function
  17. أخي دع عنك استخدام هذه الحسبات (سنة/شهر/يوم) فلن تجد أي دالة في الدنيا ترضيك وكلامي من خبرة طويلة في هذه الأمور. استخدم المدد كأرقام عشرية بتقسيم الأيام على 365.25 للمدد القصيرة (حتى أربع سنوات) وتقسيمها على 365.2425 للمدد الطويلة.
  18. 😁 وضح مطلوبك بالتفصيل ، الأمر هين ، سأرجع لك بعد الغدا إن شاء الله ، ألا إذا كنت مستعجل فعلى الزملاء بالفزعة وعدم انتظاري.
  19. في حدث فتح التقرير أضفت لك سطر التركيز على صندوق نص البحث Private Sub cmd_Print_rpt_Click() Me.txtsearch.SetFocus DoCmd.OpenReport "Report0", acViewPreview End Sub
  20. لم تتحدث عن هذه النقطة مث قبل أخي. سألقي نظرة أخرى على المثال.
  21. تعاملت مع أكثر من برنامج محاسبة بعضها ضمن أنظمة إدارة الموارد ، وكلها تفصل بين جداول المستندات وجدول العمليات المحاسبية للعمليات/المستندات المرحلة فقط. وبهذا أثناء إدخال البيانات للمستندات لا تشكل هاجسا كما هو حال هذا الموضوع. فالدفاتر تحمل حقل حالة المستند جديد، مرحل، ملغي أو معطل حتى إشعار آخر ، فطالما هو غير مرحل يمكنك التعديل عليه ومن ثم ترحيله ، وستبقى البيانات موجودة في جداول المستندات وفي جدول العمليات المحاسبية. عند إقفال السنة بعض البرامج تتيح لك تفريغ بيانات المستندات ودون أي تأثير على البيانات المرحلة.
  22. وعليكم السلام المثال بعد التعديل searching_02.accdb
  23. نسخة منقحة ومراجعة كثيرا ، إن شاء الله تخلو من الأخطاء. حاولوا بالفأرة تقليل وزيادة عرض النافذة أثناء التشغيل ومراقبة التوسيط الآلي. RecenterControls_01.accdb
  24. برنامج للقرآن الكريم بالأكسس https://drive.google.com/file/d/1oo09ouXvc-3hKYEz3d71avbjckzFfvAG/view
×
×
  • اضف...

Important Information