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

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

  1. ياسر خليل أبو البراء

    ياسر خليل أبو البراء

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


    • نقاط

      15

    • Posts

      13165


  2. ياسر العربى

    ياسر العربى

    الخبراء


    • نقاط

      7

    • Posts

      1510


  3. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      6

    • Posts

      12869


  4. جلال الجمال_ابو أدهم

    • نقاط

      5

    • Posts

      1417


Popular Content

Showing content with the highest reputation on 05/22/16 in مشاركات

  1. أخي الكريم صلاح استخدام كلمة Sheets فقط في هذا السطر استخدام سيء إلى حدٍ ما For Each Sh In Sheets الأفضل استخدام كلمة Worksheets إذ أن كلمة Sheets تتعامل مع كل أنواع أوراق العمل بما فيها Charts .. وهذا قد يسبب مشاكل في حالة وجود ورقة عمل Chart في ملفك أما استخدام نطاق محدد كما وضعت A1:C5000 فسيء أيضاً حيث قد تزيد البيانات أو تنقص أما استخدام CurrentRegion فإنه يكيف النطاق الحالي للعمل عليه أياً كان مدى هذا النطاق بالنسبة لكود الأخ الحبيب عبد السلام فهو جيد ولكن يعيبه حدوث أخطاء وقد تجنب الأمر بوضع جملتين لتجنب الأخطاء أما إذا أزيلت هاتين الجملتين فإنه يحدث خطأ في حالة أن الفلترة غير قائمة أو أن الفلترة قائمة ولا يوجد شروط للتصفية (وأنا أفضل الابتعاد عن تلك الجمل ومعالجة الموقف بالكود نفسه) عموماً كل السبل تؤدي المطلوب إن شاء الله تقبل تحياتي
    2 points
  2. اخوانى واحبتى فى الله ارفق لكم مثال الاكسيل مفتوح وعليه زياده التنقل عند الضغط على زر الانتر + رابط به كيفية الاتصال لكل انواع قواعد البيانات اكسل اكسيس اوراكل وغيرهم الرابط وده الكود كامل Imports System.Threading Imports System.Globalization Imports System.Data Public Class Form1 Sub lodrefrsh() 'اجراء فرعى لانشاء الاتصال وعرضه بالداتا جريد ',قمت بعمله باجراء فرعى حتى استخدمه مع زر الاضافه لتحديث وعرض البيانات بالداتا جريد Try Dim MyConnection As System.Data.OleDb.OleDbConnection Dim DtSet As System.Data.DataSet Dim MyCommand As System.Data.OleDb.OleDbDataAdapter MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source=TestConect2003.xls;Extended Properties=Excel 8.0;") MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection) MyCommand.TableMappings.Add("Table", "TestTable") DtSet = New System.Data.DataSet MyCommand.Fill(DtSet) DataGridView1.DataSource = DtSet.Tables(0) MyConnection.Close() Catch ex As Exception MsgBox(ex.ToString) End Try End Sub Private Sub BtnInsert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnInsert.Click If (String.IsNullOrWhiteSpace(TxtId.Text) OrElse String.IsNullOrWhiteSpace(TxtName.Text)) Then MessageBox.Show("من فضلك املاء البيانات اولا", "تنبيه") Return End If Try Dim MyConnection1 As System.Data.OleDb.OleDbConnection Dim myCommand As New System.Data.OleDb.OleDbCommand Dim sql As String MyConnection1 = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; Data Source=TestConect2003.xls;Extended Properties=Excel 8.0;") MyConnection1.Open() myCommand.Connection = MyConnection1 sql = "Insert into [Sheet1$] (id,name,tel,email) values('" & TxtId.Text & "','" & TxtName.Text & "','" & TxtTel.Text & "','" & TxtEmail.Text & "')" myCommand.CommandText = sql myCommand.ExecuteNonQuery() MyConnection1.Close() Catch ex As Exception MsgBox(ex.ToString) End Try MsgBox("تم تسجيل البيانات بنجاح") TxtId.Text = "" TxtName.Text = String.Empty TxtTel.Text = String.Empty TxtEmail.Text = String.Empty lodrefrsh() TxtId.Focus() End Sub Private Sub TxtEmail_KeyDown(sender As Object, e As KeyEventArgs) Handles TxtEmail.KeyDown 'للانتقال If e.KeyCode = Keys.Enter Then TxtId.Focus() End If End Sub Private Sub TxtId_KeyDown(sender As Object, e As KeyEventArgs) Handles TxtId.KeyDown 'للانتقال If e.KeyCode = Keys.Enter Then TxtName.Focus() End If End Sub Private Sub TxtName_KeyDown(sender As Object, e As KeyEventArgs) Handles TxtName.KeyDown 'للانتقال If e.KeyCode = Keys.Enter Then TxtTel.Focus() End If End Sub Private Sub TxtTel_KeyDown(sender As Object, e As KeyEventArgs) Handles TxtTel.KeyDown 'للانتقال If e.KeyCode = Keys.Enter Then TxtEmail.Focus() End If End Sub End Class ConectExcel.rar
    2 points
  3. Dim ws As Worksheet On Error Resume Next For Each ws In Worksheets ws.ShowAllData Next On Error GoTo 0
    2 points
  4. وعليكم السلام أخي العزيز صلاح جرب الكود التالي Sub Test() Dim Sh As Worksheet For Each Sh In ThisWorkbook.Worksheets Sh.AutoFilterMode = False Sh.Range("A1").CurrentRegion.AutoFilter Next Sh End Sub تقبل تحياتي
    2 points
  5. اطلالتك هي التي تستحق الاحتفاء اطال الله عمرك في طاعته والبسك ثياب العافية
    2 points
  6. بعد اذن الاستاذ /ياسر العربى تم رفع هذا الكود فى مشاركة منفصله حتى لا ننسى هذه المشاركة طلب استخدام فورم ادخال وبحث فى ملف مضبطة مجلس ادارة تم ارفاق كود الحل من المبدع / ياسر العربى تحياتى فورم ادخال و بحث واستدعاء بيانات من شيت اكسيل.rar
    2 points
  7. 2 points
  8. اخي الكريم تفضل دا مثال لترحيل البيانات اما موضوع البحث ياريت توضح محتاج تبحث ازاي والبحث يبقي في شيت مستقل ولا ازاي التفاصيل تساعد الاخوة الكرام في مساعدتك اما طلبك 1) شاشة ادخال 2) شاشة بحث مبهم قليلا ياريت تفاصيل تقبل تحياتي نموذج.rar
    2 points
  9. السلام عليكم ورحمة الله تعالى وبركاته الحقيقة بدون ان اطيل عليكم كنت اريد تحزيم قاعدة بيانات لدى وتحويلها الى ملف تنفيذى ولكن لم يعجبنى الشكل المعتاد لتثبيت اى برنامج فاردت ان يكون برنامجى مميزا ففكرت مليها فى تصميم قاعدة بيانات تقوم بتثبيت نفسها داخل الويندوز فاعاننى الله على تصميمها دون الحاجة الى تحزيمها القاعدة الت صممتها بمجرد الفتح تبدا تلقائيا فى عمل تثبيت لها داخل الويندوز كا التالى اللوجو الخاص بى ويمكنك تغييره حسب ذوقك هذا اللوجو به شى مهم جدا وهى وحدة نمطية لتغيير لون البروجرس بار وهذا ايضا اردته ان يكون مختلفا عن الاخرين ناتى بعد ذلك الى نموذج التعريف الخاص بالبرنامج ويمكنك كتابة تعريف بسيط بالبرنامج وذلك لتعريف المستخدم ببرنامجك . لقد تركته فارغا ثم بعد ذلك نموذج الشروط والاتفاقيات الخاصة بك ويجب ان يوافق عليها المستخدم لمتابعت التثبيت . ولقد تركتها فارغه ثم بعد ذلك نموذج اكود التفعيل وذلك للتاكد من المالك او المشترى وبه كود بسيط فقط عند كتابة اربع حروف فى كل مربع نص يقوم بالانتقال الى المربع التالى تلقائيا كود التفعيل هو 1111222233334444 والان مع نموذج مكان التثبيت وبه اكواد مهمه جدا اتمنى ان تستفيدو منها اولا كود مكان تثبيت الويندوز وكود التغيير واختيار مكان اخر غير مكان الويندوز واجهتنى مشاكل كثيرا فى مسالة الصلاحيات الخاصة بالويندوز فاضررت الى انشاء مكان اخر غير Program file اسميته Program RK قد يسال سائل ولماذا RK اجيبه قائلا ملكش دعوه دا كلمة سر ههههههههه هذا هو الفولدر الخاص ببرنامجى وهذه الصورة بعد التنصيب والان مع نموذج التنصيب والشرح بداخله وبيمكنك الوصول اللى برنامجك بسهولة من سطح المكتب او قائمة ابدا وذلك لان البرنامج يقوم بعمل شورتكت لهم تلقائيا على سطح المكتب وقائمة استارت صورة من سطح المكتب وبعد التثبيت يقوم البرنامج بمسح كافة النماذج والجداول المؤقتة كنت قد انشائتها لتساعدنى فقط فى التنصيب ستجد برنامجك بعد التثبيت خالى من نماذج التثبيت هذه اما البرنامج الذى قمت بالتثبيت من خلاله فسيظل كما هو وذلك اذا احتجت الى التثبيت من جديد اتمنى ان ينال اعجابكم نظرا لنفاذ حجم رفع المرفقات سارفعه فى المشاركة التالية ان شاء الله والان مع البرنامج اتمنى ان ينال على اعجابكم . Elsayed Pro.rar
    1 point
  10. بسم الله الرحمن الرحيم ومن جديد نعود اليكم بدرس مفيد فى سلسة كن محترف vba او تعليم vba للمبتدئين الجزء السابع اتمنى لكم مشاهدة ممتعة https://youtu.be/h8YFAdNjqok
    1 point
  11. السلام عليكم استاذتى الافاضل اسمحولى ان اشاركم فى الرد عسى الله ان يسدد خطانا تم تعديل العلاقة بين جدول اجازة ودول اجازة ترصيد تم اضافة مرع بحث سريع فى نموذج الاستعلام تم اضافة استعلام اجمالى بعدد السنوات لكل موظف باقى نموذ الادخال استاذنى اخى الفاضل هانى ان شاء الله غدا لانى اتضور جوعا ولكن من النوم هههههه اما بالنسبة للمرفق اتمنى ان تهرسه النهاردة وتطلع فيه اى خطا يقابلك علشان نقدر نشوف فيه ايه صورة متحركة من مربع البحث http://g.recordit.co/xWfxwyuGPE.gif sedo.rar
    1 point
  12. لم يعطني خطأ وفي هذه الحالة كود أخونا عبد السلام يكون أفضل طالما أن الفلترة لن تكون في صفوف موحدة
    1 point
  13. السلام عليكم مرفق ملف موضح بها الخلايا التي اريد التعديل عليها شكرا اختبار.rar
    1 point
  14. شكرا للاساتذة الافاضل سرعة الاستجابة هى العادة دائما تم الحل ايضا من خلال هذا الكود ممكن اعرف الفرق و الافضل Sub unfilter() Dim Sh As Worksheet For Each Sh In Sheets Sh.AutoFilterMode = False Sh.Range("a1:c5000").AutoFilter Next Sh End Sub شكرا عرفت الفرق بعد تجربة الثلاثة اكواد و هو فى الكود الثانى عدم الارتباط باعمدة معينة
    1 point
  15. أخي الكريم أبو حماده الرجاء الصبر حتى يرد أحد الأعضاء على آخر مشاركة لك .. بعد محاولة للعمل على الملف الأخير واجهتني مشكلة في عمود التاريخ ، وأحاول حلها الآن .. ففي الملف الأخير تنسيق التاريخ يبدو أنه تسبب في مشكلة ولم يعد يعمل مع الكود .. هل بإمكانك إرجاع التنسيق الخاص بالتاريخ كما كان بالملف الأصلي لأنني حاولت ولم يفلح الكود أيضاً .. ماذا غيرت في تنسيق التاريخ حيث أن الأمور أصبحت على غير طبيعتها فالكود يقرأ التاريخ بشكل والإكسيل بشكل آخر مما أحدث خللاً في الكود ..حيث على سبيل المثال 8 / 1 / 2016 أي الشهر هو يناير ، يقرأ على أنه 1 / 8 / 2016 أي شهر أغسطس ... الملف الأسبق لم يكن به تلك المشكلة جاري العمل عليها .. أو يمكنك الرجوع إلى التنسيق الأصلي في الملف الأسبق لمحاولة تفادي المشكلة
    1 point
  16. أولا - التقرير بيعتبر مقاسات الورق وفقا لنوع الطابعة الافتراضية بالجهاز فهناك مثلا طابعات مخصصة لطباعة مقاسات معينة من الورق غير مقاس A4 فان كنت تريد التصميم وفقا لمقاس غير معتاد أو غير موجود بالطابعة الافتراضية بجهازك يجب توصيل الطابعة المخصصة لطباعة هذه المقاسات بالجهاز أو جعلها الافتراضية وان لم تكن موصلة بالجهاز. ثانيا - ان كنت تريد الطباعة على المقاس العادى للورق A4 ولكن تريد أن يحتوى التقرير على كل الحقول فقم بضبط حجم عناصر التحكم بالتقرير وكذلك ضبط الهوامش كما أخبرتك من قبل ليتسع التقرير لكافة البيانات
    1 point
  17. اذا تفضل ووافنا بالنتائج برنامج عروض اعقار - نسخة 1.000 17-5-2016.rar
    1 point
  18. 55 _ فورم ادخال و بحث واستدعاء بيانات من شيت اكسيل _ الاستاذ / ياسر العربى
    1 point
  19. اشكركم اساتذتي الكرام علي تعبكم ومجهودكم عوضكم الله خيرا ولقد تعلمت منكم الكثير اكرر شكري وتقديري لكل مساهماتكم
    1 point
  20. أحسن الله اليك أبا خليل
    1 point
  21. اهلا ابو نادر اولا انا عمل على اكسس 2003 لذا يتسائل الكثير لماذا لا ارد على استفساراتهم ولكني ارد على الاستفسارات التي بلا مرفقات واحيانا في مثل حالك اقوم بنقل المرفق الى جهاز آخر للاطلاع ان شاء الله الآن سانقل مثالك واوافيك بمرئياتي
    1 point
  22. بعد اذن الاستاذ القدير ياسر العربي تفضل اخي العزيز اضافة الطلب الاخير الى اليوزرفورم مع التقدير يوزرفورم للبحث.rar
    1 point
  23. اشكرك استاذ ياسر العربي والشكر لك فريق اوفسينا الرائع الملف يفى بالغرض اكرر احترامى وتقديري وشكرا لكم جميعا
    1 point
  24. 1 point
  25. جزيت خيرا ورأيي : مشاركتك هذه تستحق الفصل بعنوان وموضوع جديد لتميزها فحين يحتاج احد لكيفية انشاء مجلد فلن يبحث عن صورة او ادراج صورة
    1 point
  26. أخي الكريم أبو حمادة الحمد لله أن تم حل المشكلة بنسبة كبيرة لاحظت في الملف المرفق أنك قمت بزيادة عمود (لما لم تنوه عن الأمر ..فأي تعديل في الورقة يستلزم تعديل في الكود ومراجعة للكود من جديد .....!!!) بالنسبة للشروط فقد تم العمل عليها ..فقد تم العمل على الخلايا الخاصة بالتاريخ والخلية الخاصة V3 والتي كانت بالمرفق السابق U3 .. صراحة لا أدري الشروط إلى الآن بشكل واضح .. ممكن توضح المطلوب بمسميات الإكسيل .. يعني قول الخلية اللي عنوانها كذا بتجيب البياانات من العمود كذا اللي في ورقة العمل كذا لابد من وضع آلية للتوضيح لكي تستطيع التواصل بشكل أفضل ... أنا غير مستعد أن أقضي ساعات أخرى في حل ، لمجرد التخمين ملحوظة أخرى عمود الصنف في الملف القديم كان Q الآن في الملف الجديد بقدرة قادر أصبح رقمه 8 !!! فهلا استقررت على ملف واحد فقط للعمل عليه هل عرفت السبب الآن في عدم استجابة الأعضاء لموضوعاتك بشكل كبير لابد أن تعي أن الموضوع الجيد يحمل عنوان وااااااضح معبر عن الطلب ، به ملف مرفق واااااااضح ومعبر عن الملف الأصلي تماماً ، وبالموضوع شرح واضح لطلب واحد محدد وصريح ، ويكون الشرح بلغة الإكسيل أي ابتعد عن الشرح لمسميات طبيعة عملك فإذا كنت محاسب لا تتوقع مني أن أفهم اللغة الخاصة بالمحاسبة على الإطلاق ، ولكن اجعل اللغة التي تتحدث بها لغة الإكسيل (صف - عمود - خلية - نطاق - ورقة عمل ) ، والأفضل في معظم الحالات إرفاق شكل النتائج المتوقعة التي تزيل أي لبس بالموضوع تقبل تحياتي
    1 point
  27. وجزيت خيراً بمثل ما دعوت لي أخي الفاضل الحمد لله الذي بنعمته تتم الصالحات تقبل تحياتي
    1 point
  28. بعد الالتزام بالتوجيهات و عدم تكرار المواضيع تفضل المطلوب ANADE GOLD GYM.rar
    1 point
  29. تقديري واحترامي لمرورك الكريم اخي الكريم ابو البراء لن يكون اروع منك ومن مشاركاتك تقبل تحياتي
    1 point
  30. بارك الله فيك أخي الحبيب ياسر العربي وجزيت خيراً على الموضوع الجميل فكرة بسيطة وتنفيذها بسيط ورائع وممتاز تقبل وافر تقديري واحترامي
    1 point
  31. أخي الكريم جرب الرابط التالي عله يفي بالغرض الرابط من هنا
    1 point
  32. شكرا أخى ياسر على الرد الموفق
    1 point
  33. وعليكم السلام ورحمة الله وبركاته أخي الكريم يوجد الكثير من الموضوعات بهذا الشأن في المنتدى يمكنك استخدام خاصية البحث في المنتدى وإن شاء الله تصل لمبتغاك تقبل تحياتي
    1 point
  34. أخي الكريم أبو حمادة يرجى فيما بعد في أي موضوعات قادمة أن يكون الملف المرفق معبر عن الملف الأصلي .. لاحظ أنني طلبت منك أكثر من مرة إرفاق ملف وفيه المعادلات في الخلايا الخضراء ولم تستجب ، فهل إذا لم تستجب لمطلبي ترى هل يمكن أن أستجيب لمطلبك ؟؟!! راعي الآخرين كما تحب أن يراعيك الآخرون جرب الكود التالي عله يفي بالغرض (الكود استغرق مني أكثر من 3 ساعات فلا تنسانا بدعوة بظهر الغيب) Sub Filter_Transfer_Data() Const nGroup As Long = 25 Const nInsert As Long = 3 Dim Ws As Worksheet, Sh As Worksheet Dim myDate1 As Date, myDate2 As Date Dim arr1 As Variant, arr2 As Variant Dim I As Long, J As Long, P As Long Set Ws = Sheets("add") Set Sh = Sheets("Aldata") Application.ScreenUpdating = False Application.DisplayAlerts = False On Error Resume Next Sheets("Temp").Delete Sheets.Add.Name = "Temp" On Error GoTo 0 If IsDate(Sh.Range("W2")) And IsDate(Sh.Range("W3")) Then myDate1 = Sh.Range("W2"): myDate2 = Sh.Range("W3") myDate1 = DateSerial(Year(myDate1), Month(myDate1), Day(myDate1)) myDate2 = DateSerial(Year(myDate2), Month(myDate2), Day(myDate2)) End If With Ws .AutoFilterMode = False .Range("A2:R2").AutoFilter Field:=15, Criteria1:=">=" & myDate1, Operator:=xlOr, Criteria2:="<=" & myDate2 .Range("A2:R2").AutoFilter Field:=17, Criteria1:=Sh.Range("U3").Value .Range("A2").CurrentRegion.Offset(1).SpecialCells(xlCellTypeVisible).Copy Sheets("Temp").Range("A1") .AutoFilterMode = False End With On Error Resume Next Sh.Range("A6:R10000").SpecialCells(xlCellTypeConstants).ClearContents arr1 = Sheets("Temp").Range("A1").CurrentRegion.Value I = ((UBound(arr1, 1) \ nGroup) + 1) * (nGroup + nInsert) arr2 = Sh.Range("A6").Resize(I, UBound(arr1, 2)).Formula For I = 1 To UBound(arr1, 1) P = P + 1 For J = 1 To UBound(arr1, 2) arr2(P, J) = arr1(I, J) Next J If I Mod nGroup = 0 Then P = P + nInsert Next I Sh.Range("A6").Resize(UBound(arr2, 1), UBound(arr2, 2)).Formula = arr2 Sheets("Temp").Delete Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub تقبل تحياتي
    1 point
  35. ربنا يحفظك استاذ أنس دروبي
    1 point
  36. تفضل الملف مع إمكانية عرض المشروع.... بن علية 122222221.rar
    1 point
  37. السلام عليكم شكرا جزيلا للاستاذ ابو البراء ولكني لي طلب آخر اذا ارد استخدام الكود في الورقة الثانية المرفقة كيف يكون ؟؟؟؟؟ شاكر لك جدا وادعوا الله ان يبارك لك في صحتك وعافيتك وفي اولادك وعائلتك اختبار.rar
    1 point
  38. الاول يقول اشتر بدرهم وفصّل بدرهمين انا ذكرت ان مربعات الخيار لا فائدة منها وفي النتيجة لا يظهر الحل الذي تم اختياره انظر كيف تم تعديل المثال : اربط جدول f باي برنامج تريد mathtest2.rar
    1 point
  39. 54 _ بحث متقدم مع امكانية اضافة شيت بالاسم المحدد من الليست او الذهاب الى شيت الاسم _ الاستاذ / ياسر العربى
    1 point
  40. السلام عليكم وبعد اذن اخي كرار لماذا لا تعبر عن النتيجة داخل الجدول بالارقام بدلا من الحروف ؟ اذا عملت هذا ستختصر 75% من هذه الاكواد سأعدل على المثال حسب هذه الرؤية ، وفي النهاية يبقى القبول من عدمه خاص بك
    1 point
  41. ما عاش اللى يجعلك تخبص ليش ما قلت هيك من الأول واش لون تستغنى عن كل ها الشىء ونكتفى باهدول السطور فقط DoCmd.RunCommand acCmdSelectRecord DoCmd.RunCommand acCmdCopy DoCmd.RunCommand acCmdRecordsGoToNew DoCmd.RunCommand acCmdSelectRecord DoCmd.RunCommand acCmdPaste ولكن لابد من الوقوف على السجل المراد تكراره قبل دعس الزر طبعا انا بحاول التكلم بلهجتك (من شان هيك تلقانى ممتاز ) على فكرة اتفقنا على
    1 point
  42. تفضل تم اجراء بعض التعديلات اللازمة على جدول transaction ولكن لا تنسى ما اتفقنا عليه ولا تنسى موافتنا بالنتائج tt.rar
    1 point
  43. وحتي المتقدم ...أعتبر دا تحدي!!؟؟ مفيش حاجة مستحيلة يا أخي العزيز أنس
    1 point
  44. أخي الكريم عبد الكريم طبقاً لآخر مشاركة تفضلت بها ..عدد الاحتمالات ستة وليس خمسة كما ذكرت وإليك نفس الملف المرفق الذي أرفقته لك من قبل ..وضعت القيمة 60 في الخلية A2 فظهرت الاحتمالات الممكنة كلها ... يرجى الإطلاع مرة أخرى على الملف (مع العلم أنه كلما زادت الأرقام كلما زادت الاحتمالات بشكل كبير مما قد يتسبب في تهنيج الإكسيل لأن الاحتمالات في هذه الحالة ستفوق الإمكانيات المتاحة) تقبل تحياتي TestThisFile.rar
    1 point
  45. هذا مثال : في العمود A رقم الفاتورة , وفي العمود B المبلغ فلو كان المطلوب إيجاد كل الفواتير التي مجموعها 60 سيكون عندنا خمس خيارات : حسب الأعمدة المبينة في الصورة C D E F G الخيار الأول قي العمود C : مجموع الفاتورتين 1 , 4 الخيار الثاني في العمود D : مجموع الفاتورتين 1 , 5 الخيار الثالث في العمود E : مجموع ثلاث فواتير 2 , 4 , 5 وهكذا بقية الخيارات . فكيف العمل في هذه الحالة ؟
    1 point
  46. السلام عليكم أخي لم انتبه لعدم رفع الملف لكنني سارفعه الآن رغم انه يختلف عن ما ذكرت في مشاركتك الاخيرة و ساحاول العمل على ملفك الاخير ان شاء الله 2 - Copy.rar
    1 point
  47. أسف على الإزعاج اخوي إبراهيم ... تم حل المشكلة ، ولكي تعم الفائدة سأضع الطريقة .. أنشء زر ثم اذهب إلى خصائص ثم حدث ثم عند النقر ثم ضع الكود التالي : Dim stDocName As String stLinkCriteria = "[RecordName]=" & Me![SubForm]![RecordName] stDocName = "ReportName" DoCmd.OpenReport stDocName, acPreview, , stLinkCriteria حيث RecordName هو اسم السجل المراد عرض تقريره . SubForm هو اسم النموذج الفرعي الذي يحتوي على هذا السجل . ReportName هو اسم التقرير الذي سوف يفتحه للعلم : تم أخذ هذه الطريقة من موضوع الأخ محمد طاهر هنا أتمنى أن يكون الشرح سهلاً .. وشكراً للإخوان اللي ساعدوني ..
    1 point
  48. سنتحدث هنا عن فتح التقرير بالكود سواء لكامل السجلات أو لسجل محدد و أيضا سنتحث عن خاصيتي تجميع النقرير و عمل فواصل للصفحات أولا فتح التقرير من نموذج بالكود سواء لكامل السجلات أو لسجل محدد بالنسبة لأمر Docmd.openreport له أربعة معاملات arguments نختار منها ما نريد و نترك ما نريد ليأخذ قيمته الافتراضية الجزء الأول هواسم النموذج المراد فتحه و نكتبه بين "" فيكون الحد الادني للجملة مثلا هو docmd.openForm "Report1" و اذا بدأنا نكتب فى الفيجوال بيزيك فسيساعدنا ليذكرنا بمكونات كل جزء بعد كتابة الفاصلة التي تفصل بين الاجزاء المختلفة للجملة. جرب كتابة الجملة السابقة ، و اكتب فاصلة بعدها و انظر ماذا سيحدث.. الجزء الثاني هو طريقة عرض النموذج بعد فتحه هل فى وضع العرض العادي ، مشاهدة الطباعة أم وضع الطباعة الباشرة و هو الافتراضي الجزء الثالث هو اسم فلتر معد مسبقا علي هيئة استعلام ، علي أن يحوي الاستعلام علي الحقول الموجودة فى النموذج الجزء الرابع الشرط و يكون علي هيئة [fieldname] = Forms![formname]![controlname on other form] و هو الجزء الذي استخدمناه فى المثال السابق بان رقم الموظف = رقم الموظف الموجود فى مربع النص فى النموذج و فى المثال عندما أردنا فتح النموذج بكامل سجلاته اختر خصائص الزر و من صفحة الاحداث ، اختر حدث عند النقر لتشاهد الكود و هو Dim stDocName As String stDocName = "RepEmpCourses-noGroup" DoCmd.OpenReport stDocName, acPreview و هي طريقة منظمة يستخدمها المعالج لاستخدام المتغيرات داخل الجملة كخطوة وسيطة و الكود السابق يناظر DoCmd.OpenReport "RepEmpCourses-noGroup" و لفتح التقرير علي موظف محدد Dim stDocName As String stLinkCriteria = "[EmpID]=" & Me![EmpID] stDocName = "RepEmpCourses-noGroup" DoCmd.OpenReport stDocName, acPreview, , stLinkCriteria اي انها تناظر DoCmd.OpenReport "RepEmpCourses-noGroup", , , "[EmpID]=" & Me![EmpID] هذا حال كون حقل EmpID رقمي اما اذا كان نص فنضيف علامتي '' الي الجملة ، فتصبح DoCmd.OpenReport "RepEmpCourses-noGroup", , , "[EmpID]='" & Me![EmpID] & "'" ----------------------------------------------- ثانياً : الجزء الثاني فى المثال و هو الخاص بتجميع البيانات ما الفرق بين التقريرين الموجودان فى المثال التقرير الاول الذي يعرض بيانات الموظفين نجده يعرض كل البيانات من زر " التقرير للجميع" و هذا التقرير نجد فيه أنه لعرض بيانات الموظف و معها تاريخ ميلاده و رقمه بالاضافة الي الدورات التي حصل عليها سنجد تكرار لا دعي له للاسم و الرقم وتاريخ الميلاد بجانب كل دورة لذا فمن المناسب عمل تجميع لبيانات الموظف أولا ، ويليها عرض للدورات و هذا سيمكننا أيضا من عمل احصائيات علي البيانات مثل عد عدد الدورات التي حصل عليها كل موظف و لكن كيف نقوم بعملية التجميع من وضع تصميم التقرير نضغط علي ايقونة التجميع المهشرة باللون اللبني فى الصورة التالية فتظهر لنا شاشة الترتيب و التجميع و منها يمكن اختيار الترتيب فقط أو الترتيب و عمل رأس للمجموعة و/أو ذيل للمجموعة و هنا في المثال اخترنا عمل الترتيب برقم الموظف ثم التجميع باسم الموظف و طبعا التجميع بالرقم أفضل لانه رقم من ناحية و لامكانية تشابه الاسماء من ناحية و لكن هذا لغرض المثال فقط و نختار من الجزء الأسفل اظهار الرأس أو التذييل من عدمه Group Header Group Footer و هنا اخترنا اظهار الرأس فقط فتظهر لنا مجموعة اسمها رأس اسم الموظف Emp Name Header و فيها نسحب الكائنات المراد تكرارها فى رأس المجموعة كما فى المثال و من خصائص رأس المجموعة أو تذييلها يمكن تحديد اختيار بدء صفحة جديدة من عدمه ------------------------------------------------------------------- ثالثا : لاظهار صفحة جديدة فى التقرير توجد طريقتان اما أن نظهرها بناء علي كونها قبل أو بعد رأس أو تذييل مجموعة من مجموعات التقرير من وضع تصميم التقرير اختار رأس أو تذييل أي مجموعة ثم من خصائص الرأس أو التذييل ( اختر الرأس أو التذييل ، ثم ايقونة الخصائص ، او اضغط f4 ) ثم من قائمة Format Force New Page و اختر After Selection او Before Selection بحسب الحالة و الطريقة الأخري هي ادراج كائن فاصل الصفحات من وضع التصميم من صندوق الادوات إختر فاصل الصفحة Page BReak و هو ايقونة علي شكل مستطيلان مفصولان الايقونة رقم 15 فى الشكل التالي : و ضعها فى المكان الذي تريد أن يكون به فاصل للصفحة
    1 point
×
×
  • اضف...

Important Information