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

نجوم المشاركات

  1. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      84

    • Posts

      8,919


  2. omar elhosseini

    omar elhosseini

    المشرفين السابقين


    • نقاط

      42

    • Posts

      1,919


  3. Eng.Qassim

    Eng.Qassim

    04 عضو فضي


    • نقاط

      25

    • Posts

      1,120


  4. hassona229

    hassona229

    الخبراء


    • نقاط

      22

    • Posts

      298


Popular Content

Showing content with the highest reputation since 17 ماي, 2022 in all areas

  1. السلام عليكم ورحمة الله وبركاته وددت أن أساهم بالمنتدي - مع قلت ذات اليد - اقصد العلم - - ببعض الأفكار البسيطة والخفيفة لعل أحدا يفيد منها بشىء فتصيبني منه دعوة بظهر الغيب - فيرد عليه ملك "آمين ولك بمثل" ستكون ان شاء الله وقدر متفرقة علي قدر سعة الوقت والله المستعان. فكرة اليوم: كما هو بالعنوان تمرير بيانات من التقرير الي النموذج - او من نموج الي نوذج آخر احيانا تدعو الحاجة الي حساب بعض الأرقام بالتقرير او بالاستعلام دون النموذج - ونحتاج الي هذه الأرقام المحسوبة لنستخدمها بنموذج آخر لاستعمالها بعمليات حسابية أخري أو حتي عرضها فقط من هنا كانت الفكرة: أولا- ننشئ هذا الاجراء العام - والذي ستتلخص مهمته في ثلاث أمور 1- التحقق من كون الفورم المرر اليه البيانات علي قيد الحياه -يعني مفتوح ام لا- 2- استقبال البيانات من التقرير أو النموذج 3- تمريرها الي النموذج الأخر. وهذا هو: Public Sub GetInfoRep(Frm As String, T1rp As Variant, T2rp As Variant, _ T1Fm As String, T2Fm As String) 'Frm Form name 'T1rp Text1 on report 'T2rp Text2 on report 'T1Fm Text1 on Form 'T2Fm Text2 on Form '================================ 'Test if form is open before pass data to it If CurrentProject.AllForms(Frm).IsLoaded = True Then Forms(Frm).Controls(T1Fm) = T1rp Forms(Frm).Controls(T2Fm) = T2rp End If End Sub ثم نستدعيه عند اغلاق التقرير او النموذج هكذا GetInfoRep "Form1", Me.TxDays, Me.TxSalary, "Text2", "text4" والنتيجة: تشاهدونها بالمرفق ودمتم passDataToForm.rar
    6 points
  2. وعليكم السلام 🙂 مثل ما يقول المثل: اش لك في البحر واهواله ، و رزق الله على السيف 🙂 فيه طريقة اسهل من طريقة اخوي موسى السهلة 🙂 في امر فتح النموذج ، في آخر متغير في هذا الامر ، هناك متغير اسمه OpenArgs ، استعمله في ارسال اسم النموذج الذي تريد تفتحه ، هكذا (لا تغير في السطر شيء ، إلا اذا اردت ان تضيف امر تصفية ، او ارسال معلومات اخرى في المتغير OpenArgs) : DoCmd.OpenForm "frm", , , , , , me.name . وعند اغلاق النموذج frm1 او frm2 ، اكتب : Forms(me.openargs).Visible = True جعفر
    6 points
  3. ماشاء الله اخي الحلواني عمل جميل بارك الله فيكم اسمحلي من باب اثراء الموضوع باضافة طريقتين لنقل قيمة حقل او مجموعة حقول من نموذج الى اخر الطريقة الاولى من خلال تحميل قيمة حقل او عدة حقول دفعة واحد في زر امر فتح من خلال OpenArgs مع مراعات الفصل بين الحقول عند تحميل اكثر من حقل باستخدام &"|"& ليكون الامر DoCmd.OpenForm "frm_item", , , , acFormAdd, , KNUM & "|" & KTEXT knum و ktext هي الحقول المطلوب تحميل قيمتها ثم في النموذج المستهدف نستخدم الامر Dim k As Variant k = Split(Me.OpenArgs, "|") Me.KNUM.Value = k(0) Me.KTEXT.Value = k(1) الطريقة الثانية باستخدام TempVars وايضا نستخدم &"|"& للفصل بين الحقول المطلوبه لنتمكن من فصلها في النموذج المستهدف Dim x As TempVars Dim w As Variant w = Val([TxDays]) & "|" & Val([TxSalary]) TempVars("x") = w وفي النموذج المستهدف نضع الامر Dim a As Variant a = Split(TempVars!x, "|") Me.Text2 = a(0) Me.Text4 = a(1) طرق بسيطة من زمن الطيبين ولا ترتقي لعملكم ولكن احببت ان اشاركم استاذي تحياتي
    6 points
  4. السلام عليكم ورحمة الله وبركاته اليكم برنامج الجرد خاص بالمصالح الاقتصادية دمتم في رعاية الله وحفظه. برنامج الجرد العام 2022 (2).rar
    6 points
  5. تفضل أخي السهران 🙂 تم تعريف متغير عام في موديول يحفظ اسم النموذج الأخير ، ومن ثم يستدعيه مجددا عند إغلاق النموذج frm visbelform.accdb
    5 points
  6. شاهد المرفق اخي DATE (1).xlsm
    5 points
  7. AutoFilter with 34 Dynamic Filter Criteria اتوفلتر ب 34 دينامك شرط كما لم تراه من قبل !!!_XlDynamicFilterCriteria.xlsb
    5 points
  8. Private Sub CommandButton1_Click() ActiveCell.Value = dpFrom.Value(1) ActiveCell.Offset(1).Value = dpFrom.Value(2) End Sub
    5 points
  9. وعليكم السلام 🙂 انا عانيت الكثير مع الخط Al-Mohanad Extra Bold ، واضطررت الى تركه ، وانتهت مشاكلي 😁 مع العلم بأن مشاكل الخط موجودة في برنامج الوورد اكثر منها من مشاكله في الاكسس !! المشكلة تكون لما المؤسسة التي تتعامل معاها يقولون لك انه الخط المعتمد وما نقدر نغيره (فتأخر استعمالهم لاحد التقارير المهمة لمدة حوالي 5 سنوات ، ولما جاءت ادارة جديدة على طول وبدون اي مشكلة ، استعملو خط آخر واستعملو التقرير !!) . من وجهة نظري ، عندك حلين: 1. استعمال خط آخر قريب في الشكل لهذا الخط ، والحمدلله فيه خطوط قريبه منه ، 2. تستعمل الاكسس 2007 فما فوق (صيغة accdb ، لأن صيغة mdb لا تملك هذه الميزة) ، بحيث في التقرير ، تجعل تنسيق نص الحقل : . مما يجعله يقبل التنسيق وتغيير اي جزء فيه : . . وبما ان هذا التنسيق يعمل بلغة HTML ، فممكن ان نعمله برمجيا (بما اني لا اعرف لغة HTML ، فالطريقة اللي اعملها هي: اعمل التنسيق اللي اريده كما في الصورة ، وبعدين اعرض كود HTML اللي الاكسس عمله (debug.print me.text4) ، واضبط برمجتي على اساسه 🙂 ) ، وتظهر لي هذه النتيجة: . حسب ما يراه الكمبيوتر <div align=right><font face="Calibri (Detail)">نص وارقام </font><font face="Times New Roman" size=5 color=red>123456 </font><font face="Calibri (Detail)">ثم نص وارقام</font></div> بعد ان عملت عليه التعديل ليناسب برمجتي <div align=right> <font face="Calibri (Detail)">نص وارقام </font> <font face="Times New Roman" size=5 color=red>123456 </font> <font face="Calibri (Detail)">ثم نص وارقام</font> </div> . فالمطلوب الآن عمل كود ليعرف الارقام : . اما اذا كانت الارقام باللغة العربية ، فبدل Asc يجب ان نستعمل AscW ، لأن الارقام العربية لها ارقامها الخاصة برمجيا : . جعفر
    4 points
  10. جميل ، اذن LisetViewData ليس اسم النموذج ، سوف نرسل قيمتين في المتغير OpenArgs ، يجب ان يكون الامر عندك هكذا ، نرسل اسم النموذج وقيمة حقل LisetViewData : DoCmd.OpenForm "frm_QualityEvaluation", , , , , acDialog, me.name & "|" & LisetViewData . عند اغلاق النموذج frm_QualityEvaluation ، اكتب : dim x() as string x=split(me.openargs,"|") Forms(x(0)).Visible = True او Forms(split(me.openargs,"|")(0)).Visible = True . وبالنسبة للسجل: dim x() as string x=split(me.openargs,"|") rs.Open "SELECT * FROM tbl_QualityEvaluation WHERE id_Ccallg = '" & x(1) & "' And Deletrecord =1 ORDER BY tbl_QualityEvaluation.id_Ccallg DESC;", sqldb او rs.Open "SELECT * FROM tbl_QualityEvaluation WHERE id_Ccallg = '" & split(me.openargs,"|")(1) & "' And Deletrecord =1 ORDER BY tbl_QualityEvaluation.id_Ccallg DESC;", sqldb . جعفر
    4 points
  11. 4 points
  12. سيدي الفاضل ، ما اعرف وين المشكلة ، ولكن خلينا نحاول نصيدها ، بتجزئة الكود 🙂 شو نوع الحقل id_Ccallg ، نص او رقم ؟ 1. اوقف عمل الاسطر 1 و 2 و 3 (اعمل الاشارة ' على يسار السطر ، او كلمة Rem) ، والمفروض الكود يعطيك كل النتائج حسب Deletedrecord=1 ، 2. اسمح للاسطر 1 و 3 بالعمل ، والمفروض تحصل على نفس الخطأ السابق (هنا نتعامل مع الحقل id_Ccallg كنص) 2. اوقف السطر 1 ، واجعل السطر 2 يعمل (هنا نتعامل مع الحقل id_Ccallg كرقم) Dim x() As String, myWhere As String x = Split(Me.OpenArgs, "|") myWhere = "[id_Ccallg]='" & x(1) & "'" '1 'myWhere = "[id_Ccallg]=" & CInt(x(1)) '2 myWhere = myWhere & " And" '3 myWhere = myWhere & " [Deletrecord]=1" rs.Open "SELECT * FROM tbl_QualityEvaluation WHERE myWhere ORDER BY id_Ccallg DESC;", sqldb جعفر
    3 points
  13. الشكر لله بالتوفيق ان شاء الله ولو وقفت في حاجه ان شاء الله لن نتاخر في المساعده
    3 points
  14. برنامج حساب أرباب العهد بالمصالح الحكومية محدث 2022 تم تعديل البرنامج طبقا لقرار وزير المالية 610 لسنة 2021 والكتاب الدورى رقم 171 لسنة 2021 بقوم البرنامج بحساب القيمة الخاصة بأرب العهد بالمصالح الحكومية لعدد 14 موظفا بالمصلحة وكل ما عليلك سوى ادخال البيانات التالية : 1- إسم الموظف 2- الوظيفة 3- عدد شهور مدة التأمين والافتراضى انها 12 شهر سنة مالية كاملة 4- تحديد نوع الاجر سواء كان ( اجر وظيفى - اجر أساسى) 5- القيمة التقديرية لرب العهدة 6- بالضغط على زر الطباعة لطباعة نموذج ارباب العهد الملف مرفق https://docs.google.com/spreadsheets/d/1kxGqlK8rAoK6c427RZpQmsX052qJLGZx2q57z1p17WY/edit?usp=sharing حساب أرباب العهد عام 2022.xlsm
    3 points
  15. وعليكم السلام ورحمة الله وبركاته تفضل اخى الكريم ترحيل الغياب.xlsm
    3 points
  16. طبعا هذا مجرد فاصل (ممكن يكون علامة/علامات او رقم/ارقام او حرف/حروف) بين بيانات الحقول ، وممكن استعمال اي فاصل ولكن بشرط هذا الفاصل لا يكون في بيانات الحقول ، لأن هذه الحقول يتم تجميعها كجمله واحدة ، مثلا: اذا كانت بيانات : الحقل1: /ذهبت الى السوق، ومنها الى المتجر./ الحقل 2: /قيمة المادة: 75/ الحقل 3: /الاحد - 22/05/2022 // 11:32ص/ فإذا جمعنا الحقول الثلاث اعلاه ، فتكون الجملة: /ذهبت الى السوق، ومنها الى المتجر.//قيمة المادة: 75//الاحد - 22/05/2022 // 11:32ص/ فيجب ان نختار فاصل غير موجود في هذه الجملة (او اي جمل في المستقبل) ، فبإختيار مبرمج سابق العلامة | تصبح الجملة اعلاه: /ذهبت الى السوق، ومنها الى المتجر./|/قيمة المادة: 75/|/الاحد - 22/05/2022 // 11:32ص/ ونلاحظ من السهل فصل الجملة الى 3 جُمل 🙂 نعم ممكن استعمال اي فاصل آخر (نلاحظ بأن العلامات التالية موجودة في الحقول الثلاث اعلاه هي: ، . : - / _ فلا يمكن استعمالها) ، فممكن نستعمل (لاحظ اني استعملت عدد كبير من الارقام او الاشارات ، فأكون متأكد انه من المستحيل ان يكون هذا الفاصل جزء من بيانات الحقول) : 11111 فتصبح الجملة: /ذهبت الى السوق، ومنها الى المتجر./11111/قيمة المادة: 75/11111/الاحد - 22/05/2022 // 11:32ص/ جججججج فتصبح الجملة: /ذهبت الى السوق، ومنها الى المتجر./جججججج/قيمة المادة: 75/جججججج/الاحد - 22/05/2022 // 11:32ص/ /\/\ فتصبح الجملة: /ذهبت الى السوق، ومنها الى المتجر.//\/\/قيمة المادة: 75//\/\/الاحد - 22/05/2022 // 11:32ص/ ******** فتصبح الجملة: /ذهبت الى السوق، ومنها الى المتجر./********/قيمة المادة: 75/********/الاحد - 22/05/2022 // 11:32ص/ ولكن حذار من استخدام // كفاصل ، وإلا ستكون الجملة اعلاه من 4 حقول وليس من 3 !! امثله اخرى من الفواصل اعلاه وانها تعمل بطريقة صحيحة ، وسأترك لكم طريقة تفكيك الحقول الثلاث : 11111 : عدد الطلبة 11111111معدل الدرجات1111111وهذه نسبة ضئيلة جججججج : تأجججججججججمال القمرججججججيوم اصبح بدرا شكرا اخوي ابو عبدالله ، واخوي مبرمج سابق ، خليتونا نعصر افكارنا 🙂 جعفر
    3 points
  17. السلام عليكم ورحمة الله وبركاته أخي الكريم أشرف إن دققت في المعادلة تجد أنه باستخدام الدالة and سيأخذ الأرقام بين 5 -10 باستثناء هذين الرقمين للأسف أما المعادلة التي لا تستثنيهما هي كالآتي إن سمح أمرك أخي الحبيب:((يمكنك تجريبها)). =IF(AND(I5>=5;I5<=10);I5;0) تقبل تحياتي العطرة. تعديل معادله IF.xlsx
    3 points
  18. وعليكم السلام 🙂 في احد برامجي ، نقرأ من الباركود الاحادي ، و QR ، و الجوازات والهويات MRZ ، كلها من حقل واحد ، وكما ترى فعدد الحقول كثيرة في النموذج ، وكلما يكون التركيز على حقل ، يصبح لونه اخضر (حتى يعرف المستخدم المؤشر موجود على اي حقل) ، ولكن ، على حدث "عند فقد التركيز" لكل حقل و زر في في النموذج ، يكون الكود لإعادة التركيز على الحقل الاول ، حقل ادخال الباركود . ولا توجد طريقة خاصة لمعرفة اذا كان ادخال المعلومة كان باليد او بالباركود ، إلا بحساب الوقت الذي اخذه ادخال المعلومة ، لذا أنصحك اتباع الطريقة اعلاه 🙂 جعفر
    3 points
  19. تفضل اخى الحسام هذا الموقع به شرح لكيفيه جلب البيانات عن طريق السيلنيوم سوف يفيدك في طلبك
    3 points
  20. السلام عليكم ورحمة الله استخدم الكود التالى Sub MinMax() Dim arr() On Error Resume Next ReDim Preserve arr(200) For Each c In Range("I2:I200") If c.Value >= 1000 And c.Value <= 3000 Then arr(p) = c.Value p = p + 1 End If Next X = WorksheetFunction.Max(arr) Y = WorksheetFunction.Min(arr) Sheet2.TextBox1.Value = X Sheet2.TextBox2.Value = Y End Sub
    3 points
  21. وعليكم السلام ورحمة الله وبركاته عدل السطر ThisWorkbook.SaveCopyAs "work2 " الى ThisWorkbook.SaveCopyAs work2 بمعنى ازل علامتى التنصيص ""
    3 points
  22. السلام عليكم في هذا الموضوع شد انتباهي استخدام like مع علامة النجمة في معيار دالة Dlookup وهو استخدام غير مألوف لاسباب نبينها في ثنايا المشاركة بداية علامة النجمة تستخدم بديلا عن الاحراف او الارقام الغير معروفة في الحقل ونستخدمها عندما نرغب في البحث او الفلترة بجزء من قيمة الحقل ومن المعروف ان هذه الدالة ترجع قيمة حقل واحد استنادا إلى المعلومات المحددة في المعايير فاذا وجدت القيمة في اكثر من حقل ترجع القيمة الاولى وبالتالي لو ان لدينا عدة اصناف لها الارقام التالية 100055556600 100055556601 100055556611 100155556600 100055556500 فعند كتابة جزء من قيمة الحقل مثلا 10005 او 0555566 او 5555 الخ هنا ستعود الدالة بقيمة اول حقل طابق الجزء من المعيار لذا يجب تحديد معايير فريدة تضمن أن تكون قيمة الحقل التي يتم إرجاعها صحيحة والا فقد نحصل على القيمة غير المرغوبة واعتقد ان السبب لهذ الاستخدام ⬇️ ومن وجهة نظر مبرمج سابق ان الاجدى ان يكون لكل منتج رقم باركود يمثل رقم فريد وبالتالي يمكن استخدام الدالة بمعايير تحقق الهدف الذي وضعت له وحتى لو كانت هناك علاقة بين هذه المنتجات فتوجد حلول اخرى اذا اردنا العمل وفق قواعد صحيحة ولكن هذا امر اخر الموضوع يمثل وجهة نظر غير ملزمة ولا يقصد منه النقد والله الموفق
    3 points
  23. شاهد المرفق تسجيل التاريخ.xlsm
    3 points
  24. وعليكم السلام 🙂 ما يفرق اذا كان الحقل منظم او لا ، المهم القيمة 🙂 هذا الموضوع يناقش نفس الفكرة ، وبعده طازه 😁 جعفر
    3 points
  25. تفضل جرب هذا التعديل في اي مكان داخل محرر الأكواد الصق الكود التالي Function NewSours(StartDate As Variant, EndDate As Variant) As Variant On Error Resume Next Dim varFilter As Variant StartDate = Format([TxtStartDate], "\#mm\/dd\/yyyy\#") EndDate = Format([TxtEndDate], "\#mm\/dd\/yyyy\#") If Not IsNull(TxtStartDate) And IsNull(TxtEndDate) Then varFilter = " Format$([Startdate], '\#mm\/dd\/yyyy\#') = '" & StartDate & "' " ElseIf Not IsNull(TxtStartDate) And Not IsNull(TxtEndDate) Then varFilter = " Format$([Startdate], '\#mm\/dd\/yyyy\#') Between '" & StartDate & "' AND '" & EndDate & "'" ElseIf Len(TxtStartDate) = 0 And Len(TxtEndDate) = 0 Then varFilter = Null End If NewSours = "SELECT * FROM tbl_Employ " & IIf(Len(varFilter) = 0, "", "Where " & varFilter) End Function و لاستدعاء الوظيفة استخدم الكود التالي ListData.RowSource = NewSours(TxtStartDate, TxtEndDate) SearchFormatListBox.accdb
    3 points
  26. عليكم السلام اكسس يتعرف على رقم الزر ولكن الحرف متروك للمستخدم لذا يلزم ان نترجم الرقم الى حرف ، من خلال جدول في المثال وضعت لك في الجدول حروف الازرار انجليزية كما هي عندي ، ويمكنك استبدالها بأي لغة تريد لاحظ : عندما تخرج الرسالة خالية هذا يعني ان الزر لم يدرج رقمه وحرفه ضمن الجدول Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Dim i As String i = Nz(DLookup("nmKey", "tblNumberKey", "idNmKey =" & KeyCode)) MsgBox i End Sub test.mdb
    3 points
  27. Sub Test() Const iNum As Double = 50 Dim a, t As Double, i As Long, k As Long Application.ScreenUpdating = False With ActiveSheet a = .Range("A4:A" & .Cells(Rows.Count, 1).End(xlUp).Row).Value ReDim b(1 To UBound(a, 1) * 10, 1 To 1) For i = LBound(a) To UBound(a) k = k + 1 If a(i, 1) <= iNum Then b(k, 1) = a(i, 1) ElseIf a(i, 1) > iNum Then t = a(i, 1) Do b(k, 1) = IIf(t >= iNum, iNum, t) t = t - iNum k = k + 1 If t <= iNum Then b(k, 1) = t: Exit Do Loop Until t < iNum End If Next i .Range("E10").Resize(k, UBound(b, 2)).Value = b End With Application.ScreenUpdating = True End Sub
    3 points
  28. لاحظ النموذج المرفق واشتغل عليه ربما لايشبه ماتفضلت به ...لكنه يعطي فكرة g1.accdb
    3 points
  29. رابط تحميل السيلينيوم https://github.com/florentbr/SeleniumBasic/releases/download/v2.0.9.0/SeleniumBasic-2.0.9.0.exe رابط تحميل الدريفر الخاص بالسلينيوم https://chromedriver.storage.googleapis.com/102.0.5005.27/chromedriver_win32.zip الكروم درايفر لابد ان يكون اصداره مثل اصدار الكروم المصطب على جهازك
    2 points
  30. السلام عليكم مشاركه مع اخى العزيز مهندس قاسم جزاه الله كل خير لعلها تكون ما تريد Private Sub أمر13_Click() x = Me.rsdall DoCmd.GoToRecord , , acNewRec Me.rsd1 = x End Sub تقبلوا مرورى وتمنياتى لكم بالتوفيق رصيد_1.accdb
    2 points
  31. فقط غيير المعيار الى الاسم و الغي المفتاح الاساسي عشان يقبل التكرار تفضل التعديل test-a.accdb
    2 points
  32. ما ذا تعني هذه ..... هل وجدت الحل أم ماذا ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ على العموم تفضل جرب الشيفرة هذه ...... x = NumX xx = Expr1 r = DCount("[numx]", "XtremQ", "[numx]='" & x & "'" & " and [expr1]=" & xx) If r > 0 Then If MsgBox(" هل تريد تكرار حفظ السجل ؟ ", vbYesNo, " تنبيه ") = vbNo Then Me.Undo Exit Sub Dim RS As Object Set RS = Me.Recordset.Clone RS.FindFirst "[numx]='" & x & "'" & " and [expr1]=" & xx If Not RS.EOF Then Me.Bookmark = RS.Bookmark End If End If
    2 points
  33. افتح التقرير في عرض التصميم وزد طول جزء التفاصيل أو جزء الذيل أو جزء الرأس حسب طبيعة عرض البيانات لديك، بحيث يساوي مساحة صفحة فارغة عند الطباعة وبهذا الشكل تحصل علي صفحة فارغة وصفحة ملأي
    2 points
  34. نعم اخي الكود يكيف نفسة حسب مساحة الجدول أيا كانت انسخ Module1 and Module2 الي ملفك علي شرط توجية الازار الي نفس الماكروهات وأيضا الشرط الاهم هو ان أسماء زري المعاينة قبل الطباعة و الطباعة أسمائهم علي التوالي Bt_2 and Bt_3 وان تكون الازرار من عناصر تحكم النموذج وليس من عاصر تحكم Activex او غير أسمائهم حسب ما تصنع الازرار في الكود التالي مع ملاجظة عناويين خلايا من يوم الي يوم في الكود هذه الاسطر التي يجب ان تصحح خسب ما تفعل From_Day = Range("N5") To_Day = Range("O5") و If Application.Caller = "Bt_2" Then و If Application.Caller = "Bt_3" Then في الكود التالي Sub Print_Preview_And_Print() ' From_Day = Range("N5") To_Day = Range("O5") ScreenOff For Num_Day = From_Day To To_Day If Application.Caller = "Bt_2" Then Call Hide_Rows(Num_Day) ActiveSheet.PrintPreview End If If Application.Caller = "Bt_3" Then Call Hide_Rows(Num_Day) ActiveSheet.PrintOut End If Next ActiveSheet.Cells.EntireRow.Hidden = False ScreenOn ' End Sub
    2 points
  35. وعليكم السلام اجعل التنسيق الشرطي هكذا InStr([notes2];"اعتذار") او يمكن عمل موديول يتم استدعاءه عند فتح النموذج مثلا ...لان طريقة التنسيق مطولة Public Sub colCtrlReq(frm As Form) Dim setColour As String setColour = RGB(175, 175, 175) Dim ctl As Control For Each ctl In frm If ctl.ControlType = acTextBox _ Or ctl.ControlType = acListBox Then If InStr(ctl, "اعتذار") <> 0 Then ctl.BackColor = setColour End If End If Next ctl Set ctl = Nothing End Sub ويتم استدعاءه بهذه الطريقة Call colCtrlReq(Me)
    2 points
  36. الحدث الذي يقوم بعمل المطلوب هو "عند التغيير" ، ولكن ، وبما ان الحقل (aa2 مثلا) يكون في وضع "تعديل" لما تكتب فيه ، والقيمة اللي فيه لا تكون محفوظه في الحقل بعد ، فلا يمكن استعمال قيمته بعد ، لذا ، يجب الاستعانه بحقل آخر (aa22 مثلا ، كما في الصورة التالية ، باللون البرتقالي ، ومخفي) ، بحيث يأخذ قيمة Text. الحقل aa2 ، وهكذا الحال للحقل الثاني bb2 ، . . عليه تصبح المعادلات: Private Sub Form_Load() Me.aa2 = Empty Me.bb2 = Empty Me.ee2 = Empty Me.aa22 = Empty Me.bb22 = Empty End Sub Private Sub aa2_Change() Me.aa22 = Me.aa2.Text Call Calc_ee2 End Sub Private Sub bb2_Change() Me.bb22 = Me.bb2.Text Call Calc_ee2 End Sub Sub Calc_ee2() Me.ee2 = Val(Nz(Me.aa22, 0)) + Val(Nz(Me.bb22, 0)) End Sub جعفر 1512.Add fields.accdb.zip
    2 points
  37. وعليكم السلام 🙂 موجود في الاستعلام . والاستعلام جاهز للعمل 🙂 جعفر
    2 points
  38. تفضل جرب هذا التعديل و لا تنسى ان تضع عنوان السيرفر Function NewSours(StartDate As Variant, EndDate As Variant) As Variant On Error GoTo ErrH Dim conn As ADODB.Connection, rs As ADODB.Recordset, strConnString As String, varFilter As Variant StartDate = Format([TxtStartDate], "\#mm\/dd\/yyyy\#") EndDate = Format([TxtEndDate], "\#mm\/dd\/yyyy\#") If Not IsNull(TxtStartDate) And IsNull(TxtEndDate) Then varFilter = " Format$([Startdate], '\#mm\/dd\/yyyy\#') = '" & StartDate & "' " ElseIf Not IsNull(TxtStartDate) And Not IsNull(TxtEndDate) Then varFilter = " Format$([Startdate], '\#mm\/dd\/yyyy\#') Between '" & StartDate & "' AND '" & EndDate & "'" ElseIf Len(TxtStartDate) = 0 And Len(TxtEndDate) = 0 Then varFilter = Null End If '================================================================== strConnString = "عنوان السيرفر" '================================================================== Set conn = New ADODB.Connection conn.Open strConnString Set rs = conn.Execute("SELECT * FROM tbl_Employ " & IIf(Len(varFilter) = 0, "", "Where " & varFilter)) If Not rs.BOF And Not rs.EOF Then rs.MoveFirst 'رؤوس الأعمدة ListData.AddItem rs.Fields(0).Name & ";" & rs.Fields(1).Name & ";" & rs.Fields(2).Name & ";" & rs.Fields(3).Name While (Not rs.EOF) ListData.AddItem rs.Fields(0) & ";" & rs.Fields(1) & ";" & rs.Fields(2) & ";" & rs.Fields(3) rs.MoveNext Wend End If rs.Close Set rs = Nothing ErrH: Exit Function End Function SearchFormatListBox.accdb
    2 points
  39. وعليكم السلام 🙂 طرفي التاريخ يجب ان يكون لديهم نفس التنسيق ، مثلا: . جعفر 1510.SearchFormatListBox.accdb.zip
    2 points
  40. في النموذج ، اعمل حقل بإسم str_Key ، وضع فيه هذا الكود Private Sub str_Key_KeyPress(KeyAscii As Integer) Debug.Print ChrW(KeyAscii) Me.str_Key = Empty End Sub . او على مستوى النموذج: Private Sub Form_KeyPress(KeyAscii As Integer) Debug.Print ChrW(KeyAscii) End Sub الفرق ان هذا الكود يستعمل KeyAscii ، اي ارقام الحروف ، بينما الكود في المشاركات السابقة يستعمل KeyCode ، اي ارقام ازرار الكيبورد !! جعفر
    2 points
  41. شاهد المرفق اخي ولطباعة جدول 5 فقط اعمل كما في الصورة او اذا اردت طباعة جدول يوم 2 حتي جدول يوم 4 استخدم من 2 الي 4 Print.xlsm
    2 points
  42. وعليكم السلام 🙂 ومن وحي جواب اخوي ابوخليل ، وبدون جدول Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) msgbox Chr(KeyCode) End Sub جعفر
    2 points
  43. وعليكم السلام 🙂 اهلا وسهلا بك في المنتدى ، وللاستفادة القصوى من المنتدى ، رجاء قراءة قوانين المنتدى: اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة الطلب في غاية البساطة ، والمنتدى مليء بمثل هذا السؤال ، فاستعمل البحث للحصول على هذه المواضيع ، واليك احد الروابط وبه طلبك جعفر
    2 points
  44. تفضل 🙂 الآن الكود يبدأ بالرقم الذي تكتبه في اول حقل : Private Sub Numberx_AfterUpdate() ' 'Access looks at it this way: 'user 1 = first entry was done in the Form by hand 'user 2 = the code below enters values automatically ' 'so it will give the popup option to either: save these change, drop the saving, or place them in clipboard 'to avaoid this message, we should first save the hand made value, then run the code 'save the Records If Me.Dirty Then Me.Dirty = False Dim rst As DAO.Recordset Dim i As Long Set rst = Me.RecordsetClone rst.MoveFirst i = Me.Numberx - 1 Do Until rst.EOF i = i + 1 rst.Edit rst!Numberx = i ' rst!serial = Me.str_serial rst.Update rst.MoveNext Loop 'MsgBox "Done" End Sub . او Private Sub Numberx_AfterUpdate() ' 'Access looks at it this way: 'user 1 = first entry was done in the Form by hand 'user 2 = the code below enters values automatically ' 'so it will give the popup option to either: save these change, drop the saving, or place them in clipboard 'to avaoid this message, we should first save the hand made value, then run the code 'save the Records If Me.Dirty Then Me.Dirty = False Dim rst As DAO.Recordset Dim i As Long Set rst = Me.RecordsetClone rst.MoveFirst i = Me.Numberx Do Until rst.EOF rst.Edit rst!Numberx = i ' rst!serial = Me.str_serial rst.Update i = i + 1 rst.MoveNext Loop 'MsgBox "Done" End Sub جعفر
    2 points
  45. تفضل ...اتمني ان تكن انتهت المهمة الملف خلطة العملاء.xlsm
    2 points
  46. بعد اذن الاخوة هذا الشيء ينسخ المدى المحدد ويحوله الى pdf حدد المدى الذي تريد وفعل الماكرو Option Explicit Sub rngSelect() Dim R Dim fil_name fil_name = ThisWorkbook.Path & "\" & fil_name & Format(Now(), "dd-mm-yyyy- hh.mm.ss") R = (Selection.Address) Range(R).ExportAsFixedFormat Type:=xlTypePDF, Filename:=fil_name MsgBox "النسخة تجدها في نفس مكان الملف الاصلي", vbInformation End Sub
    2 points
  47. تفضل أخي @hougar جرب هذا : DLookUp("[Barcode]","[products]","[Barcode] Like '*"& Me.srchb &"*'")
    2 points
×
×
  • اضف...

Important Information