بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
3697 -
تاريخ الانضمام
-
Days Won
149
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو Foksh
-
ترتيب الفصول في تقرير من الصف الاول الي الصف الثالث ثانوي
Foksh replied to ابوالعزائم's topic in قسم الأكسيس Access
العفو أخي الكريم ، نحن هنا أسرة واحدة ، وكلنا نساعد ونساند بعضنا البعض ، ويوماً ما سأحتاج مساعدتك في معضلة لم أجد لها حل بإذن الله تعالى 😉 . جهز نفسك 😁 . -
وعليكم السلام ورحمة الله وبركاته ،، جرب هذا التعديل على حسب ما فهمت من الشرح Sub Test_Optimized() Dim ws As Worksheet, dataArr As Variant, outputArr() As Variant Dim i As Long, ii As Long, p As Long, startRow As Long, endRow As Long Dim chunkSize As Long, chunkStart As Long, chunkEnd As Long Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.EnableEvents = False Set ws = ActiveSheet chunkSize = 5000 ReDim outputArr(1 To chunkSize * 10, 1 To 14) With ws .Columns("Q:P").Clear .Columns("P").ColumnWidth = 12 .Range("R1").Resize(, 14).Value = Array("الدفعة", "ج", "ت ح", "ت م", "ت ع", "ل ع", "ل ح", "ل م", "ل ع1", "ر ع1", "ل ح1", "ر ح1", "ل م", "ر م1") .Range("R1").Resize(, 14).Interior.Color = RGB(146, 205, 220) .Range("R1").Resize(, 14).HorizontalAlignment = xlCenter For chunkStart = 2 To 13000 Step chunkSize chunkEnd = chunkStart + chunkSize - 1 If chunkEnd > 13000 Then chunkEnd = 13000 dataArr = .Range("A" & chunkStart & ":N" & chunkEnd).Value p = 1 For i = LBound(dataArr, 1) To UBound(dataArr, 1) If IsNumeric(dataArr(i, 2)) And IsNumeric(dataArr(i, 3)) Then startRow = dataArr(i, 2) endRow = dataArr(i, 3) For ii = startRow To endRow outputArr(p, 1) = dataArr(i, 1) outputArr(p, 2) = ii outputArr(p, 3) = dataArr(i, 4) outputArr(p, 4) = dataArr(i, 5) outputArr(p, 5) = dataArr(i, 6) outputArr(p, 6) = dataArr(i, 7) outputArr(p, 7) = dataArr(i, 8) outputArr(p, 8) = dataArr(i, 9) outputArr(p, 9) = dataArr(i, 10) outputArr(p, 10) = dataArr(i, 11) outputArr(p, 11) = dataArr(i, 12) outputArr(p, 12) = dataArr(i, 13) outputArr(p, 13) = dataArr(i, 14) outputArr(p, 14) = dataArr(i, 14) p = p + 1 Next ii End If Next i If p > 1 Then .Range("R" & chunkStart).Resize(p - 1, 14).Value = outputArr ReDim outputArr(1 To chunkSize * 10, 1 To 14) End If Next chunkStart End With Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.EnableEvents = True End Sub
-
ترتيب الفصول في تقرير من الصف الاول الي الصف الثالث ثانوي
Foksh replied to ابوالعزائم's topic in قسم الأكسيس Access
هل هذا ما تريده ؟ class_be1.accdb -
استيراد بيانات جدول من قاعدة بيانات اكسس
Foksh replied to احمد ابو غريب's topic in قسم الأكسيس Access
على اي أساس سيتم تمييز السجلات الخاصة بالجهاز ولنفترض Pc1 و Pc2 ... إلخ .؟؟؟ لنفترض انني Pc1 على شبكة Net1 وموظف آخر على شبكة Net2 باسم Pc1 أيضاً !!!!! هل فهمت المقصود ؟؟ ما الرابط فيما بينهم !!!!! -
استيراد بيانات جدول من قاعدة بيانات اكسس
Foksh replied to احمد ابو غريب's topic in قسم الأكسيس Access
وعليكم السلام ورحمة الله وبركاته .. المطلوب غير مفهوم للأسف !! نرجو منك التوضيح أكثر أخي الفاضل -
ترتيب الفصول في تقرير من الصف الاول الي الصف الثالث ثانوي
Foksh replied to ابوالعزائم's topic in قسم الأكسيس Access
تفضل .. class_be.accdb -
ترتيب الفصول في تقرير من الصف الاول الي الصف الثالث ثانوي
Foksh replied to ابوالعزائم's topic in قسم الأكسيس Access
إلى الآن لم تتضح أو تظهر لي المشكلة ، والحل باعتقادي بسيط ، هو فقط الاعتماد على الحقل [ClassNo] للفرز التصاعدي . -
ترتيب الفصول في تقرير من الصف الاول الي الصف الثالث ثانوي
Foksh replied to ابوالعزائم's topic in قسم الأكسيس Access
اهلاً اخي الكريم ، يسعدني ذلك . ولكني لم أفهم من خلال الصورة المطلوب بشكل جيد ، وحتى ان المرفق يحتوي على جدولين ، في جدول Class لو قمت بترتيب السجلات حسب رقم الصف لخرجت معك النتيجة كما تريد ، ونفس المبدأ في التقرير طبعاً .. -
ترتيب الفصول في تقرير من الصف الاول الي الصف الثالث ثانوي
Foksh replied to ابوالعزائم's topic in قسم الأكسيس Access
وعليكم السلام ورحمة الله وبركاته .. أهلاً بك أخي الكريم في مشاركتك في عالم أكسيس .. نود منك بدايةً التقيد بقوانين وأُسس المشاركات هنا . حيث يجب أن يتضمن السؤال توضيحاً كافياً و وافياً وشرحاً يصف المشكلة التي لديك ، وفيما تفضلت به هو أعلاه لا يكفي لفهم المشكلة . ثانياً ضرورة ارفاق ملف كي يتم التطبيق عليه ولفهم المشكلة على أرض الواقع .. أهلاً وسهلاً بك -
اخد رقمين من كل رقم في الاعمدة ووضعه في العمود D
Foksh replied to omerahmed5's topic in منتدى الاكسيل Excel
وعليكم السلام ورحمة الله وبركاته ,, كمشاركة لي خارج قوقعتي في قسم الآكسيس ، استخدم الدالة LEFT ، في الخلية D1 حسب مثالك ، وسينتج عن ذلك رقم مكون من 6 خانات إن كان هذا طلبك , =LEFT(A1&"",2) & LEFT(B1&"",2) & LEFT(C1&"",2) -
جمع قيم من جداول مختلفة في جدول واحد وعرضه في نموذج
Foksh replied to ra7yl2006's topic in قسم الأكسيس Access
وعليكم السلام ورحمة الله وبركاته .. باعتقادك هل هذه الجملة كافية لتوضيح الحقول المطلوب جمع قيمها في سجل واحد ؟؟؟ أضف إلى ذلك أيضاً ، جداولك الثلاثة تحتوي 64 حقل تقريباً بدون اي سجل !!!!!!!!! أيضاً ما الشرط الذي سيتم على أساسه المحاولة في فهم طلبك وإيجاد حل له ؟؟؟؟؟؟؟؟ اين النموذج ؟؟؟؟ هذا يعني انك ستحتاج تقرير أيضاً !!!! شكراً لك سعة صدرك ، متأملاً منك تصويب الوضع السابق بشرح كافي وافي شافي وإدراج سجلات متعددة على الأقل 5 ، ولا تقم بوضع بيانات حساسة وخاصة طبعاً وبيانات حقيقية ( أسماء ، أرقام هاتف ، ,,, إلخ ) . -
قد تكون سهواً عند تعديل الاستعلام وخرجت تسلسلاً mgmo1 > mgmo2 .... .
-
وعليكم السلام ورحمة الله وبركاته .. أهلاً بك معنا في عالمنا المتواضع بدايةً .. ونرجو أن تجد الفائدة والمعلومة الصحيحة هنا .. أحب أن ألفت انتباهك إلى ضرورة الشرح الوافي الكافي لطلبك بشكل يسهل فهمه على من يقرأ موضوعك ومشاركتك هنا . ولهذا اعتقد أن الكثيرين مروا بموضوعك ولم تجد أي تعليق لأن الطلب غير مفهوم من ناحية المبدأ . حيث لم تقم بإدراج صور أو ملف مرفق يوضح مشكلتك على أرض الواقع أخي الكريم .. أشكرك سعة صدرك ورحابته ، آملاً منك الإفصاح بالتوضيح حتى لو كان الموضوع يستحق 100 سطر , فلا تبخل علينا بقراءة كلماتك .
-
تفضل ملفك بعد التطبيق Lists.accdb
-
مشاركةً مع أخي الأستاذ @kanory ، تعديل بسيط Private Sub Form_Load() Dim obj As AccessObject, f As String, r As String For Each obj In CurrentProject.AllForms If LCase(obj.Name) <> "main" Then r = r & "نموذج:" & obj.Name & ";" Next f = Dir(CurrentProject.Path & "\*.xls*") Do While f <> "": r = r & "ملف:" & f & ";": f = Dir(): Loop Me.مربع_تحرير_وسرد1.RowSourceType = "Value List" Me.مربع_تحرير_وسرد1.RowSource = Left(r, Len(r) - 1) End Sub Private Sub مربع_تحرير_وسرد1_AfterUpdate() On Error GoTo ErrorHandler If Left(Me.مربع_تحرير_وسرد1, 6) = "نموذج:" Then DoCmd.OpenForm Mid(Me.مربع_تحرير_وسرد1, 7) Else With CreateObject("Excel.Application") .Visible = True .Workbooks.Open CurrentProject.Path & "\" & Mid(Me.مربع_تحرير_وسرد1, 5) End With End If Exit Sub ErrorHandler: MsgBox "حدث خطأ: " & Err.Description, vbExclamation End Sub
-
حبيبي يا بشار ، الله يسعد قلبك ويهنيك ..
-
صديقي @Bshar ، جرب هذا التعديل عندك .. Private Sub e2_Click() Dim ctl As Form Set ctl = Me.dff.Form Dim foundValid As Boolean foundValid = False With ctl.RecordsetClone .MoveFirst Do While Not .EOF If ctl.Controls("hgf").Value = True Then foundValid = True Exit Do End If .MoveNext Loop End With If Not foundValid Then MsgBox "لم يتم إدخال أدوية - سيتم الخروج الآن", vbExclamation, "إدارية" DoCmd.Close Exit Sub End If Dim strSQL As String strSQL = "UPDATE [" & ctl.RecordSource & "] " & _ "SET [qunt_x] = Nz([qunt_a], 0) - Nz([qunt_out], 0) " & _ "WHERE [efkt_b] = True" DoCmd.SetWarnings False DoCmd.RunSQL strSQL DoCmd.OpenQuery "efkt_aa", acViewNormal DoCmd.OpenQuery "del_efktc", acViewNormal DoCmd.OpenQuery "ry", acViewNormal DoCmd.SetWarnings True Me.dff.Requery Me.Requery Me.Refresh MsgBox "تم بنجاح", vbInformation, "إدارية" DoCmd.Close DoCmd.OpenForm "efkt" End Sub
-
حبيبي يا بشار ، الله يسعدك ، الحمد لله بخير .. انت اللي مختفي يا زلمة .. جرب هذا التعديل بحيث انه يمر على كل السجلات ، طبعاً لم يتم تعديل اي فكرة من الاستعلامات الـ 3 اللي انت عاملها .. Private Sub e2_Click() Dim i As Integer Dim ctl As Form Set ctl = Me.dff.Form Dim foundValid As Boolean foundValid = False For i = 0 To ctl.Recordset.RecordCount - 1 ctl.Recordset.AbsolutePosition = i If ctl.Controls("hgf").Value = True Then foundValid = True ctl.Controls("c4").Value = Nz(ctl.Controls("c1").Value, 0) - Nz(ctl.Controls("c3").Value, 0) End If Next i If Not foundValid Then MsgBox "لم يتم إدخال أدوية - سيتم الخروج الآن", vbExclamation, "إدارية" DoCmd.Close Exit Sub End If Me.dff.Requery DoCmd.SetWarnings False DoCmd.OpenQuery "efkt_aa", acViewNormal DoCmd.OpenQuery "del_efktc", acViewNormal DoCmd.OpenQuery "ry", acViewNormal DoCmd.SetWarnings True Me.Requery Me.Refresh Me.e2.Enabled = False MsgBox "تم بنجاح", vbInformation, "إدارية" DoCmd.Close DoCmd.OpenForm "efkt" End Sub
-
وعليكم السلام ورحمة الله وبركاته أخي بشار .. بعد تجربة المرفق ، يتم انقاص قيمة الكمية من السجل الأول فقط في ملفك المرفق .. أو يمكنك التوضيح اكثر ليتم فهم المطلوب بشكل جيد عن القيمة المطلوب انقاصها من السجل الأول !!!!
-
بعد إذن معلمي الفاضل @ابوخليل ، قمت بدمج الإستعلامين كما فعلت في السابق ، مع إضافة شرطين ( الفصل والصف ) . أخي @2saad انشئ استعلام جديد وألصق الكود التالي :- PARAMETERS [Forms]![frm_Reports]![ComboSaf] Short, [Forms]![frm_Reports]![termNum] Short; TRANSFORM IIf([Forms]![frm_Reports]![termNum]=1,First(qry_master.mgmo1),First(qry_master.mgmo2)) AS FirstOfmgmo SELECT qry_master.alsaf_Id, qry_master.draseDate, qry_master.Stucard, qry_master.Studentname, qry_master.fsl_id, qry_master.Stugalos, qry_master.StuSery, qry_master.gender, qry_Temp.vHodor, qry_Temp.alnesbah, qry_Temp.tgyeem1, qry_Temp.hala FROM qry_master LEFT JOIN qry_Temp ON qry_master.Stucard = qry_Temp.Stucard WHERE (((qry_master.alsaf_Id)=[Forms]![frm_Reports]![ComboSaf])) GROUP BY qry_master.alsaf_Id, qry_master.draseDate, qry_master.Stucard, qry_master.Studentname, qry_master.fsl_id, qry_master.Stugalos, qry_master.StuSery, qry_master.gender, qry_Temp.vHodor, qry_Temp.alnesbah, qry_Temp.tgyeem1, qry_Temp.hala PIVOT qry_master.madaNum In (1,2,3,4,5,6,7,8,9,10,11,12,13,14); واجعله مصدر سجلات التقرير السابق نفسه ، وجرب النتيجة .
-
وعليه ، "قضي الأمر الذي فيه تستفتيان" وعليه تم الحل بالتعديل الذي أشار إليه أستاذي الفاضل ( أساس الموضوع ) 😇 .
-
وعليكم السلام ورحمة الله وبركاته ، أخي الكريم ، ودون العبث في تأسيس الإستعلامات الرئيسية لديك التي قام بها معلمي الفاضل @ابوخليل والتي هي أساس النجاح الذي وصل إليه المشروع الى هذه اللحظة ، سأقوم بانشاء استعلام جديد وسأفترض تسميته = qry_DarajatData مبنياً على فكرة دمج الإستعلامين ( qry_drjat_term1 و qry_drjat_term2 ) في استعلام واحد يحقق الغاية التي تريدها ، وسيكون كود SQL لهذا الاستعلام الجديد كالآتي :- PARAMETERS [Forms]![frm_Reports]![ComboSaf] Short, [Forms]![frm_Reports]![termNum] Short; TRANSFORM IIF([Forms]![frm_Reports]![termNum]=1, First(qry_master.mada1), First(qry_master.mada2)) AS FirstOfmada SELECT qry_master.alsaf_Id, qry_master.draseDate, qry_master.Stucard, qry_master.Studentname, qry_master.fsl_id, qry_master.Stugalos, qry_master.StuSery, qry_master.gender, qry_Temp.vHodor, qry_Temp.alnesbah, qry_Temp.tgyeem1, qry_Temp.hala FROM qry_master LEFT JOIN qry_Temp ON qry_master.Stucard = qry_Temp.Stucard WHERE (((qry_master.alsaf_Id)=[Forms]![frm_Reports]![ComboSaf])) GROUP BY qry_master.alsaf_Id, qry_master.draseDate, qry_master.Stucard, qry_master.Studentname, qry_master.fsl_id, qry_master.Stugalos, qry_master.StuSery, qry_master.gender, qry_Temp.vHodor, qry_Temp.alnesbah, qry_Temp.tgyeem1, qry_Temp.hala PIVOT qry_master.madaNum In (1,2,3,4,5,6,7,8,9,10,11,12,13,14); واجعل هذا الاستعلام الجديد مصدر سجلات التقرير rep_Kashf ولاحظ النتيجة ان كانت سليمة أم لا ,, مرفقك بعد التعديل Data19.zip
-
المشروع بحاجة الى اعادة بناء ، وخصوصاً موضوع الجداول والعلاقة فيما بينها ، ثم النقطة المتكررة دائماً وهي الإبتعاد عن الأسماء المحجوزة لآكسيس من أسماء الحقول والجداول والعناصر ... إلخ الآن النقطة الثانية انظر الصورة التالية لمصدر سجلات النموذج :- ما علاقة الجداول Data,Location_all,Location في النموذج . هذا أولاً .. ثانياً هل الجدول Data (وهو اسم محجوز لآكسيس) ، يتم تخزين قيم من النموذج الى هذا الجدول ؟؟؟؟؟ إن كان لا !! فلا حاجة لوجوده كمصدر سجلات ( من وجهة نظري ) لجلب البيانات منه . ومن هنا سكفيك وجود الجدول Fawri فقط كمصدر لتخزين القيم من النموذج مع ضبط الحدث بعد التحديث بحيث عند اختيار اسم الموظف يتم ادراج القيم الخاصة به الى مربعات النص في النموذج . هذه وجهة نظري ( الغير ملزمة طبعاً ودائماً ) .. مرفق لفكرة بدائية بسيطة لجلب القيم للموظف الذي تم اختياره من الكومبوبوكس جربه وأخبرني بالنتيجة .. Pepsi.zip