بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
9903 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
404
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
طبعا ، الجدول عندك في البرنامج ، واضف ما احببت 1. لوسمحت تعدل في البرنامج ، وتعطيني مثال ، لأن جلب التاريخ بين التواريخ لن يكون سهلا بدون دقة في المعطيات ، وعلى اساس المثال او المثالين (واحد بين تاريخين ، والاخر كل الايام بدون تحديد تواريخ للبداية والنهاية (لازم افهم هذه من مثال واضح لوسمحت) ، 2. تمام جعفر
-
السلام عليكم وحتى يكتمل الموضوع ، اخذت جزئية من احد برامجي ، وهي لحساب السنه والشهر واليوم ، يعني الحساب بالكامل . وهكذا ننادي الوحدة النمطية . والنتيجة . والوحدة النمطية Public Function YMDDif2(sDate1, sDate2) 'Public Function YMDDif2(sDate1, sDate2, Cont_Type, Res_Date) On Error GoTo err_YMDDif2 'sDate1 earliest date 'sDate2 later date 'Cont_Type = Contract Type 'Res_Date = Resignation Date Dim dInterim1 As Date ' If Cont_Type = "استقالة" Or Cont_Type = "متقاعد" Then ' sDate2 = Res_Date ' End If iMonth = DateDiff("m", sDate1, sDate2) If Day(sDate1) > Day(sDate2) Then iMonth = iMonth - 1 End If dInterim1 = DateAdd("m", iMonth, sDate1) iDay = DateDiff("d", dInterim1, sDate2) D = iDay M = iMonth Mod 12 Y = iMonth \ 12 YMDDif2 = CStr(Y) & " س/" & CStr(M) & " ش/" & CStr(D) & " ي" Exit Function err_YMDDif2: If Err.Number = 94 Then 'ignor, null Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function . جعفر 473.2.db.mdb.zip
-
سؤال بشان تغير نوع الخط في جميع نماذج الاكسس
jjafferr replied to angelloay's topic in قسم الأكسيس Access
وعليكم السلام الرابط التالي فيه طريقة وكود لتغيير الصور في جميع النماذج/التقارير ، من مضمنه الى مرتبطة ، . وبتغيير بسيط تستطيع ان تغيره الى طلبك ، ولاحظ ان نوع الخط الجديد هو "Andalus" في المثال Function Convert_img_Embed_to_Link() Dim frm As AccessObject Dim rpt As AccessObject Dim dbs As Object Dim frm1 As Access.Form Dim rpt1 As Access.Report Dim ctl As Access.Control Set dbs = Application.CurrentProject For Each frm In dbs.AllForms DoCmd.OpenForm frm.Name, acDesign Set frm1 = Forms(frm.Name) For Each ctl In frm1.Controls If ctl.ControlType = acComboBox Or _ ctl.ControlType = acCommandButton Or _ ctl.ControlType = acLabel Or _ ctl.ControlType = acListBox Or _ ctl.ControlType = acOptionButton Or _ ctl.ControlType = acTextBox Then Debug.Print frm.Name & " > " & ctl.ControlType & " > " & ctl.Name ctl.FontName = "Andalus" If frm1.DefaultView = 2 Then frm1.DatasheetFontName = "Andalus" 'DataSheetForms End If End If Next ctl DoCmd.Close acForm, frm.Name, acSaveYes Next frm Exit Function For Each rpt In dbs.AllReports DoCmd.OpenReport rpt.Name, acDesign Set rpt1 = Reports(rpt.Name) For Each ctl In rpt1.Controls If ctl.ControlType = acComboBox Or _ ctl.ControlType = acCommandButton Or _ ctl.ControlType = acLabel Or _ ctl.ControlType = acListBox Or _ ctl.ControlType = acOptionButton Or _ ctl.ControlType = acTextBox Then Debug.Print rpt.Name & " > " & ctl.ControlType & " > " & ctl.Name ctl.FontName = "Andalus" If rpt1.DefaultView = 2 Then frm1.DatasheetFontName = "Andalus" End If End If Next ctl DoCmd.Close acReport, rpt.Name, acSaveYes Next rpt End Function جعفر -
وعليكم السلام طبعا كمية البيانات لها دور في سرعة اداء الكمبيوتر ، بالاضافة الى ذلك ، اننا عملنا حقل في كل من الاستعلامين ، وربطنا الاستعلامين بهذين الحقلين ، وهذين الحقلين ليسا مفهرسين !! الاقتراح الذي قد يساعد في سرعة البرنامج ، واكيد سيحل مشكلة qry_Union هو ان نغير عمل الاستعلامين: 1. بالنسبة الى الاستعلام الاول (ولا يهم ايهم) ، غيّره الى "استعلام عمل جدول" ، بحيث نتائجه ستحفظ في هذا الجدول الجديد ، ولنسميه tbl_all ، 2. والاستعلام الاخر غيّره الى استعلام "الحاق" ، وتُلحق البيانات الى نفس الجدول الجديد tbl_all ، 3. بهذه الطريقة لن نحتاج الى qry_Union ، واجعل الاستعلام qry_Results يأخذ بياناته من الجدول tbl_all جعفر
-
لازلت في انتظار الجواب على السؤال اعلاه ، لأنه سيفيدنا في جلب التاريخ الناقص في التقرير (انظر المربع الاحمر في الصورة الاخيرة): الاستعلام التالي تم اخذه من التقرير rpt_Follow4 وتحويله من SQL الى استعلام . ونتائجه 32 سجل . جلبت احد الجداول التي استعملها في الكثير من برامج ، tbl_Months ، وفيه ايام الاسبوع حسب ترقيمهم في الكود . عملت استعلام جديد فيه جميع ايام الاسبوع (ما عدا الجمعة والسبت والسجلات الفاضية) ، ولجلب eSIS من tbl_Follow4 ، وبما اننا سنحتاج الى الاسم ايضا ، فاضطررنا لإستخدام الجدول StudentNames . والنتيجة فيها الايام التي نريدها (الايام التي لا يكون فيها الطالب غائب او متأخر) ، لاحظ عندنا 35 سجل . والان الى الاستعلام الذي سيربط الاستعلامات السابقة ، ولاحظ العلاقة بين الاستعلامات . ونتيجته ، ورجاء الملاحظة اننا من الان سنعتمد على الحقل eSIS وليس IDnum في التقرير . والان نحن بحاجة الى تعديل في التقرير قليلا ليتماشى مع المتغيرات . والنتيجة النهائية للتقرير ، وستلاحظ ان التاريخ غير موجود (طبعا غير موجود ، لأن البرنامج يسجل تاريخ الغياب و التأخير) ، فاذا اردنا الحصول على هذا التاريخ ، فيجب الاجابة على سؤالي في المشاركة السابقة . جعفر 459.1.AbsentLate 2016.accdb.zip
-
بالنسبة الى ثانيا ، فعندي سؤال: كيف ستطبع التقرير ، هل سيكون بين تاريخين اسبوعيا ، او بين تاريخين شهريا؟ لأن الفكرة التي عندي هي ادخال الايام كلها في التقرير يدويا ، ثم عن طريق الكود ندخل البيانات لليوم الصحيح ، وهذا يعتمد على اجابتك لسؤالي اعلاه جعفر
-
وعليكم السلام أستاذ علي بالنسبة الى اولا: المفروض ان النموذج الرئيسي يكون غير مضمن وغير مربوط مع الجدول tbl_Follow4 ، لانك لا تستخدمه لإدخال/استخراج بيانات ، لذا احذف اسم الجدول كمصدر للسجلات: . والسبب الاساسي في عمل سجل فاضي ، هو ادخالك معلومة في الحقل Grade في الجدول ، والمعلومة هي "" اي لا شئ ، اي انك حولت الحقل من Null الى Nothing بينما اسم الحقل الذي يجب ان يكون في الكود هو sGrade مثل sSection . جعفر
-
-
استفسار : طريقة استيراد اكثر من ورقة عمل للاكسس
jjafferr replied to مبرمج على يديكم's topic in قسم الأكسيس Access
وعليكم السلام همم ، طيب ايش رايك في هذين الرابطين: و جعفر -
الحاق ايام محددة بين تاريخين بالجدول المرتبط
jjafferr replied to kaser906's topic in قسم الأكسيس Access
هلا والله وهاي الكود الكامل بالتعديلات: Private Sub cmd1_Click() 'التاكد ان الحقول المطلوبة تم اختيارها في النموذج If Len(Me.StarteDate & "") = 0 Then MsgBox "رجاء ادخال تاريخ البداية" Me.StarteDate.SetFocus Exit Sub ElseIf Len(Me.EndDate & "") = 0 Then MsgBox "رجاء ادخال تاريخ النهاية" Me.EndDate.SetFocus Exit Sub ElseIf (Len(Me.iSunday & "") = 0 Or Me.iSunday = 0) And _ (Len(Me.iMonday & "") = 0 Or Me.iMonday = 0) And _ (Len(Me.iTuesday & "") = 0 Or Me.iTuesday = 0) And _ (Len(Me.iWednesday & "") = 0 Or Me.iWednesday = 0) And _ (Len(Me.iThursday & "") = 0 Or Me.iThursday = 0) Then MsgBox "رجاء الاختيار من ايام التدريب" Exit Sub End If Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Select * From Tbl_2") 'عدد الايام بين يومي البداية والنهاية How_Many_Days = UmDateDiff("d", Me.StarteDate, Me.EndDate) For i = 0 To How_Many_Days Next_Date = UmDateAdd("d", i, Me.StarteDate) 'التاريخ الهجري التالي Next_Day2 = UmWeekDayName(UmWeekday(Next_Date)) 'اليوم التالي Next_Day = UmWeekday(Next_Date) 'اليوم التالي بالرقم Next_Date = UmFormat(Next_Date, "yyyy/mm/dd") 'تغيير تنسيق التاريخ 'Debug.Print Next_Day & "-" & Next_Day2 'MsgBox Next_Date & " " & Next_Day add_Day = "" 'اذا تم اختيار اليم في النموذج ، ما هو اليوم If Me.iSunday = -1 And Next_Day = 1 Then add_Day = "الاحد" '"Sunday" ElseIf Me.iMonday = -1 And Next_Day = 2 Then add_Day = "الاثنين" '"Monday" ElseIf Me.iTuesday = -1 And Next_Day = 3 Then add_Day = "الثلاثاء" '"Tuesday" ElseIf Me.iWednesday = -1 And Next_Day = 4 Then add_Day = "الاربعاء" '"Wednesday" ElseIf Me.iThursday = -1 And Next_Day = 5 Then add_Day = "الخميس" '"Thursday" End If 'لدينا تاريخ يجب ادخاله If add_Day <> "" Then 'ولكن هل تم ادخال هذا التاريخ سابقا لهذا PCDigit rst.FindFirst "[PcDigit]=" & Me.PcDigit & " And [TDate] ='" & Next_Date & "'" If rst.NoMatch Then 'غير موجود rst.AddNew rst!TDate = Next_Date: rst!TDay = add_Day: rst!PcDigit = Me.PcDigit: rst!auto_id = Me.auto_id rst.Update Else 'موجود MsgBox "الموظف رقم " & Me.PcDigit & vbCrLf & _ "يوجد لديه تدريب سابق يوم " & add_Day & vbCrLf & _ "بتاريخ " & Next_Date & vbCrLf & vbCrLf & _ "هذا التاريخ لم يتم ادخاله مرة اخرى" End If End If Next i rst.Close: Set rst = Nothing End Sub وهاي المرفق النهائي جعفر 471.tdate.mdb.zip -
الحاق ايام محددة بين تاريخين بالجدول المرتبط
jjafferr replied to kaser906's topic in قسم الأكسيس Access
تفضل استعمل هذا السطر بدل اللي في الكود: For i = 0 To How_Many_Days يعني استعملنا الصفر بدل الواحد. جعفر -
الحاق ايام محددة بين تاريخين بالجدول المرتبط
jjafferr replied to kaser906's topic in قسم الأكسيس Access
تفضل اضف السطر الرابع للكود ، وفي هذا المكان المحدد Next_Date = UmDateAdd("d", i, Me.StarteDate) 'التاريخ الهجري التالي Next_Day2 = UmWeekDayName(UmWeekday(Next_Date)) 'اليوم التالي Next_Day = UmWeekday(Next_Date) 'اليوم التالي بالرقم Next_Date = UmFormat(Next_Date, "yyyy/mm/dd") 'تغيير تنسيق التاريخ جعفر -
سؤال فى قاعدة بيانات تخص اضافة صور مرتبطة
jjafferr replied to ابو جودي's topic in قسم الأكسيس Access
لا والله ما نسيت ، ولكني انشغلت بمواضيع المنتدى ومحاولة مساعدة الباقين -
الحاق ايام محددة بين تاريخين بالجدول المرتبط
jjafferr replied to kaser906's topic in قسم الأكسيس Access
حياك الله 1. الكود يأخذ اي تاريخ هجري (والكود الذي وضعته انت اصلا يخص ام القرى) ، فما في مشكلة ، 2. اعمل نموذج على اساس الجدول Tbl_2 ، وتستطيع ان تغير فيه كما تشاء ، 3. في تنسيق التاريخ لحقل التاريخ ، انت ادخلته كـ dd/mm/yyyy ، والذي يجب ان تعمله هو yyyy/mm/dd ، هذا اذا اردت الرقم 1 يكون 01 (اي رقمين ، وانا انصحك بهذا ، حيث لن تتعب في الفرز) ، بينما اذا اردت التنسيق رقم واحد مثل ما اشرت في مثالك ، فالتنسيق سيكون yyyy/m/d جعفر -
طيب في طريقة اخرى: نعمل ملف mdb خارجي مؤقت في نفس مجلد البرنامج، ونصدر الكلمات اليه ، ونعمل في برنامجك استعلام يأخذ البيانات هذا من الملف الخارجي ، وبالطريقة هذه ، لن يكون هناك ضغط على برنامجك!! هل تصلح لك هذه الطريقة؟ جعفر
-
سجلات ثابتة بشكل قالب وقيمة محسوبة لاحدها
jjafferr replied to محمدنجار's topic in قسم الأكسيس Access
-
سجلات ثابتة بشكل قالب وقيمة محسوبة لاحدها
jjafferr replied to محمدنجار's topic in قسم الأكسيس Access
تفضل جعفر 467.Panel_Calc Value.mdb.zip -
الحاق ايام محددة بين تاريخين بالجدول المرتبط
jjafferr replied to kaser906's topic in قسم الأكسيس Access
أخي كاسر تم تغيير الكود بحيث لا يقرا اليوم ، وانما رقم اليوم في الكود ، فعليه ، المفروض ان يعمل البرنامج الان على جميع الاجهزة ، وهذا هو الكود المُعدل: Private Sub cmd1_Click() 'التاكد ان الحقول المطلوبة تم اختيارها في النموذج If Len(Me.StarteDate & "") = 0 Then MsgBox "رجاء ادخال تاريخ البداية" Me.StarteDate.SetFocus Exit Sub ElseIf Len(Me.EndDate & "") = 0 Then MsgBox "رجاء ادخال تاريخ النهاية" Me.EndDate.SetFocus Exit Sub ElseIf (Len(Me.iSunday & "") = 0 Or Me.iSunday = 0) And _ (Len(Me.iMonday & "") = 0 Or Me.iMonday = 0) And _ (Len(Me.iTuesday & "") = 0 Or Me.iTuesday = 0) And _ (Len(Me.iWednesday & "") = 0 Or Me.iWednesday = 0) And _ (Len(Me.iThursday & "") = 0 Or Me.iThursday = 0) Then MsgBox "رجاء الاختيار من ايام التدريب" Exit Sub End If Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Select * From Tbl_2") 'عدد الايام بين يومي البداية والنهاية How_Many_Days = UmDateDiff("d", Me.StarteDate, Me.EndDate) For i = 1 To How_Many_Days Next_Date = UmDateAdd("d", i, Me.StarteDate) 'التاريخ الهجري التالي Next_Day2 = UmWeekDayName(UmWeekday(Next_Date)) 'اليوم التالي Next_Day = UmWeekday(Next_Date) 'اليوم التالي بالرقم 'Debug.Print Next_Day & "-" & Next_Day2 'MsgBox Next_Date & " " & Next_Day add_Day = "" 'اذا تم اختيار اليم في النموذج ، ما هو اليوم If Me.iSunday = -1 And Next_Day = 1 Then add_Day = "الاحد" '"Sunday" ElseIf Me.iMonday = -1 And Next_Day = 2 Then add_Day = "الاثنين" '"Monday" ElseIf Me.iTuesday = -1 And Next_Day = 3 Then add_Day = "الثلاثاء" '"Tuesday" ElseIf Me.iWednesday = -1 And Next_Day = 4 Then add_Day = "الاربعاء" '"Wednesday" ElseIf Me.iThursday = -1 And Next_Day = 5 Then add_Day = "الخميس" '"Thursday" End If 'لدينا تاريخ يجب ادخاله If add_Day <> "" Then 'ولكن هل تم ادخال هذا التاريخ سابقا لهذا PCDigit rst.FindFirst "[PcDigit]=" & Me.PcDigit & " And [TDate] ='" & Next_Date & "'" If rst.NoMatch Then 'غير موجود rst.AddNew rst!TDate = Next_Date: rst!TDay = add_Day: rst!PcDigit = Me.PcDigit: rst!auto_id = Me.auto_id rst.Update Else 'موجود MsgBox "الموظف رقم " & Me.PcDigit & vbCrLf & _ "يوجد لديه تدريب سابق يوم " & add_Day & vbCrLf & _ "بتاريخ " & Next_Date & vbCrLf & vbCrLf & _ "هذا التاريخ لم يتم ادخاله مرة اخرى" End If End If Next i rst.Close: Set rst = Nothing End Sub جعفر 471.tdate.mdb.zip -
هل تريدين ان اصدر البيانات الى الاكسل؟ جعفر
-
الحاق ايام محددة بين تاريخين بالجدول المرتبط
jjafferr replied to kaser906's topic in قسم الأكسيس Access
الحمدلله ، اهم شئ هو الدخول في الكود الشئ الذي يأتي على بالي الآن هو ، ان تنصيب الوندوز عندي انجليزي ، واعتقد عندك عربي ، لهذا السبب ايام الاسبوع قد تكون عندك بالعربي ، بينما هي عندي بالانجليزي ، لذا ، اضف السطر الثالث الى الكود : Next_Date = UmDateAdd("d", i, Me.StarteDate) 'التاريخ الهجري التالي Next_Day = UmWeekDayName(UmWeekday(Next_Date)) 'اليوم التالي debug.print Next_Day . ثم شغل النموذج واضغط على زر الحفظ ، ثم ادخل في الكود واضغط على Ctrl + G او انظر للصورة: . وانسخ لي الاسماء التي في المربع الاحمر الى الموقع لوسمحت ، فانا اشك انها بالعربية ، واريد الاسم بالضبط كما يراه الكمبيوتر جعفر -
الظاهر يا اختي اننا لا نتكلم عن نفس الشئ!! فقد قمت بعمل المطلوب في مشاركاتي السابقة ، ويوجد لديك جدول مؤقت اسمه Table2 ، فما عليك إلا ان تعملي استعلام منه واذا لم يكن هذا قصدك ، فاعتقد انه من الافضل ان اتوقف انا ، وان يواصل معك الاستاذ رمهان ، فقد ينظر للموضوع من وجهة نظر اخرى جعفر
-
الحاق ايام محددة بين تاريخين بالجدول المرتبط
jjafferr replied to kaser906's topic in قسم الأكسيس Access
حياالله كاسر رجاء تتبع الخطوات هذه وتخبرني بالنتيجة تفصيلا: 1. اجعل النموذج في وضع التصميم ، ثم افتح اعدادات الزر "حفظ" ، ثم تبويب الحدث ، والمفروض ان ترى امام الحدث "On Click" الكلمات "[Event Procedure]" ، ثم انقر على الزر الصغير الذي به 3 نقاط (على يمين الصورة) ، هذا سوف يُدخلك في الكود: . 2. على العمود الذي يشير اليه السهم ، وبمحاذات الجملة التي تراها ، انقر بالفأرة اليسار على العمود ، فستلاحظ انه تم عمل نقطة في العمود (كما في الصورة) . 3. ارجع الى النموذج ، وقم بتشغيل النموذج ، واضغط على الزر "حفظ" . 4. سيأخذك البرنامج الى صفحة الكود ، وسترى التظليل الاصفر لنفس السطر الذي عملنا نقطة بجواره . 5. اضغط على الكيبورد على الزر F8 ثلاث مرات ، وسترى ان السطر الاصفر المظلل ذهب الى السطر ، كما اصبح في الصورة . 6. عند الضغط على الزر F8 مرة اخرى ، المفروض ان ترى النموذج وبه صورة الرسالة . رجاء تخبرني اذا كنت ترى ما ارى ، او ان كمبيوترك يرى ما لا ارى جعفر -
شكرا على الايضاح اختي للأسف لا يمكن هذا بدون حفظ البيانات ولو في جدول مؤقت ، او تصدير البيانات الى ملف txt مثلا ، او حتى csv بحث يتم قراءته بالاكسل. جعفر
-
الحاق ايام محددة بين تاريخين بالجدول المرتبط
jjafferr replied to kaser906's topic in قسم الأكسيس Access
الآن تذكرت اخي قيصر ، الظاهر انك فقط اخذت الكود ووضعته في برنامجك !! فالزر في برنامجك السابق لم يكن يذهب للكود ، وانما كنت انت عملت عليه ماكرو ، فرجاء استعمل برنامجي كما هو ، واذا اشتغل ، سنتحدث عن كيفية اضافة الكود لبرنامجك جعفر -
الحاق ايام محددة بين تاريخين بالجدول المرتبط
jjafferr replied to kaser906's topic in قسم الأكسيس Access
الظاهر ان الكود عندك غير مفعّل !! هل تستخدم الاوفيس 2007 او 2010 لأول مرة على جهازك؟ هل لما تشغل البرنامج ، يظهر لك شريط اصفر تحت شريط الادوات في الاكسس: هذا معناه ان الاكسس في حالة حماية لكمبيوترك من هذا البرنامج ، وانه لا يجعل الكود يعمل ، لذلك ، اضغط على الزر في الشريط الاصفر ، وسيعمل البرنامج ان شاء الله اما اذا لم تكن هذه المشكلة ، فعد ، وسنحاول اشياء اخرى لا جعفر