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

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

الخبراء
  • Posts

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

  • Days Won

    5

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

  1. وعليكم السلام ورحمة الله وبركاته أعتقد أن الأمر سهل كل ما تحتاجه هو تكرار الكود وتعديل ما يلزم من أسماء عناصر التحكم مثل هذا Dim Psh As String, psh2 As String On Error GoTo Err Psh = CurrentProject.Path & "/" & "الصور" & "/" & [ID] & ".jpg" Psh2 = CurrentProject.Path & "/" & "1الصور" & "/" & [ID] & ".jpg" pic.Picture = Psh pic1.Picture = Psh2 Exit Sub Err: pic.Picture = "" pic1.Picture = "" Exit Sub جرب هذا ووافنا بالنتائج - وان كنت قد فهمت مرادك بشكل خاطئ فأرجو مزيد من الايضاح. تمنياتي بالتوفيق
  2. السلام عليكم ورحمة الله وبركاته فتحت اليوم قاعدة البيانات التي أعمل عليها منذ عدة أيام وعند بدأ العمل علي تعديل أحد التقرير ظهرت لي هذه الرسالة ولا أذكر أني رأيتها من قبل مع العلم أن البرنامج كان يعمل بصورة جيدة مع آخر تجربة بالأمس. وكذلك باقي الكائنات بالبرنامج تعمل بشكل جيد والحمد لله أرجو الافادة عن سبب ظهور هذه الرسالة وطرق العلاج. وجزاكم الله خيرا
  3. هلا جعلت اجابت أخيك أفضل اجابة - ان كانت اجابته وفت مرادك - وليبدو موضوعك أنه مجاب
  4. قم بعمل ضغط واصلاح للملف لديك يبدو أن لديك صور مضمنة كثيرة بالنماذج والتقارير أو قم بسحب النموذج الذي به المشكلة بملف فارغ جديد ثم قم برفع الملف الجديد هنا. تمنياتي بالتوفيق
  5. السلام عليكم ورحمة الله وبركاته جرب هذا المرفق لعله يوافق مرادك وأخبرنا بالنتائج ملاحظة: غير عنوان الايميل المرسل اليه قي هذا السطر من الكود Call sendAsAttach(docname, "testEmil@gmail.com") Barna.rar
  6. السلام عليكم ورحمة الله وبركاته بالاضافة الي ما تفضل به أستاذنا @محمد أبوعبدالله لماذا لا تجرب القيام باغلاق النموذج أو اخفاءه بدلا من التصغير - فان النماذج تعمل داخل بيئة الأكسس حتي لو قمت باخفاء الأكسس فإنه لا يزال متحكم بعمل النماذج والتقارير - فتصغير النموذج يودي الي بقائه تحت النماذج المفتوحة فقط ولا يختفي كما هو معلوم. كنت أتفادي التصغير دائما باغلاق النموذج أو اخفاءه واعادة فتحة مرة أخري عند الحاجة. تمنياتي بالتوفيق
  7. وعليكم السلام ورحمة الله وبركاته ان كان طلبك لبرنامج متكامل بمقابل مادي فضع موضوعك بقسم الاعلانات بالموقع وضع وسيلة للتواصل معك. وان كنت تريد المساعدة لاعداد برنامجك بنفسك فقم بوضع مشكلتك التي تواجهك واحدة تلو الأخري بمواضيع مستقلة وفقا لقواعد المنتدي حتي تجد من يساعدك بحلها من الاساتذة الكرام بالمنتدي ولن يبخل أحد منهم بأن يجود بما يعلم. تمنياتي لكم بالتوفيق والسداد.
  8. جزاكم الله عنا خيرا وجعله الله في موازين الحسنات صدقة جارية ينتفع به ان شاء الله اللهم اشفي والديه بمنك وكرمك شفاءا لا يغادر سقما وجميع مرضا المسلمين ومتعهم بالصحة والعافية ما أحييتهم يا رب العالمين اللهم اجعل ما أصبتهم رفعة في درجاتهم وزيادة في أجورهم يا رب العالمين آمين
  9. السلام عليكم ورحمة الله وبركاته مساهمة مع أستاذنا @محمد أبوعبدالله انظر الي هذا المرفق بالمشاركة التالية لعله يفيدك بشئ
  10. السلام عليكم ورحمة الله وبركاته الحقل يحوي نص بهذا الشكل "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 وجزاكم الله عنا خيرا .
  11. شكرا لكم علي هذا العمل الرائع ما شاء الله جعله الله في موازين حسناتكم
  12. السلام عليكم ورحمة الله وبركاته الحمد لله تم اكتشاف الخطأ بالكود هو عند الخروج من الدوار فور قبل نتيجة الدالة الصورة توضح المقال الخطأ هنا 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 ربما هذا الدالة الطويلة لن يستفيد منها أحد!! ولكن تلك المعلومة البسيطة هامة جدا حتي لا يقع أحد في مثل ما وقعت به (أعلم أن جميعكم أساتذتي لا يخفي عليكم مثل هذا ولكن للتوثيق ولربما مر من هنا مبتدأ مثلي فتفده تلك المعلومة). (أن الكود يسير من الأعلي الي الأسفل فمن الواجب أن ننتبه أن لا ننهي الكود قبل اتمام احتساب النتائج! كما هو موضح بالأعلي) وجزاكم الله خيرا جميعا
  13. السلام عليكم أعتقد أن هذا الكود يعمل ولكن لم اجربه أرجو التجربة والافادة Sheets(2).RefreshAll ملاحظة: الرقم بين الاقواس هو رقم الشيت المراد تحديثه وأعتقد أن هذا الاعداد سيغنيك عن هذا
  14. السلام عليكم ورحمة الله وبركاته أرجو من السادة الخبراء المساعدة في توضيح سبب عدم وجود أي مخرجات لهذه الدالة وهل يوجد سبيل لاختصارها وجزاكم الله خيرا 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)
  15. جزاك الله خيرا F9 ما صنعت شئ ولكن المشكلة حلت والحمد لله كانت القيمة بالخلية A1 قيمة نصية لم يتعرف عليها الاكسل كتاريخ القيمة كانت (31/6/2015) جزاكم الله خيرا
  16. السلام عليكم ورحمة الله وبركاته خبرتي بدوال الاكسل ليست كبيرة ولكن الأمر أعتقد أنه بسيط ولكن لا تظهر لي نتائج صحيحة ولا أدري لماذا استخدمت هذه المعادلة للمقارنة بين تاريخين في حقول الشيت =if(A1>B1;A1;B1) ودائما تظهر لي قيمة الخلية A1 في كل الأحوال ولا أدري لماذا مع أني ضبط تنسيق الخلايا علي أنها short date تحياتي للجميع
  17. هذا رابط صاحب المرفق الأصلي لعلي أكون قد عبثت ببعض الأكود بدون قصد
  18. السلام عليكم ورحمة الله وبركاته أظنك تريد شيئا كهذا هذا مثال أجنبي به ما تريد وزيادة (105 كيلو علي البيعة 😄) رجائا فك الضغط عن المجلد وأبقي كل شئ بداخله في نفس المسار قم بفتح ملف الأكسس وخذ جولة بين الأزرار والتبويبات ثم وافنا بالنتائج DynamicMessage.rar
  19. ومن باب ارجاع الفضل لأهله قد نبهي لهذا الخطأ هذا الرابط لأستاذنا محمد أيمن جزاه الله خيرا. https://www.officena.net/ib/topic/79080-تطبيق-البحث-في-اكثر-من-حقل-دون-استخدام-الاستعلامات/
  20. السلام عليكم ورحمة الله وبركاته جزا الله أخوتي وأساتذتي الكرام كل خير أحسن الله اليكما لقد وجدت الحل والحمد لله - كنت أكتب الاستعلام بطريقة خاطئة أضفت علامة أقتباس زائدة بدون قصد (دا الأكسس دا المعاملة معاه صعبة قوي حرف واحد ما بيعدهوش دا ايه معاملة يهود 😀).
  21. جزاك الله خيرا أخي أبو بسملة اشتقنا للتواصل معكم ومع سائر الاساتذة الكرام بالمنتدي. أخي جرب هذا ولكن لم يفلح ظهرت رسالة خطأ 3420 تقول "object invailid or longer set" = وأظن أن هذا يعني أن "ALike" غير موجودة بالأكسس ملاحظة: أنا مازلت استخدم الأكسس كواجهة امامية
  22. السلام عليكم اولا أخي أنصحك أن تبتعد عن الأسماء المحجوزة بالأكسس لا تستعملها لتسمية عناصر التحكم أو الحقول بالجداول وهكذا فهذا سيؤدي بك للوقوع بمشاكل عند استخدام الأكواد فمثلا كلمة (Width) كلمة محجوزة ثانيا- هذا محاولة للحل لعلها تفيدك جرب هذا test.accdb
  23. السلام عليكم ورحمة الله وبركاته جمعة مباركة عليكم جميعا ان شاء الله أساتذتي الأحبة أستخدم استعلام داخل فورم للبحث بهذا الشكل الموضح بالصورة , ولكن دعت حاجة العمل لربط البرنامج بقاعدة الـ 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 ولكن بعد اجراء التغيرات من النجمة الي العلامة المؤية لم يحدث أي تغير وظل الفورم صامتا لا يبحث أرجو المساعدة فقد حاولت كثيرا عقد مصالحة بين الأكسس والسرفر ولم يقبلا التصالح حتي الآن - الفزعة يا أهل الخير 😀 وتحياتي للجميع
×
×
  • اضف...

Important Information