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

أبو عبدالله الحلوانى

الخبراء
  • Posts

    1,727
  • تاريخ الانضمام

  • Days Won

    5

كل منشورات العضو أبو عبدالله الحلوانى

  1. Private Sub B_1_AfterUpdate() If Me.B_1 = ChrW(1584) & ChrW(1603) & ChrW(1585) Then Me.t_1 = True Me.t_2 = False Else Me.t_1 = False Me.t_2 = True End If End Sub سبقني بها استاذنا قاسم ولكن اضافة الي ما تفضل به يفضل ان لا تجعل في الكود أحرف عربية لتفادي مشكلات اختلاف اللغة علي الاجهزة
  2. هل هو نفس الجدول ام جدول آخر غير الموجود بالاستعلام ؟! الحقول الغير مرتبطة لا تسبب مشكلة عند اضافة البيانات علي حد علمي ولكن لعل المشكلة تكون: 1- بوجود علاقة بين جدولين تتطلب ادخال بعض البيانات المرتبطة وتم اهمال احدها 2- او يكون هنالك حقل الزامي يجب ادخال بيانات به ولم يتم تمرير قيمة له بالاستعلام 3- أو يكون هنالك خطأ املائي بكتابة مسميات بعض الحقول او غيرها من الأمور التي لا يمكن تخمينها الا بعد معاينة المشكلة من خلال المرفق
  3. من وجهة نظري الشخصية - ومن الناحية المحاسبية فان هنالك ما يسمي بالخصم المكتسب وهذا الحساب يشمل القيمة المالية التي يتم تخفيضها من قيمة المشتريات (ويدخل في ذلك ما كان عينيا او ماديا) مثال ليتضح المقال: لو ان هذه الشاشات ثمنها 1000 مثلا فقيمة الواحدة 50 اذا اجمالي قيمة ال 22 شاشة هو 1100 ويتم معالجة العملية من الناحية المحاسبية بقيد مزدوج متعدد بهذا الشكل 1100 من حـ/ المشتريات الي حـ/ مذكورين 1000 حـ/ الصندوق (بقيمة المبلغ المدفوع فعليا) 100 حـ/ الخصم المكتسب (قيمة المبلغ الذي تم خصمه من قيمة المشتريات الفعلية أو قيمة البونص او اي شيئ آخر) وقيمة هذا الخصم دائنة وهو تابع لحساب الأرباح والخسائر في الحسابات الختامية ارجو ان يكون كلامي واضحا فقد تكلمت باسلوب المحاسبين 😁 من الناحية البرمجية 1- قيمة المشتريات الفعلية هي 1100 يعني ما سيتم ترحيله الي المخازن هو عدد 22 شاشة بقيمة 1100 يعني قيمة الشاشة الواحدة لن تتغير اي بقيمة 50 كما هي 2- قيمة الصندوق او الخزينة او البنك ستقل بقيمة المبلغ المدفوع فعليا بقيمة 1000 فقط 3- قيمة ال 2 شاشة البونص سيتم اعتبارها ارباح مكتسبة بالكامل 100 أرجو ان لا يكون هذا التوضيح بحاجة الي توضيح هذا والله اعلم
  4. هلا ارفقتي مثالا لنري المشكلة فمن سمع ليس كمن رأي .
  5. وعليكم السلام ورحمة الله وبركاته اضم صوتي الي صوت استاذا @Barna فسؤالك يحتاج الي مزيد من التوضيح ولكن علي قدر فهمي للسؤال ربما ساعدك هذا الكود في حدث عند النقر علي مربع النص او الزر أو التسمية المكتوب عليه الكلمة التي تريد ضع هذا الكود private Sub zer1_Click() txt2 = 0 End Sub وفقط
  6. اضم صوتي الي صوتك - فبلمثال يتضح المقال 🙂 فمن الواضح انها تريد الحاق البيانات الي الجدول من خلال فورم رئيس يضم فورم فرعي وبكل فورم مجموعة من الحقول التي يتم ملأها بالجدول
  7. حاولت تطويع مرفقك علي قدر فهمي للسؤال وهذه محاولتي test4.accdb ارجو ان تفيدك جرب ووافني بالنتائج افتح بحث متقدم واختر الاسم او تنقل بين الاسماء ثم اضغط زر بحث
  8. جرب هذا التعديل Option Compare Database Public Myvalue As Integer Public MyP2 As Integer الفورم الاول private sub Zer1_Click() Myvalue = NP1.Value MyP2 = Np2.Value End sub الفورم الثاني If ComPlat.Value = "Twitter" And comType.Value = "Click" Then TargetPlas.Value = txtCost.Value * Myvalue Elseif ComPlat.Value = "Twitter" And comType.Value = "engagement" then TargetPlas.Value = txtCost.Value * MyP2 End If ووافني بالنتائج اذا لم تزل تواجه مشكلة ارفق مرفق للتعديل. الفكرة بكل بساطة هي: 1- انشاء متغير عام يمكن استدعائه من اي مكان بالبرنامج ( عن طريق انشاء وحدة نمطية عامة وكتابة تصريح عام بها باسم المتغير كما هو موضح بالمشاركة الأولي) 2- نمرر قيمة الي هذا المتغير العام من اي فورم او تقرير او ... 3- نقرأ قيمة المتغير من اي مكان كذلك سواء فورم او تقرير او ... وانتهي الأمر
  9. السلام عليكم جرب هذا التعديل ووافني بالنتائج ملاحظة: من المستحسن ان لا تجعل شيئا مكتوبا باللغة العربية داخل الكود هذا سيسهل عليك العميل ويجنبك مشكلات كثيرة فيما بعد عندما تحاول نقل برنامجك للعمل علي اي جهاز آخر غير جهازك الذي تعمل عليه وهذا سيتأتّي معك سهلا ميسورا ان عملت علي نسخة انكليزية من الأكسس وكذلك ان تجعل مسميات الحقول داخل الجداول والنماذج والتقارير والاستعلامات .... باللغة الانكليزية ولا بأس من جعل الوصف باللغة العربية هذا ليس تحيزا للغة الاجانب ولكن هذا سيسهل عملك ولا يوقعك بمشكلات كبيرة فيما بعد انت بغنا عنها تمنياتي بالتوفيق za-AKSAT-Pro-LAST- (1).mdb
  10. وعليكم السلام ورحمة الله لتقسيم الكود يتم استخدام مسافة (فراغ) ثم هذه العلامة ( _ ) بعد الفراغ كالمثال CurrentDb.Execute "INSERT INTO TEAM(DateDA,DateCmd,NumBesoin,demandeur,commande,imputation,acheteur,departement,designation,marque, _ reference,devise,QTEcommande,QTE,frs1,PU1,PT1,frs2,PU2,PT2,frs3,PU3,PT3,prixRETENU,devise2,TotalEUR, _ fournisseur,CONTRAT,FABRICANT,NonMisEnCON,REGULE,SEMAINE,MOIS,PRODUCTIVITE,devise3,ProdEnEUR) " _ & "VALUES('" & Me.DateDA & "','" & Me.DateCmd & "','" & Me.NumBesoin & "','" & Me.Demandeur & "','" & _ Me.Commande & "','" & Me.imputation & "','" & Me.Acheteur & "','" & Me.Departement & "','" & Me.TXTdesign & _ "','" & Me!T_REFRENCE.Form.marque & "','" & Me.txtREF & "','" & Me!T_REFRENCE.Form.devise & "','" & Me.Qte & _ "','" & Me!T_REFRENCE.Form.FRS1 & "','" & Me!T_REFRENCE.Form.PU1 & "','" & Me!T_REFRENCE.Form.PT1 & "','" & _ Me!T_REFRENCE.Form.FRS2 & "','" & Me!T_REFRENCE.Form.PU2 & "','" & Me!T_REFRENCE.Form.PT2 & "','" & _ Me!T_REFRENCE.Form.FRS3 & "','" & Me!T_REFRENCE.PU3 & "','" & Me!T_REFRENCE.PT3 & "','" & _ Me!T_REFRENCE.PRIXretenu & "','" & Me!T_REFRENCE.Devise2 & "','" & Me!T_REFRENCE.TotalEUR & "','" & _ Me!T_REFRENCE.fournisseur & "','" & Me!T_REFRENCE.CONTRAT & "','" & Me!T_REFRENCE.Fabricant & "','" & _ Me!T_REFRENCE.NonMisEnCON & "','" & Me!T_REFRENCE.Regule & "','" & Me.Semaine & "','" & Me.Mois & "','" & _ Me!T_REFRENCE.productivite & "','" & Me!T_REFRENCE.devise3 & "','" & Me!T_REFRENCE.prodEnEUR & "'" أو يمكنك تقطيع الكود علي عدة اسطر في متغير نصي وتمرير قيمته الي دالة تنفيذ الاستعلام مثل: Dim SQLStr as String SQLStr = "INSERT INTO TEAM(DateDA,DateCmd,NumBesoin,demandeur,commande,imputation,acheteur,departement," SQLStr = SQLStr & "designation,marque,reference,devise,QTEcommande,QTE,frs1,PU1,PT1,frs2,PU2,PT2,frs3,PU3,PT3," SQLStr = SQLStr & "prixRETENU,devise2,TotalEUR,fournisseur,CONTRAT,FABRICANT,NonMisEnCON,REGULE,SEMAINE,MOIS," SQLStr = SQLStr & "PRODUCTIVITE,devise3,ProdEnEUR) VALUES('" & Me.DateDA & "','" & Me.DateCmd & "','" SQLStr = SQLStr & Me.NumBesoin & "','" & Me.Demandeur & "','" & Me.Commande & "','" & Me.imputation & "','" SQLStr = SQLStr & Me.Acheteur & "','" & Me.Departement & "','" & Me.TXTdesign & "','" & Me!T_REFRENCE.Form.marque & "','" SQLStr = SQLStr & Me.txtREF & "','" & Me!T_REFRENCE.Form.devise & "','" & Me.Qte & "','" & Me!T_REFRENCE.Form.FRS1 & "','" SQLStr = SQLStr & Me!T_REFRENCE.Form.PU1 & "','" & Me!T_REFRENCE.Form.PT1 & "','" & Me!T_REFRENCE.Form.FRS2 & "','" SQLStr = SQLStr & Me!T_REFRENCE.Form.PU2 & "','" & Me!T_REFRENCE.Form.PT2 & "','" & Me!T_REFRENCE.Form.FRS3 & "','" SQLStr = SQLStr & Me!T_REFRENCE.PU3 & "','" & Me!T_REFRENCE.PT3 & "','" & Me!T_REFRENCE.PRIXretenu & "','" SQLStr = SQLStr & Me!T_REFRENCE.Devise2 & "','" & Me!T_REFRENCE.TotalEUR & "','" & Me!T_REFRENCE.fournisseur & "','" SQLStr = SQLStr & Me!T_REFRENCE.CONTRAT & "','" & Me!T_REFRENCE.Fabricant & "','" & Me!T_REFRENCE.NonMisEnCON & "','" SQLStr = SQLStr & Me!T_REFRENCE.Regule & "','" & Me.Semaine & "','" & Me.Mois & "','" & Me!T_REFRENCE.productivite & "','" SQLStr = SQLStr & Me!T_REFRENCE.devise3 & "','" & Me!T_REFRENCE.prodEnEUR & "'" CurrentDb.Execute SQLStr ارجو التجربة وموافاتي بالنتيجة
  11. اذا لم يكن فهمي خاطئا فلم يتسع وقتي لتحميل المرفق واذا اردت ان تمرر احد هذه القيم من فورم الي اخر ولا يشترط ان يكون كلاهما مفتوحا بنفس الوقت اليك هذه الفكرة. قم بانشاء وحدة نمطية واكتب بها هذا السطر Public Myvalue as integer وبهذا الشكل يمكنك تمرير اي قيمة من الفورم اليها لتستعملها بأي فورم آخر تريده بالكيفية التي تريدها مثال من الفورم الأول مثلا اكتب هذا الكود Myvalue = p1 'Or p2 or p3 as you want ومن الفورم الثاني اكتب هذا الكود TargetPlas= Myvalue * 0.5 'أو اي معادلة حسابية تريد ان تجريها علي هذا المتغير وانتهي الأمر
  12. مبارك علينا ابا الجود وأعانكم الله ووفقكم لكل خير والي ما يحبه الله ويرضاه من امور الدنيا والأخرة نفع الله بكم اينما حللتم أو ارتحلتم وجمعني بكم وبسائر أساتذتنا الأكارم الأفاضل في مستقر رحمته مع النبيين والصديقين والشهداء والصالحين - وحسن اولئك رفيقا - آمين
  13. السلام عليكم ورحمة الله وبركاته حبيت اضيف معلومة صغيرة ارجو ان يصوب اساتذتي خطأها ان كانت خطأ احب دوما أعوض عن القيم النصية بقيم رقمية بالأكواد كلما كان ذلك متاحا تجنبا لمشكلات الترجمة واختلاف اللغة بالأجهزة التي سيعمل عليها البرنامج وهذا مثال تعديلا بسيطا علي كود استاذا جعفر لنتفادي وجود اسم اليوم داخل الكود وارجو التجربة مع تغير اعدادات الويندوز للغة العربية والانجليزية بعد التعديل. If Weekday(TD) = 6 Then fOver_Time = DateDiff("n", DS, DE) \ 60 & ":" & DateDiff("n", DS, DE) Mod 60 ElseIf Weekday(TD) = 5 Then fOver_Time = DateDiff("n", STO2, DE) \ 60 & ":" & DateDiff("n", STO2, DE) Mod 60 ElseIf Weekday(TD) < 5 Or Weekday(TD) > 6 Then 'Or you can say Else Only Here fOver_Time = DateDiff("n", STO1, DE) \ 60 & ":" & DateDiff("n", STO1, DE) Mod 60 End If مجرد معلومة افدتها من اساتذتي بالمنتدي واحببت مشاركتها معهم (هذه بضاعتكم ردت اليكم) تمنياتي بالتوفيق
  14. السلام عليكم ورحمة الله وبركاته وانا ايضا اشارك استاذنا أبو خليل ما قال ففهم السؤال هو نصف الاجابة كما قيل ولكن اعتقد ان الأخ عمر يريد ان يضيف سجلات متعددة الي الجدول بنفس البيانات ويكون المتغير هو الرقم المتسلسل وعدد السجلات المطلوبة هو الرقم الذي يحدده في النهاية. ان كان هذا هو المطلوب فخذ تلك الوحدة النمطية وجرب ووافنا بالنتائج Public sub GenrateRecords(byval tbl as string,byval Rfrist As byte,byval Rend As byte) Aim rec As Recordset,n as byte set rec = CurrentDb.OpenRecordset(tbl, dbOpenDynaset, dbSeeChanges) With rec for n = Rfrist To Rend 'هنا رقم اول سجل وآخر سجل تريد ادراجه .AddNew !field_ID = "String" & n 'string = البادئة النصية التي تريد !field1 = control1 'بدأ من هذا السطر اسماء الحقول في الجدول وما يقابلها بالنموذج !field2 = control2 !field3 = control3 !field4 = control4 .update next end with End Sub وتستدعيها هكذا Call GenrateRecords ("Table Name",1,15) بعد تغير ما يلزم تغيرها بالوحدة حسب مسميات الحقول لديك
  15. وعليكم السلام ورحمة الله وبركاته هذه سهلة يمكنك القيام بها بدون مساعدة ان شاء الله كل ما تحتاجه فكرة العمل الفكرة بسيطة ان شاء الله من وجهة نظري المتوضعة نضع حقل في جدول العمليات يحوي قيمة رقمية 0 - 1 أو true - false حسب رغبتك يتم تحديثها عند اغلاق الدورة المالية الي 1 وتأخذ القيمة 0 عند عدم الاغلاق طبعا الأمر سيحتاج الي آلية برمجية للتعامل مع هذا الحقل ومن فوائد هذا الحقل اننا سنوقف كل التعاملات مع السجل الذي يحوي القيمة 1 مثلا بهذا الحقل من تعديل أو اضافة أو حذف أو... لكون هذه المعاملة تم اقفالها ماليا أعتقد من الناحية المحاسبية ان عملية التعديل أو الاضافة لن تكون مسموحة علي دورة مالية منتهية لذي فكرة اعادة فتح الدورة المالية بعد الاقفال شيء خطأ محاسبيا ولكن ان كان ولا بد وحسب ما يتراءي لك من وجهة نظر لا أعلمها ففي الفكرة السابقة كفاية لكونك تعيد تحديث حقل الاقفال الي صفر وينتهي الأمر وتعود الدورة المالية للعمل مرة أخري أرجو أن يكون كلامي لا اشكال فيه تمنياتي بالتوفيق
  16. أولا- أعتذر لاقتحامي النقاش بدون استئذانكم فأنت صاحب الموضوع ثانيا- سعدت بموافقتك ما أقصد واعتقد أن كلنا حولها ندندن
  17. بغض النظر عن مواقع التواصل كيف يمكن استخدام طريقتكم لعرض الصفحات التي تتطلب متصفح ميزات غير متوفرة في تلك الأداة المصاحبة للأكسس حيث أن هذا الكود يعتمد علي اننا نقوم بكتابة الشفرة او نمررها كما فعلتم بمرفقكم المميز الفاتورة الالكترونية داخل الأداة وفقط <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> </head> باختصار كيف يمكن دمج هذا الكود مع كود الصفحة المطلوبة ليتسنا لنا عرضها علي اداة الويب بروزر الخاصة بالأكسس حيث ان هذا ما يحدث عند استدعاء بعض الصفحات علي هذه الأداة وجزاكم الله عنا خيرا
  18. جزاكم الله عنا خيرا لقد عمل المرفق بكل سلاسة وبشكل مذهل كالعادة فليس هذا الابداع بالشئ الجديد عليكم قد كنت فقدت الأمل في التعامل مع أداة الويب بروزر حتي سمعت كلماتكم هذه في اماكنية ترقية الأداة وأرجو ان يتسع وقتكم للرد علي استفساري البسيط هذا لدي صفحة اريد التعامل معها من خلال الأكسس كيف احقن هذه الصفحة بالكامل أو امرر عنوان هذه الصفحة بما تحتوي من شفرات بعد استخدام طريقتكم هذه للتعامل معها كمتصفح edge وجزاكم الله خيرا
  19. وعليكم السلام ورحمة الله وبركاته يمكنك ان تضع هذا الكود في وحدة نمطية (Module) Public Sub ColorCurrentRec(frm As Form, RecKey As Control, ByVal bakColor As Integer, ByVal ForColor As Integer) Dim ctl As Control On Error Resume Next '=================================== 'The required color argument for QBColor function 'is a whole number in the range 0-15. ' 'The color argument has these settings: ' 'Number Color Number Color '0 Black 8 Gray '1 Blue 9 Light Blue '2 Green 10 Light Green '3 Cyan 11 Light Cyan '4 Red 12 Light Red '5 Magenta 13 Light Magenta '6 Yellow 14 Light Yellow '7 White 15 Bright White '============================================= For Each ctl In frm.Section(0).Controls With ctl ' If .Section = 0 Then 'you can change the condition as you want here .FormatConditions(0).Modify acExpression, , RecKey.Name & "=" & RecKey If Err.Number = 7966 Then Err.Clear .FormatConditions.Add acExpression, , RecKey.Name & "=" & RecKey End If If Err.Number <> 438 Then .FormatConditions(0).BackColor = QBColor(bakColor) .FormatConditions(0).ForeColor = QBColor(ForColor) .FormatConditions(0).FontBold = True End If ' Else ' Exit For ' End If End With Next ctl ثم تستدعيها من خلال الفورم الذي تريده هكذا 'ID = اسم الحقل الذي ستسند قيمة الشرط اليه ممكن تغير شرط التساوي داخل الوحدة النمطية الي ما تشاء او تجعل الحقل يساوي null '8 = هذه قيمة لون الخلفية للحقل ويمكن تغير القيمة من 0 - 15 '9 = هذه قيمة لون النص للحقل ويمكن تغير القيمة من 0 - 15 'حسب الجدول الموضح للقيم في الوحدة النمطية Call ColorCurrentRec(me, ID, 8, 9) تمنياتي بالتوفيق
  20. بالاضافة الي ما تفضل به الاساتذة الكرام قد واجهتني مشكلتك عند التعامل مع السرفر لأول مرة وكانت المشكلة في عدم جلب المفتاح الرئيس لكل جدول فعند تصدير الجداول من الاكسس ببعض البرامج لا يتم تحديد المفاتيح الأساسية لكل جدول لذي تظهر الجداول بالأكسس مجمدة ولا تعمل وكانها غير موجودة أصلا لذي عليك الدخول الي السرفر والتعديل في تصميم الجداول لتحديد المفاتيح الأساسية لكل جدول هذا والله اعلم عودا أحمد @ابو محمد2
  21. رغم كوني لست من الخبراء الذين تستدعيهم ولكن هذه تجربتي في التعامل مع الاسكربت لعلها تفيدك فقط بعد تصميم الاسكربت وتحديد متي اريد تنفيذ الوظيفة الخاصة به ( وفي الغالب بيكون الوقت اما قبل أو بعد شيئ ما) اقوم بوضعها بملف الستأب -- للبرنامج الخاص بي وفي العادة استخدم هذا البرنامج المجاني لعمل الملف التنفيذي لبرامجي والذي يسمي smart install maker وفي الشاشة التالية اضيف كل الاسكربتات التي اريد تشغيلها مع عملية التسطيب واحدد وقت تنفيذ كل اسكربت وزمن تنفيذ هذه الاسكربتات قبل الفك ام بعده تمنياتي بالتوفيق ارجو ان اكون قد افدتك بشئ
  22. لو لاحظت اخي ردي الاول ستري اني قمت بعرض لطريقة الحساب اي اننا نقوم بعكس عملية الشراء في حالة مرتجع الشراء يعني كما في مثالك ارجعت من الصنف الذي اشتريته بـ 1 دينار عدد 1 صنف بقيمة؟؟! 1 دينار طبعا فكما اشتريته بـ 1 دينار عندما اقوم بارجاعه الي المورد سيرد الي 1 دينار اليس كذلك؟ وعندما بعت نفس الصنف بـ 2 دينار وقام المشتري برد 2 صنف ماذا تعتقد اني سأرد اليه من مبلغ اليس 4 دينار؟! اذا سيكون حساب المبلغ علي مثالك : صافي قيمة المشتريات = (10 صنف * 1 دينار = 10 دينار - 1 صنف * 1 دينار = 9 دينار) صافي قيمة المبيعات =( 5 صنف * 2 دينار = 10 دينار - 2 صنف * 2 دينار = 6 دينار) أما بالنسبة الي حساب الربح الناتج من عملية الشراء فينج من خلال المعادلة المحاسبية التالية: اجمالي الربح = (بضاعة اخر المدة + صفي المبيعات) - (بضاعة أول المدة + صافي المشتريات) أو المعادلة الرياضية التالية: (الكمية المباعة * سعر البيع) - ( الكمية المباعة * سعر الشراء) وكما في مثالك سيكون العمل بهذا الشكل الكمية المباعة هي (5-2=3) * 2 دينار = 6 دينار - (لكمية المباعة 3 * سعر الشراء 1 دينار = 3 دينار ) اذا الربح هو 3 دينار آسف علي الاطالة ارجو ان اكون فهمت مرادك بشكل صحيح
  23. اليك اخي تلك الفكرة البسيطة والنصيحة ان اردت ان تضم بياناتك في جدول واحد: 1- اجعل جدول لرأس الفاتورة يضم (رقم الفاتورة - نوع الفاتورة (بيع شراء مرتجع) وكود العميل واجمالي قيمة الفاتورة ونوع السداد وقيمة السداد ...) 2- اجعل جدول لنوع العمليات (كود العملية - ونوع العملية - شراء , بيع , مرتجع بيع , مرتجع شراء) 3- اجعل جدول للأصناف يشمل ( كود الصنف - اسم الصنف - الكمية المتاحة - وسعر الشراء - سعر البيع) 4- وجدول لكل العمليات أو تفاصيل الفاتورة ويشمل ( رقم الفاتورة - كود العملية - كود الصنف - الكمية - القيمة - الاجمالي) هذا الجدول الأخير يمكن من خلاله عمل ما نريد من خلال الاستعلامات التجميعية بكل سهولة ويسر ان شاء الله تمنياتي بالتوفيق
×
×
  • اضف...

Important Information