بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
1,727 -
تاريخ الانضمام
-
Days Won
5
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو أبو عبدالله الحلوانى
-
ارسال ملف وورد بالاوتلوك عن طرق الاكسس كمرفق
أبو عبدالله الحلوانى replied to aaabade's topic in قسم الأكسيس Access
السلام عليكم ورحمة الله وبركاته جرب هذا المرفق لعله يوافق مرادك وأخبرنا بالنتائج ملاحظة: غير عنوان الايميل المرسل اليه قي هذا السطر من الكود Call sendAsAttach(docname, "testEmil@gmail.com") Barna.rar -
اختفاء النموذج خلف واجهة البرنامج عند تصغيرة
أبو عبدالله الحلوانى replied to f16's topic in قسم الأكسيس Access
السلام عليكم ورحمة الله وبركاته بالاضافة الي ما تفضل به أستاذنا @محمد أبوعبدالله لماذا لا تجرب القيام باغلاق النموذج أو اخفاءه بدلا من التصغير - فان النماذج تعمل داخل بيئة الأكسس حتي لو قمت باخفاء الأكسس فإنه لا يزال متحكم بعمل النماذج والتقارير - فتصغير النموذج يودي الي بقائه تحت النماذج المفتوحة فقط ولا يختفي كما هو معلوم. كنت أتفادي التصغير دائما باغلاق النموذج أو اخفاءه واعادة فتحة مرة أخري عند الحاجة. تمنياتي بالتوفيق -
وعليكم السلام ورحمة الله وبركاته ان كان طلبك لبرنامج متكامل بمقابل مادي فضع موضوعك بقسم الاعلانات بالموقع وضع وسيلة للتواصل معك. وان كنت تريد المساعدة لاعداد برنامجك بنفسك فقم بوضع مشكلتك التي تواجهك واحدة تلو الأخري بمواضيع مستقلة وفقا لقواعد المنتدي حتي تجد من يساعدك بحلها من الاساتذة الكرام بالمنتدي ولن يبخل أحد منهم بأن يجود بما يعلم. تمنياتي لكم بالتوفيق والسداد.
-
البحث بأى كلمة داخل نموذج غرعى
أبو عبدالله الحلوانى replied to ahmed sherif's topic in قسم الأكسيس Access
السلام عليكم ورحمة الله وبركاته مساهمة مع أستاذنا @محمد أبوعبدالله انظر الي هذا المرفق بالمشاركة التالية لعله يفيدك بشئ -
السلام عليكم ورحمة الله وبركاته الحقل يحوي نص بهذا الشكل "25.1*12.25*14.6" أو هذا الشكل "65.12+65+98+3.25" أو أيا كانت العملية الحسابية أحتاج الي كود ينفذ العملية الحسابية التي بداخل النص حاولت بهذا الكود ولكن الأمر لم يفلح معي حيث أني استخدمت الدالة mid لتقطيع النص ولكن تم التقطيع حرف حرف وليس رقم رقم وهذا هو كودي البسيط الغير ناجح Function CalcMsahaAkar(ByRef txtx As String) As Double 'If InStr(1, txtx, "*") > 0 Then 'CalcMsahaAkar = Round(Split(txtx, "*")(0) * Split(txtx, "*")(1), 2) 'End If Dim no As Double Dim no1 As Double no1 = 1 'CalcMsahaAkar = Val(txtx) For n = 1 To Len(txtx) If Mid(txtx, n, 1) <> "*" Or Mid(txtx, n, 1) <> "+" Then Debug.Print Mid(txtx, n, 1) no = Mid(txtx, n, 1) if Instr(1,txtx,"*")>0 then no1 = no1 * no Elseif Instr(1,txtx,"+")>0 then no1 = no1 + no end if End If Next CalcMsahaAkar =Round(no1,2) Debug.Print CalcMsahaAkar End Function وجزاكم الله عنا خيرا .
-
شكرا لكم علي هذا العمل الرائع ما شاء الله جعله الله في موازين حسناتكم
-
السلام عليكم ورحمة الله وبركاته الحمد لله تم اكتشاف الخطأ بالكود هو عند الخروج من الدوار فور قبل نتيجة الدالة الصورة توضح المقال الخطأ هنا If AutoAmount <= (Amount + 100) And AutoAmount >= (Amount - 100) Then Exit For <<====================== here a wrong tstAmont = "AmountCalculit: " & AutoAmount & vbCrLf & _ "Until date: " & IIf(stopDat > 0, stopDat, EndDate) Else كان يجب أن يكتب هكذا If AutoAmount <= (Amount + 100) And AutoAmount >= (Amount - 100) Then tstAmont = "AmountCalculit: " & AutoAmount & vbCrLf & _ "Until date: " & IIf(stopDat > 0, stopDat, EndDate) Exit For <<=============== must write here after calculate function Else ربما هذا الدالة الطويلة لن يستفيد منها أحد!! ولكن تلك المعلومة البسيطة هامة جدا حتي لا يقع أحد في مثل ما وقعت به (أعلم أن جميعكم أساتذتي لا يخفي عليكم مثل هذا ولكن للتوثيق ولربما مر من هنا مبتدأ مثلي فتفده تلك المعلومة). (أن الكود يسير من الأعلي الي الأسفل فمن الواجب أن ننتبه أن لا ننهي الكود قبل اتمام احتساب النتائج! كما هو موضح بالأعلي) وجزاكم الله خيرا جميعا
- 1 reply
-
- 1
-
-
كيفية تحديث الشيت دون فتحها أو التنقل إليها
أبو عبدالله الحلوانى replied to شكيب عمار's topic in منتدى الاكسيل Excel
السلام عليكم أعتقد أن هذا الكود يعمل ولكن لم اجربه أرجو التجربة والافادة Sheets(2).RefreshAll ملاحظة: الرقم بين الاقواس هو رقم الشيت المراد تحديثه وأعتقد أن هذا الاعداد سيغنيك عن هذا -
السلام عليكم ورحمة الله وبركاته أرجو من السادة الخبراء المساعدة في توضيح سبب عدم وجود أي مخرجات لهذه الدالة وهل يوجد سبيل لاختصارها وجزاكم الله خيرا Function tstAmont(ByVal Amount As Double, ByVal Nsht As Integer, ByVal strtDat As Date, ByVal srf As Integer, _ ByVal ktr As Integer, ByVal whdat As Integer, Optional stopDat As Date = 0) As String 'this code for test amount and return correct date for 'this amount main idea will use 'for loop' to add 1 month 'to start date and calc amount if our amount = user amount 'stop her. else add another month and so on. '====================== Dim n As Integer Dim shozDat As Integer Dim dats(5) As Date Dim prsHom(5) As Double Dim prsTjry(5) As Double Dim Kmya As Integer Dim srfHom(5) As Double Dim srfTgry(5) As Double Dim FrstDate As Date Dim EndDate As Date Dim AutoAmount As Double '====================== Kmya = Choose(ktr, 90, 135, 180, 270, 360, 225) dats(1) = (#2/28/2016#) dats(2) = (#5/30/2016#) dats(3) = (#8/31/2017#) dats(4) = (#6/30/2018#) dats(5) = (Date) prsHom(1) = 30 prsHom(2) = 50 prsHom(3) = 52 prsHom(4) = 64.5 prsHom(5) = 67.5 prsTjry(1) = 1.16 prsTjry(2) = 1.6 prsTjry(3) = 2 prsTjry(4) = 2.4 prsTjry(5) = 3.6 srfHom(1) = 0.52 srfHom(2) = 0.51 srfHom(3) = 0.57 srfHom(4) = 0.63 srfHom(5) = 0.75 srfTgry(1) = 0.81 srfTgry(2) = 0.8 srfTgry(3) = 0.86 srfTgry(4) = 0.92 srfTgry(5) = 0.98 '======================= 'If strtDat <= dats(1) Then For n = 1 To DateDiff("m", strtDat, Date) If AutoAmount <= (Amount + 100) And AutoAmount >= (Amount - 100) Then Exit For tstAmont = "AmountCalculit: " & AutoAmount & vbCrLf & _ "Until date: " & IIf(stopDat > 0, stopDat, EndDate) Debug.Print AutoAmount Debug.Print Amount Debug.Print n Debug.Print stopDat Debug.Print EndDate Else n = n + 1 EndDate = DateAdd("m", n, strtDat) If Nsht = 1 Then If (stopDat <= dats(1)) Then AutoAmount = DateDiff("m", EndDate, stopDat) * whdat * prsHom(1) * IIf(srf = 1, 1 + srfHom(1), 1) ElseIf (EndDate <= dats(1)) Then AutoAmount = DateDiff("m", EndDate, dats(1)) * whdat * prsHom(1) * IIf(srf = 1, 1 + srfHom(1), 1) End If If (stopDat <= dats(2) And stopDat > dats(1)) Then AutoAmount = DateDiff("m", EndDate, dats(1)) * whdat * prsHom(1) * IIf(srf = 1, 1 + srfHom(1), 1) AutoAmount = DateDiff("m", dats(1), stopDat) * whdat * prsHom(2) * IIf(srf = 1, 1 + srfHom(2), 1) ElseIf (EndDate <= dats(2) And EndDate > dats(1)) Then AutoAmount = DateDiff("m", EndDate, dats(1)) * whdat * prsHom(1) * IIf(srf = 1, 1 + srfHom(1), 1) AutoAmount = AutoAmount + (DateDiff("m", dats(1), dats(2)) * whdat * prsHom(2) * IIf(srf = 1, 1 + srfHom(2), 1)) End If If stopDat <= dats(3) And stopDat > dats(2) Then AutoAmount = DateDiff("m", EndDate, dats(1)) * whdat * prsHom(1) * IIf(srf = 1, 1 + srfHom(1), 1) AutoAmount = DateDiff("m", dats(1), dats(2)) * whdat * prsHom(2) * IIf(srf = 1, 1 + srfHom(2), 1) AutoAmount = DateDiff("m", dats(2), stopDat) * whdat * prsHom(3) * IIf(srf = 1, 1 + srfHom(3), 1) ElseIf (EndDate <= dats(3) And EndDate > dats(2)) Then AutoAmount = DateDiff("m", EndDate, dats(1)) * whdat * prsHom(1) * IIf(srf = 1, 1 + srfHom(1), 1) AutoAmount = AutoAmount + (DateDiff("m", dats(1), dats(2)) * whdat * prsHom(2) * IIf(srf = 1, 1 + srfHom(2), 1)) AutoAmount = AutoAmount + (DateDiff("m", dats(2), dats(3)) * whdat * prsHom(3) * IIf(srf = 1, 1 + srfHom(3), 1)) End If If stopDat <= dats(4) And stopDat > dats(3) Then AutoAmount = DateDiff("m", EndDate, dats(1)) * whdat * prsHom(1) * IIf(srf = 1, 1 + srfHom(1), 1) AutoAmount = DateDiff("m", dats(1), dats(2)) * whdat * prsHom(2) * IIf(srf = 1, 1 + srfHom(2), 1) AutoAmount = DateDiff("m", dats(2), dats(3)) * whdat * prsHom(3) * IIf(srf = 1, 1 + srfHom(3), 1) AutoAmount = DateDiff("m", dats(3), stopDat) * whdat * prsHom(4) * IIf(srf = 1, 1 + srfHom(4), 1) ElseIf (EndDate <= dats(4) And EndDate > dats(3)) Then AutoAmount = DateDiff("m", EndDate, dats(1)) * whdat * prsHom(1) * IIf(srf = 1, 1 + srfHom(1), 1) AutoAmount = AutoAmount + (DateDiff("m", dats(1), dats(2)) * whdat * prsHom(2) * IIf(srf = 1, 1 + srfHom(2), 1)) AutoAmount = AutoAmount + (DateDiff("m", dats(2), dats(3)) * whdat * prsHom(3) * IIf(srf = 1, 1 + srfHom(3), 1)) AutoAmount = AutoAmount + (DateDiff("m", dats(3), dats(4)) * whdat * prsHom(4) * IIf(srf = 1, 1 + srfHom(4), 1)) End If If stopDat <= dats(5) And stopDat > dats(4) Then AutoAmount = DateDiff("m", EndDate, dats(1)) * whdat * prsHom(1) * IIf(srf = 1, 1 + srfHom(1), 1) AutoAmount = DateDiff("m", dats(1), dats(2)) * whdat * prsHom(2) * IIf(srf = 1, 1 + srfHom(2), 1) AutoAmount = DateDiff("m", dats(2), dats(3)) * whdat * prsHom(3) * IIf(srf = 1, 1 + srfHom(3), 1) AutoAmount = DateDiff("m", dats(3), dats(4)) * whdat * prsHom(4) * IIf(srf = 1, 1 + srfHom(4), 1) AutoAmount = DateDiff("m", dats(4), stopDat) * whdat * prsHom(5) * IIf(srf = 1, 1 + srfHom(5), 1) ElseIf (EndDate <= dats(5) And EndDate > dats(4)) Then AutoAmount = DateDiff("m", EndDate, dats(1)) * whdat * prsHom(1) * IIf(srf = 1, 1 + srfHom(1), 1) AutoAmount = AutoAmount + (DateDiff("m", dats(1), dats(2)) * whdat * prsHom(2) * IIf(srf = 1, 1 + srfHom(2), 1)) AutoAmount = AutoAmount + (DateDiff("m", dats(2), dats(3)) * whdat * prsHom(3) * IIf(srf = 1, 1 + srfHom(3), 1)) AutoAmount = AutoAmount + (DateDiff("m", dats(3), dats(4)) * whdat * prsHom(4) * IIf(srf = 1, 1 + srfHom(4), 1)) AutoAmount = AutoAmount + (DateDiff("m", dats(4), dats(5)) * whdat * prsHom(5) * IIf(srf = 1, 1 + srfHom(5), 1)) End If End If 'else tjary End If Next End Function وعند اختبارها لم تظهر أي نتائج أو حتي أخطاء!! ولا أدري لما؟! ?tstAmont(450,1,#8/5/2014#,0,1,1)
-
السلام عليكم ورحمة الله وبركاته خبرتي بدوال الاكسل ليست كبيرة ولكن الأمر أعتقد أنه بسيط ولكن لا تظهر لي نتائج صحيحة ولا أدري لماذا استخدمت هذه المعادلة للمقارنة بين تاريخين في حقول الشيت =if(A1>B1;A1;B1) ودائما تظهر لي قيمة الخلية A1 في كل الأحوال ولا أدري لماذا مع أني ضبط تنسيق الخلايا علي أنها short date تحياتي للجميع
-
طريقة اظهار رسالة التنبيه لمدة 3ثواني
أبو عبدالله الحلوانى replied to بلال اليامين's topic in قسم الأكسيس Access
هذا رابط صاحب المرفق الأصلي لعلي أكون قد عبثت ببعض الأكود بدون قصد -
طريقة اظهار رسالة التنبيه لمدة 3ثواني
أبو عبدالله الحلوانى replied to بلال اليامين's topic in قسم الأكسيس Access
السلام عليكم ورحمة الله وبركاته أظنك تريد شيئا كهذا هذا مثال أجنبي به ما تريد وزيادة (105 كيلو علي البيعة 😄) رجائا فك الضغط عن المجلد وأبقي كل شئ بداخله في نفس المسار قم بفتح ملف الأكسس وخذ جولة بين الأزرار والتبويبات ثم وافنا بالنتائج DynamicMessage.rar -
مساعدة في تنسيق النموذج و التقرير (المستمر)
أبو عبدالله الحلوانى replied to ABUTALAL2015's topic in قسم الأكسيس Access
السلام عليكم اولا أخي أنصحك أن تبتعد عن الأسماء المحجوزة بالأكسس لا تستعملها لتسمية عناصر التحكم أو الحقول بالجداول وهكذا فهذا سيؤدي بك للوقوع بمشاكل عند استخدام الأكواد فمثلا كلمة (Width) كلمة محجوزة ثانيا- هذا محاولة للحل لعلها تفيدك جرب هذا test.accdb -
السلام عليكم ورحمة الله وبركاته جمعة مباركة عليكم جميعا ان شاء الله أساتذتي الأحبة أستخدم استعلام داخل فورم للبحث بهذا الشكل الموضح بالصورة , ولكن دعت حاجة العمل لربط البرنامج بقاعدة الـ sql server فلم يعد يعمل الفورم كما كان بعهده السابق - فهل هنالك اختلافات معينة يجب مراعاتها عند انشاء الاستعلام بعد الربط بال sql server وهذا هو شكل الاستعلام SELECT databyBranchQry.* FROM databyBranchQry WHERE (((databyBranchQry.CustID)=[Forms]![InquiryFrm]![Tx0])) OR (((databyBranchQry.CustName) Like "*" & [Forms]![InquiryFrm]![tx0] & "*")) OR (((databyBranchQry.Address) Like "*" & [Forms]![InquiryFrm]![tx0] & "*")) OR (((databyBranchQry.KomiCrdNo)=[Forms]![InquiryFrm]![tx0])); قد وجد هذه الاختلافات التي تحدثت عنها مايكرسوفت هنا https://support.microsoft.com/ar-sa/office/مقارنه-access-sql-مع-sql-server-tsql-f09f180f-c005-4ff3-812f-14a5eb7902c8 ولكن بعد اجراء التغيرات من النجمة الي العلامة المؤية لم يحدث أي تغير وظل الفورم صامتا لا يبحث أرجو المساعدة فقد حاولت كثيرا عقد مصالحة بين الأكسس والسرفر ولم يقبلا التصالح حتي الآن - الفزعة يا أهل الخير 😀 وتحياتي للجميع
-
ممكن مساعد في تصميم برنامج مبيعات
أبو عبدالله الحلوانى replied to zyad zyad's topic in قسم الأكسيس Access
جزاكم الله خيرا لحسن ظنكم بي أنا فعلا انشغلت ولكن ليس كما تفضلتم بالعشر الأواخر (وياليتني فعلت وها قد انفلت منا الشهر ) تقبل الله منا ومنكم صالح الأعمال وجعلنا واياكم ممن اعتق الله رقابهم من النار في هذا الشهر الكريم هل تعنون بتوضيحكم السابق انه سيتم التعامل مع الصنف كرتون والصنف مغلف علي كونه صنف واحد من خلال الكود المتشابه علي يسار البار كود بين الكرتون وما بداخلها من مغلفات ولكن ما ظهر لي من الصورة أن الصنف تم ادخاله بالوحدة الاجمالية الكرتون وتم احتساب الكمية الاجمالية وفقا للكمية المخزنة التي تعادل الكرتون من هذا الصنف مثلا تم شراء 20 كرتونة كاتشب وتم تخزين الكمية 480 علي اعتبار ان الكرتون يحوي 24 عبوة أعتقد أن الأمر بحاجة لمزيد من التوضيح ( بنسبة لصعيدي مثلي 😀) لو افترضنا أننا سننشأ module سيقوم بمعالجة كود الصنف واستخراج كونه كرتون أو مغلف داخل الكرتون أو ظرف داخل المغلف فما ضابط لهذا والأكواد مختلفة من صنف لصنف كما هو واضح من ردكم الكريم فضلا عن كون هناك بعض الاصناف التي لن نجد لها تكويد أصلا لا علي الكرتون أو ما بداخله (هذا يحدث أحيانا في بعض السلع المحلية😨) أعتذر علي الاطالة وجزاكم الله عنا خيرا -
هلا تفضلتم علي بمزبد من التوضيح فأنا الآن أشكل علي الأمر هل سيكون تسجيل الاصناف حسب ما تفضل أستاذنا خالد بأن تكون الكرتونة صنف مستقل وما بداخلها صنف آخر ويجري العمل علي هذا أم ماذا؟ وهل عند جرد المخزون في هذه الحالة سيستمر الأمر علي اعتبار الكرتونة صنف وما بداخلها صنف آخر أم سيتم جمع الكمية واعبارهما صنف واحد؟
-
أستاذي وأخي جزاك الله عنب خيرا وجعله الله في موازين حسناتكم الفديو فعلا جميل ولكني فوجئت بأنه يناهز الساعتين لذا لم أدخل لضيق الوقت. وكذلك الشكر موصول لاستاذنا @ابو تراب الذي قام بتلخيص الموضوع والاشارة الي الوقت الذي به الفائدة المطلوبة فجزاكما الله عني خيرا وأحسن أليكم وكل من ساهم بكلمة وأرشدنا ولو بحرف فجميعكم أهل فضل وخير علي ومنكم نتعلم واليكم نلجأ فيما جهلنا من بعد الله سبحانه.