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

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

  1. أبو إبراهيم الغامدي
  2. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      8

    • Posts

      9,814


  3. الـعيدروس

    الـعيدروس

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


    • نقاط

      3

    • Posts

      3,277


  4. سليم حاصبيا

    سليم حاصبيا

    أوفيسنا


    • نقاط

      2

    • Posts

      8,723


Popular Content

Showing content with the highest reputation on 16 مار, 2021 in all areas

  1. وانا سأوضح قصد اخوي ابو ابراهيم ، ولكن بالنظر في الملف بطريقة اخرى ، ليست الشفرة ، وانما استيراد البيانات الى جدول مؤقت ، وباستعلامات إلحاقية 🙂 - عملت برنامج اكسس جديد ، ثم استوردت من ملف النص IAS_Out_Cs_Detail.txt ، ثم نتابع طريقة الاكسس التلقائية لإستيراد الملف الى جدول جديد tbl_tmp ، وبدون تنظيف ، - عملت نسخ لجميع بيانات الجدول والصقتها في صفحة اكسل ، حتى يكون التحليل سهل : الحقول الصفراء والبرتقالية والمربع الاحمر ، هي معلومة واحدة ، اي ان جميع هذه الحقول لسجل واحد (رجاء المتابعة لشرح هذا) ، الحقول الصفراء متكررة مرتين ، فمثل ما قال اخوي ابو ابراهيم ، ممكن جعلها في جدول مستقل ، وفي الكود اشار اليه (If row Like) ("مركز*"Then ) ، الحقول البرتقالية كذلك ممكن جعلها في جدول مستقل (ElseIf row Like) ("الحساب*" Then) ، ونلاحظ بأن الحقول ابتداءً من field16 لسنا بحاجة اليها ، لأنها موجودة في المربع الاحمر ، وهذا ما اشار اليه اخوي ابو ابراهيم لما قال: "يوجد في هذا الملف بيانات خارجة عن الصف" ، والبيانات في المربع الاحمر هي للجدول الثالث ، وهذا الجدول يجب ان يحتوي على "رقم سجل" للجدول الاول ، و "رقم سجل" للجدول الثاني : . وبهذه الطريقة ، نعمل استعلام الحاقي لبيانات كل جدول ، واستعمال المعايير المناسبة لتنظيف البيانات قبل ادخالها للجدول 🙂 طريقة العمل تكون : 1. الاكسس يعمل اول جدول تلقائيا ، ونطلب منه ان لا يستورد الحقول التي لا حاجة لنا بها ، ثم في نهاية نطلب منه حفظ طريقة الاستيراد : . 2. نعمل استعلام الحاقي لكل جدول (قد نحتاج الى 3 استعلامات او اكثر) ، وتنظيف البيانات بإستخدام المعايير المناسبة ، 3. ثم عمل كود ليقوم بعمل 1 (طبها الاستيراد سيكون من نفس اسم الملف ولن يتغير ، فلابد لنا من عمل طريقة لهذه النقطة) و 2 🙂 وطبعا كود اخوي ابو ابراهيم جاهز وانظف واسهل للفهم 🙂 جعفر
    4 points
  2. أهلا بك.. أعتذر إليك إن كنت أحزنتك. في هذه المشاركة سوف أحاول مع من يتبرع من الزملاء من قراءة واستخلاص البيانات من الملفات النصية، وكيف يمكن وضع المحددات التي تساعد على ذلك.. الملف النصي: IAS_Out_Cs_Detail.txt * من الممكن جعل البيانات في جدول واحد.. يخض هذا الإجراء لصاحب العلاقة..! لكني لا أشجع عليهلكونه يتسبب في وجود كم كبير من البيانات المتكررة! - يتكون هذا الملف من ثالث طبقات من البيانات وكل طبقة منها يمكن أن تكون في جدول خاص، وهذا من الناحية الفنية أرتب لكنه مكلف من ناحية الشفرة! -- الطبقة الأولي: بيانات مركز التكلفة. -- الطبقة الثانية: بيانات أوامر الصرف. -- الطبقة الثالثة: بيانات بنود أوامر الصرف. * كيف يمكن استخلاص البانات؟ - بما أننا سنذهب إلى تقسيم البيانات إلى ثالث طبقات، فسوف نقوم بعمل التالي. -- إيجاد محدد فريد لكل طبقة (وليس للبيانات) -- تحويل البيانات في كل طبقة إلى مصفوفة بيانات وفقاً لمنط تكراري منتضم؛ إن أمكن (المصفوفة تسهل ضبط البيانات،لكن ليست شرطاً في المعالجة) -- إرسال البيانات إلى جدول البيانات * قراءة البيانات من الملف النصي هناك العديد من الطرق لقراءة البيانات من الملف النصي، من أسهلها التعليمة التالية Sub IAS_Out_Cs_Detail() Dim i As Integer Dim row, cols, col '-- open text file Open App_Path & "IAS_Out_Cs_Detail.txt" For Input As #1 '-- read data from text file Do Until EOF(1) '-- read text file line by line Line Input #1, row Loop Close #1 End Sub - أرجو التكرم يالذهاب لملف تعليمات VBA لمعرفة مدلولات هذه التعليمة *معالجة البيانات ستكون معالجة البيانات كما في الشفرة التالية Sub IAS_Out_Cs_Detail() Dim i As Integer Dim row, cols, col '-- open text file Open App_Path & "IAS_Out_Cs_Detail.txt" For Input As #1 '-- read data from text file Do Until EOF(1) '-- read line by line Line Input #1, row '-- make condition for each layer '-- first layer If row Like "مركز*" Then cols = Split(row, ":") For Each col In cols Debug.Print col Next Debug.Print String(100, "+") ElseIf row Like "الحساب*" Then cols = Split(row, ":") For Each col In cols Debug.Print col Next Debug.Print String(100, "=") Else cols = Split(row, vbTab) For Each col In cols Debug.Print col Next Debug.Print String(100, "-") End If Loop Close #1 End Sub - يوجد في هذا الملف بيانات خارجة عن الصف، سأتطرق لطريقة معالجتها عند رفع المثال * نقل البيانات للجداول التعليمات الخاصة بتقل البيانات للجداول سأشير إليها عند رفع المثال
    4 points
  3. لا عدمنا أفكارك ولا كلت أناملك أ. جعفر،، طبعا كود اخوك ابو ابراهيم أكثرا تعقيدا.. ما يحرني أنك تتحدث وكأنك جالس بجانبي!
    2 points
  4. أهلا بك.. نحن لدينا أفكاراً وإبداعاً وحيلاً كما للآخرين!
    2 points
  5. جيث انك لم ترفع ملف لما تريد اليك هذا المثال Mushal.xlsx
    1 point
  6. استعملت هذه الدالة: Function Add_RMZ() On Error GoTo err_Add_RMZ Dim rstT As DAO.Recordset Dim rstR As DAO.Recordset Dim rstX As DAO.Recordset Set rstT = CurrentDb.OpenRecordset("Select * From TAB") Set rstR = CurrentDb.OpenRecordset("Select * From TAB_RMZ") Set rstX = CurrentDb.OpenRecordset("Select * From TAB_RMZ_X") rstR.MoveFirst rstT.MoveFirst Do Until rstR.EOF Start_Here: 'Debug.Print 'Debug.Print rstR!RMZ, rstT!NASS 'Debug.Print "-----------------" If InStr(rstT!NASS, rstR!RMZ) > 0 Then 'Found it 'But is it already in TAB_MRZ_X rstX.FindFirst "[MNO]=" & rstT!MNO & " And [RMZno]=" & rstR!RMZno If rstX.NoMatch Then rstX.AddNew rstX!MNO = rstT!MNO rstX!RMZno = rstR!RMZno rstX.Update End If End If If rstR.EOF = False And rstT.EOF = False Then rstR.MoveNext ElseIf rstT.EOF Then Exit Do End If Loop If rstR.EOF = True And rstT.EOF = False Then rstR.MoveFirst rstT.MoveNext GoTo Start_Here End If Exit_Add_RMZ: rstT.Close: Set rstT = Nothing rstR.Close: Set rstR = Nothing rstX.Close: Set rstX = Nothing MsgBox "Done" Exit Function err_Add_RMZ: If Err.Number = 3021 Then Else MsgBox Err.Number & vbCrLf & Err.Description End If Resume Exit_Add_RMZ End Function . واعرف فيها ملاحظات 😁 جعفر 1361.RMZ02.accdb.zip
    1 point
  7. انا فهمي بطيء بعض الاوقات 😁 رجاء اعطني مثالين اثنين ، علشان اقدر اقتدي بهم 🙂 جعفر
    1 point
  8. أشكرك جزيل الشكر أخي sandanet على ردك الموفق ،هذا هو ماكنت أريده جزاك الله حيراً😋
    1 point
  9. عليكم السلام استاذ ازهر عبد العزيز تفضل هذه المحاولة ارجو ان تكون موفقة military-1.rar
    1 point
  10. وهنا يأتي الابداع ، كل مبرمج يتفنن في عمله 🙂 للتجربة ، قمت بإستخدام الكود من الرابط ، ونتيجة الجدول كانت غير صحيحة/كاملة : . لذا ، فهذا الميدان يا حميدان ، تستطيع الاستفادة من ذاك الكود وتطوعه لحاجتك ، او بالتحليل تفهم ملف النص ، وتشارك في كود يعمل 🙂 جعفر
    1 point
  11. إذا كان هناك علاقة بين التقارير فيمكن عملها كتقارير فرعية في في تقرير واحد. وإذا لم يكن فيمكن تصدير كل تقرير على حدة ثم دمج الثلاث تقارير في ملف pdf واحد باستخدام سطر الأوامر وأحد أدوات التعامل مع ملفات pdf مثل: 2PDF https://www.cmd2pdf.com
    1 point
  12. عليكم السلام طلبك ليس دقيقا فيمكن تحقيق ذلك باستخدام نموذج رئيسي وآخر فرعي داخله ويمكن تحقيقة باستخدام قائمتين اذا نقرت على الاسم في الاولى تظهر الاسماء المرتبطة في القائمة الثانية ويمكن تظهر الاسماء المرتبطة برسالة فقط بمعنى لا يكفي ان تضع جدولين فقط بل انت من يجب ان يعمل النموذج بالتصميم الذي تريد وبالنتيجة التي تريد ان تظهر
    1 point
  13. تفضل أخي الكريم تجريبي.accdb
    1 point
  14. السلام عليكم اخواني احببت مشاركتكم بطرقتي في استخدام واجهة مستخدم لاكثر من لغة ولقلة المواضيع ذات الاهمية في هذا الجانب في المكتبة العربية قمت بفضل الله بدمج طريقتين مشهورتين في عملية تعدد اللغات طبعا طريقةلعرض النماذج وطريق لعرض الرسائل والتقارير الهدف من هذا الدمج سيتبين لك عند تصفح المثال متعدد اللغات حديث.rar
    1 point
  15. هذه المعادلة =MAX(0,SUM(C5,-D5)) و اذا لم تعمل معك استبدل الفاصلة ", " بفاصلة منقوطة " ;" (حسب اعدادات الجهاز عندك) =MAX(0;SUM(C5;-D5))
    1 point
  16. وعليكم السلام 🙂 بما انك اخترت ان تكون الصورة خلفية للنموذج (وليست كائن مستقل) ، فالصورة سيتغير مكانها بحجم الشاشة اذا استعملت Center (اي انها ستكون في منتصف الشاشة دائما) : . لذا وجب عليك استعمال Top Left بحيث مكانها لا يتغير ، ومن البداية ، العب في الصورة ، واضف المساحات الفارغة التي تحتاج اليها من فوق ومن اليسار ، وعلى اساسها سيكون الزر دائما ثابت 🙂 جعفر
    1 point
  17. 1 point
  18. تحديث جديد تم اضافة دالة لتجميع الاعمدة واسمها SumListViewItem Public Function SumListViewItem(ByVal ColumnIndex As Integer) As Double حيث ColumnIndex هى رقم العمود المراد جمعه علما بان ترقيم الاعمدة يبدأ من 0 ادرجت التحديث فى قاعدة البيانات المرفقة الاداة مع المرفق MsAccessListviewACX1.00.rar
    1 point
  19. بالنسبة للانتقال عن طريق tab لا أعرفها. لكن إذا أردت تجميد نص ما حتى لا يستطيع أحد التعديل عليه يمكنك عمل ذلك بسهولة. قم بتنزيل (المطور) إذا كان الأوفيس لديك انجليزي تجد اسمه (developer) كما في الصورة المرفقة ثم حدد على النص المراد تجميده واضغط على (تجميع) كما في الصورة . اتمنى ان تكون الطريقة مقاربة لما تريده.
    1 point
  20. السلام عليكم غصنا في أعماق البحار ونرى أعمالك في العمق تشع نوراً حبيت أرد على هذا الموضوع رغم انه منذ القدم واضن الكثير من الأعضاء الجدد حيستفيدو منه اعجبني الملف ( التنسيق وتركيبة أكواد خبورية نادرة ) بارك الله فيك أستاذ عبدالله وانار طريقك حيث ماكنت واينما كنت تحياتي وشكري
    1 point
  21. السلام عليكم جرب المرفق واي تعديلات او اضافات انا موجود وعذراً على التأخير تعرف شواغل الدنيا المطلوب ترحيل _ALI_4.rar
    1 point
  22. استبدل كود زر الاضافة بهذا الكود Private Sub CommandButton1_Click() Dim sh As Worksheet Dim R As Integer, N As Integer, Endrow As Integer, ALI As Long Set sh = Sheets(TextBox4.Value) ALI = sh.Cells(Rows.Count, 1).End(xlUp).Row + 1 For R = 0 To 10 If Me.Controls(myCon(R)).Text = "" Then N = N + 1 Next If N <> 0 Then MsgBox "ملف فارغ لا يمكن الأضافة": GoTo 1 Me.MousePointer = 11 With Sheets("الكشف الرئيسي") Endrow = .Range("A" & .Rows.Count).End(xlUp).Row + 1 For R = 0 To 10 .Cells(Endrow, R + 1).Value = Me.Controls(myCon(R)).Value If TextBox4.Value = sh.Name Then sh.Cells(ALI, R + 1).Value = Me.Controls(myCon(R)).Value End If Next R End With KH_A ActiveWorkbook.Save Me.MousePointer = 0 MsgBox "تمت الأضافة بنجاح" 1 End Sub وهذا المرفق المطلوب ترحيل _ALI_1.rar
    1 point
  23. اخي الكريم ضع هذا الكود Sub print_userform() UserForm1.PrintForm End Sub
    1 point
  24. أنا كنت شغال على برنامج بيعمل نفس الشغل ده وكملته الحمد لله بمساعدة بعض الأخوة الأكارم أعضاء المنتدى هرفعه هنا للفايدة ولو حد حابب يضيف اي تعديلات حسب متطلبات شغله ادارة عهد المستودع.rar
    0 points
×
×
  • اضف...

Important Information