-
Posts
10020 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
408
نوع المحتوي
التقويم
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
وعليكم السلام ورحمة الله وبركاته اهلا وسهلا بك في المنتدى هذا النموذج . وهذا الاستعلام هو مصدر بيانات التقرير ، وهذا الاستعلام يرسل رقم "مرتبط" الى الوحدة النمطية: وهذه الوحدة النمطية التي تقوم بإستخراج البيانات المطلوبة من الجدول: Option Compare Database Option Explicit Public M_Date As Date Public M_Type As String Public P_Date As Date Public P_Type As String Function qry_Date(ID) 'On Error Resume Next M_Date = vbNull M_Type = "" P_Date = vbNull P_Type = "" If Len(ID & "") = 0 Then Exit Function Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Select * From [جدول2] Where [مرتبط]=" & ID & " Order By [التاريخ] Desc") rst.MoveLast: rst.MoveFirst M_Date = rst![التاريخ] M_Type = rst![النوع] rst.MoveNext P_Date = rst![التاريخ] P_Type = rst![النوع] rst.Close: Set rst = Nothing End Function Function Max_Date() Max_Date = M_Date End Function Function Max_Type() Max_Type = M_Type End Function Function Prev_Date() Prev_Date = P_Date End Function Function Prev_Type() Prev_Type = P_Type End Function . وهذه النتيجة: . جعفر 746.Database19.accdb.zip
-
تفضل يا سيدي 747.اهتزاز.mdb.zip
-
الان كذلك السجل الذي تكون عليه ، فيه لون مختلف عن بقية السجلات جعفر
-
هل متاح عمل قائمة منسدلة عند الضغط على إظهار تقرير
jjafferr replied to أحمد العيسى's topic in قسم الأكسيس Access
تفضل وما عليك الا ان تُدخل اسماء الصفوف في الجدول الجديد tbl_Class_Name ، وتفتح التقرير من النموذج جعفر 745.db1.mdb.zip -
حياك الله اخي عبد اللطيف لا يوجد شيء افضل من الاخر ، وانما الطلب يحتم عليك النوع وفي مثالنا اعلاه: ميزات النموذج المستمر ، هو انه هناك نموذج واحد به حقول البحث والازرار ، ولكن به مشكلة الاهتزاز ، والحقول بها تنسيق شرطي ، بينما نموذج البيانات ، لا تستطيع ان تضع فيه ازرار او حقول اضافية ، ولعمل الازرار والحقول الاضافية ، فيجب ان يوضع هذا النموذج كنموذج فرعي ، والازرار والحقول الاخرى تكون في النموذج الرئيسي ، مما يجعل الكود اصعب قليلا ، حيث انك تشير الى حقول نموذجين مختلفين ، بينما نموذج البيانات لا يوجد به اهتزاز ، ولا داعي للتنسيق الشرطي جعفر
-
السلام عليكم نعم يوجد حل ، ولكن بتغيير نوع النموذج من مستمر الى نموذج بيانات لاحظ المرفق ، لما تنتقل بين السجلات لا يوجد اهتزاز طبعا انا لم اعمل اي تعديل على البرنامج حتى يعمل بطريقته السابقة ، وانما المرفق هو فقط لإثبات عدم حصول الاهتزاز جعفر اهتزاز.zip
-
هل متاح عمل قائمة منسدلة عند الضغط على إظهار تقرير
jjafferr replied to أحمد العيسى's topic in قسم الأكسيس Access
وعليكم السلام الجواب نعم في النموذج frm_Main عندك حقل الحصه اسمه Subject ، في التقرير ، في قسم رأس التقرير عنك حقل rpt_Subject وتريد ان ينكتب اسم الحصة اللي في النموذج ، في مصدر الحقل ، اشر الى مكان الحقل الذي به المعلومة ، هكذا: =Forms!frm_Main!Subject جعفر -
طلب كود (تاريخ التسليم) دون حساب الاجازة الاسبوعية
jjafferr replied to علــــي's topic in قسم الأكسيس Access
وعليكم السلام اخوي علي وشكرا على الرد المفصّل الواضح ، و بأمثلة هذا الكود هو العقل المدبر للوحدة كلها ، فلا تستهين فيه . ولتعديل المطلوب ، تم اضافة سطرين كود في نهاية الوحدة النمطية: Option Compare Database Option Explicit Function Working_Dates(From_D, To_Period, Excl_D) 'From_D = Start Date (i.e. 32/11/2017) 'To_Period = Number of Days to Count 'Excl_D = Excluded days, like weekends (in our case Friday and Saturday) ' '1 = Sunday '2 = Monday '3 = Tuesday '4 = Wednesday '5 = Thursday '6 = Friday '7 = Saturday ' ' to call this Function: 'Working_Dates(#23/11/2017#, 3, "67") 'or 'Working_Dates(Me.dateToday, Me.long, "67") ' Dim ToDate As Date Dim i As Date 'ما هو اليوم الاخير ، بدون استقطاع الاجازة ToDate = DateAdd("d", To_Period, From_D) 'ابدا الحساب من اول يوم الى اليوم الاخير For i = From_D To ToDate 'اذا كان هذا اليوم من ايام الاجازة If InStr(1, Excl_D, Weekday(i)) > 0 Then 'اضف يوم الى اليوم الاخير ToDate = ToDate + 1 End If Next i 'اذا كان اليوم الاخير يقع في اجازة (الاجازة يومين) If InStr(1, Excl_D, Weekday(ToDate)) > 0 Then: ToDate = ToDate + 1 If InStr(1, Excl_D, Weekday(ToDate)) > 0 Then: ToDate = ToDate + 1 'ارسل اليوم الاخير الى النموذج Working_Dates = ToDate End Function . جعفر 742.Working_Days.accdb.zip -
وعليكم السلام انا لا احبذ استخدام القناع ، فهو يربطك اخي شفان اعطاك طريقة ، واليك طريقة اخرى ، من اعدادات الحقل: validation rule: Between 100000000000 And 299999999999 validation text: يجب ان يبدأ الرقم بالرقم 1 او 2 ، ويكون طوله 12 خانه . . . جعفر
-
تغيير مكان قاعدة بيانات الجداول المقسّمة
jjafferr replied to khaled-acc's topic in قسم الأكسيس Access
السلام عليكم أخي اسلام هذا الموضوع من سنة 2012 ، ومشاركي الموضوع قد لا يكونوا متواجدين في المنتدى الان ، لذا رجاء عمل موضوع جديد لسؤالك. جعفر -
السلام عليكم اخي ابو عبدالله ، واخي عمر هذا الموضوع من سنة 2003-2004 ، ومشاركي الموضوع قد لا يكونوا متواجدين في المنتدى الان ، فرجاء كتابة موضوع جديد لسؤالكم. جعفر
-
تقييم جلب نتيجة نموذج على شكل حقول في نموذج اخر
jjafferr replied to Laweed's topic in قسم الأكسيس Access
السلام عليكم الملف كان يعمل بدون مشاكل اليك نفس النسخة ، ولكن بصيغة ضغط اخرى جعفر 11111.zip -
حياك الله
-
طلب كود (تاريخ التسليم) دون حساب الاجازة الاسبوعية
jjafferr replied to علــــي's topic in قسم الأكسيس Access
وعليكم السلام ولو ان هذه الطريقة لا تُعتبر الافضل ولا الاسرع ، ولكنها جيدة نظرا للأيام القليلة التي تتعامل معاها هذه الوحدة النمطية التي تقوم بالعمل: Option Compare Database Option Explicit Function Working_Dates(From_D, To_Period, Excl_D) 'From_D = Start Date (i.e. 32/11/2017) 'To_Period = Number of Days to Count 'Excl_D = Excluded days, like weekends (in our case Friday and Saturday) ' '1 = Sunday '2 = Monday '3 = Tuesday '4 = Wednesday '5 = Thursday '6 = Friday '7 = Saturday ' ' to call this Function: 'Working_Dates(#23/11/2017#, 3, "67") 'or 'Working_Dates(Me.dateToday, Me.long, "67") ' Dim ToDate As Date Dim i As Date 'ما هو اليوم الاخير ، بدون استقطاع الاجازة ToDate = DateAdd("d", To_Period, From_D) 'ابدا الحساب من اول يوم الى اليوم الاخير For i = From_D To ToDate 'اذا كان هذا اليوم من ايام الاجازة If InStr(1, Excl_D, Weekday(i)) > 0 Then 'اضف يوم الى اليوم الاخير ToDate = ToDate + 1 End If Next i 'ارسل اليوم الاخير الى النموذج Working_Dates = ToDate End Function . ونناديها من النموذج ، من حدث "بعد تحديث التاريخ" مثلا ، هكذا: Private Sub dateToday_AfterUpdate() 'Me.Text537.Value = Me.dateToday + Me.long 'Me.Text537.Requery '1 = Sunday '2 = Monday '3 = Tuesday '4 = Wednesday '5 = Thursday '6 = Friday '7 = Saturday Me.DateOfFinish = Working_Dates(Me.dateToday, Me.long, "67") End Sub جعفر 742.Working_Days.accdb.zip -
طريقة اصطياد النقطة الاولى: Private Sub Form_Error(DataErr As Integer, Response As Integer) Dim Msg, Style, Title If DataErr = 2237 Then Msg = "رجاء كتابة او اختيار مادة من القائمة" Style = vbYes Title = "اختار من القائمة فقط" MsgBox Msg, Style, Title Response = acDataErrContinue End If End Sub جعفر
-
شكرا على هذا الاطراء الجميل
-
وعليكم السلام اهم شيء في الموضوع هو اصطياد رقم رسالة الخطأ ، ومنها نستطيع عمل ما نريد ولعمل هذا ، استعملي "حدث خطأ النموذج" ، هكذا: Private Sub Form_Error(DataErr As Integer, Response As Integer) MsgBox DataErr End Sub جعفر
-
وعليكم السلام اخوي وضاح من الصعب على اي منا ان يرد على موضوعك ، لأن الكثير منا ليس محاسب ولا نعرف ماذا تقصد ولا ماذا تريد!! رجاء ارفق برنامجك فيه بيانات متعددة ، ثم استعمل الاكسل او الوورد او حتى برنامج صور ، واشرح لنا: 1. اي جدول ، اي حقول يجب التعامل معها ، 2. مثالين عن الشيء الذي تريده: أ. طريقة الحساب، ب. النتيجة التي يجب الحصول عليها، ج. الصورة النهائية التي تريدها. ونحن سنحاول ان نترجم مثالك الى برمجة اكسس ان شاء الله هذا الكلام ينطبق على بقية مواضيعك كذلك جعفر
-
-
وعليكم السلام في الواقع كان هناك خطأ في الدرس الرابع ، وانا الذي كتبت الدرس الرابع وليس اخي @صالح حمادي ، وقمت بالتعديل عليه ، والتعديل على مثالك ، كما وان ملاحظة اخي محمد ابوعبدالله صحيحة ايضا ، حيث ان اسم الوحدة/الوحدات النمطية يجب ان تكون غير اسم الدالة/الدوال الموجودة في البرنامج. جعفر Database2.zip
-
وعليكم السلام شكرا اخي الفاضل على هذه الهدية ، واهلا وسهلا بك في المنتدى جعفر
-
تشغيل برنامج الاكسس في اي مجلد ، وبدون رسائل الأمان
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
حياك االله أخوي شفان -
تشغيل برنامج الاكسس في اي مجلد ، وبدون رسائل الأمان
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
السلام عليكم تم التعديل على الكود والبرنامج ليعمل: 1. تشغيل الاكسس بدون رسائل أمان ، 2. تشغيل الاكسس بدون إطار/نافذة الوندوز (للنواتين 32بت و64بت). 1. مثل الخطوات السابقة ، احفظ الكود التالي في ملف بصيغة txt ، ثم غيّر صيغة الملف الى vbs (طبعا تستطيع ان تضع برنامج قاعدة البيانات في اي مكان شئت في الكمبيوتر ، فقط عليك تعديل الاسم والمسار) : rem http://www.accessmvp.com/jconrad/accessjunkie/macrosecurity.html rem expression.OpenCurrentDatabase(filepath required, Exclusive optional, bstrPassword optional) dim o set o=createobject ("Access.Application") o.automationsecurity=1 ' set macro security LOW. o.opencurrentdatabase "C:\jj\Seq.mdb" o.usercontrol=false o.quit set o=nothing 2. لتشغيل الاكسس بدون اطار ، يجب ان يكون النموذج منبثق ، ولكننا بدل ان نغير اعدادات النموذج ، نستطيع ان نفتحه منبثق مباشرة ( Dialog )، وبما اننا نستعمل الماكرو AutoExec (والذي يعمل عند فتح البرنامج مباشرة ) ، فإننا سنفتح النموذج بهذه الطريقة: النموذج: . والماكرو . وهذا كود النموذج: Option Compare Database Private Sub cmd_Quit_Click() DoCmd.Quit End Sub Private Sub Form_Open(Cancel As Integer) Call HideAccess End Sub وهذه الوحدة النمطية التي بها كود الاخفاء: Option Compare Database Option Explicit Global Const SW_HIDE = 0 Global Const SW_SHOWNORMAL = 1 Global Const SW_SHOWMINIMIZED = 2 Global Const SW_SHOWMAXIMIZED = 3 #If VBA7 Then Private Declare PtrSafe Function ShowWindow Lib "USER32" _ (ByVal hwnd As LongPtr, ByVal nCmdShow As Long) As Boolean #Else Private Declare Function ShowWindow Lib "USER32" _ (ByVal hwnd As Long, ByVal nCmdShow As Long) As Boolean #End If ' Public Sub HideAccess() #If VBA7 Then Dim hWndAccessApp As LongPtr #Else Dim hWndAccessApp As Long #End If Call ShowWindow(Access.hWndAccessApp, SW_HIDE) End Sub Public Sub ShowAccess() #If VBA7 Then Dim hWndAccessApp As LongPtr #Else Dim hWndAccessApp As Long #End If Call ShowWindow(Access.hWndAccessApp, SW_SHOWMAXIMIZED) End Sub جعفر 739.No_Warning_and_No_Access_Window.zip