-
Posts
9903 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
404
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
وعليكم السلام 🙂 الظاهر ان الحقل من نوع مذكرة في احد الجداول ، ومن نوع نص في الحقل اللي في الصورة اعلاه ، لذلك فهو يأخذ 255 حرف فقط !! جعفر
-
وعليكم السلام 🙂 حياك الله 🙂 نعم ، وزيادة ، والطريقة هي السعي لقضاء حاجة اخوانك ، وخصوصا اللي في المنتدى 🙂 اما بالنسبة لي انا ، فكما يقول الله عز وجل: وَمَا أُوتِيتُم مِّنَ الْعِلْمِ إِلَّا قَلِيلًا جعفر
-
اخي الفاضل الدكتور اللي يقدر يوصف لك العلاج عن بُعد ، وبمجرد انك تخبره انك مريض وبس ،فهذا عملة نادرة 🙂 اما انا فلا. جعفر
-
عدم امكانية التعديل على النموذج !!
jjafferr replied to عبد اللطيف سلوم's topic in قسم الأكسيس Access
تفضل 🙂 اضفت معيار جديد: Me.NewRecord And Private Sub Form_BeforeUpdate(Cancel As Integer) If Me.NewRecord And DCount("*", "الزبائن", "[customer]='" & Me.txtName & "'") > 0 Then MsgBox "هذا الاسم موجود بالفعل", vbCritical, "التكرار ممنوع" Me.Undo Cancel = True End If End Sub . بس اخي عبداللطيف ، الافضل ان تضع الكود قبل تحديث حقل الاسم وليس قبل تحديث النموذج 🙂 جعفر -
تفضل 🙂 Dim rst As dao.Recordset dim myWhere as string Set rst = Form.RecordsetClone myWhere = "ID=" & [Text1] myWhere = myWhere & " And Code=" & [Text2] myWhere = myWhere & " And Age=" & [Text3] rst.FindFirst myWhere If Not rst.EOF Then Bookmark = rst.Bookmark . شوف هذا الرابط لبقية انواع الحقول من نص ، وتاريخ جعفر
-
تسجيل بدلات ومرتبات العاملين بشركة بدون تكرار (عنوان معدل)
jjafferr replied to اوفيسنا احمد's topic in قسم الأكسيس Access
هذا كان طلبك في مشاركتك الاولى !! ورجاء ، استعمل الخط العادي ، لأننا لما نستعمل الهاتف المحمول لقراءة المشاركات ، فالخط الكبير يملئ الشاشة 😞 رجاء اخبرنا بالتفصيل عن اللي تريده، وبمثال 🙂 جعفر -
ايش رأيك بهذه الطريقة: . نختار لكل قاعة ، رجال و اناث ، او رجال فقط ، او اناث فقط ، و لا نستعمل القاعة التي لا يوجد فيها اختيار ؟ ورجاء ، اذا في اي تغيير آخر ، اخبرني من الآن ، لأني على سفر قريبا جدا !! جعفر
-
ارغب فى ربط المبيعات الخاصة بكل مندوب بالمستودع
jjafferr replied to omdahamdy411@gmail.com's topic in قسم الأكسيس Access
وعليكم السلام 🙂 اهلا وسهلا بك في المنتدى 🙂 في المرات القادمة، رجاء وضع سؤال واحد لكل موضوع، حتى تحصل على فرصة اكبر للحل 🙂 جعفر -
عدم تسجيل قرض للعضوا اذا كان مسجلا له قرض من قبل
jjafferr replied to محمد قاسم 12's topic in قسم الأكسيس Access
يجب ازالة علامة الاستفهام الموجودة في الكلمات باللون الارزق -
الحمدلله 🙂 بالنسبة الى العرض ، مثل ما اخبرتك، حاليا ما عندك خيار إلا ان تكون جميع اعمدة التواريخ بنفس العرض ، والعرض يتم التحكم فيه من الكود ، من المتغير W (كما في الصورة ادناه) ، كان العرض نصف بوصة ، والان عملته بوصه . والتقرير ، يجب ان نجعل الحقول قابلة للنمو/للإرتفاع (ليست قابلة لإحتواء البيانات)، يجب تغيير اعدادات القسم، بحيث يقبل النمو . و نختار جميع الحقول ، وكذلك نجعلها قابله للنمو . والنتيجة . طبعا تستطيع تغيير مكان الحقول، بسحبها الى المكان الصحيح، وتغيير تنسيق اتجاه الخط من اليمين الى اليسار. ولكن انتبه ، يجب ان يكون حجم الورقة عندك كبير ، حتى لا تطبع اجزاء من الصفحة على الصفحة التالية 😞 جعفر
-
العفو ، بس كنت مشغول حبتين 🙂 بسبب تنسيق التاريخ في كمبيوترك، عندك هذا الخلل ، جرب المرفق لوسمحت ، فانا استعنت بكود التاريخ من هنا : . والكود اصبح: Private Sub Report_Open(Cancel As Integer) Dim ctrl As Control Dim A As Integer Dim Empty_Cells As Integer Dim Full_Cells As Integer Dim W As Integer Dim myWhere As String Dim rpt_width As Integer Dim Full_Date As Date Dim D As Integer Dim Y As Integer Dim M As Integer W = 1440 / 2 'field width Empty_Cells = 0 Full_Cells = 1 'the name rpt_width = 0 Y = Forms!tqrer!iYear 'year M = Forms!tqrer!iMonth 'month For Each ctrl In Me.Controls 'is this a Date field in the Report If ctrl.ControlType = acTextBox And IsNumeric(Mid(ctrl.Name, 5)) Then D = Mid(ctrl.Name, 5) Full_Date = DateSerial(Y, M, D) 'the field Names from the Crosstab query 'check if this field exists int the table 'myWhere = "[zeiara_date]=#" & Full_Date & "#" myWhere = "[zeiara_date]=" & DateFormat(Full_Date) 'myWhere = myWhere & Chr(32) & " And [zeiara_date] Between Date_1 and Date_2" A = DCount("*", "zeara", myWhere) End If If A = 0 And ctrl.ControlType = acTextBox And Left(ctrl.Name, 4) = "txt_" Then 'field dose not exist Me("txt_" & D).Width = 0 'trim field size to Zero Me("txt_" & D).Visible = False 'make the field invisible ctrl.ControlSource = "" 'remove the Control Source Me("lbl_" & D).Width = 0 'trim label size to Zero Me("lbl_" & D).Visible = False 'make the label invisible Empty_Cells = Empty_Cells + 1 Debug.Print "Off " & ctrl.Name & vbTab & "D:" & D & vbTab & "Full:" & Full_Date & vbTab & "A:" & A ElseIf ctrl.ControlType = acTextBox And Left(ctrl.Name, 4) = "txt_" Then 'field exists Me("txt_" & D).Width = 1 * W 'set the field width Me("txt_" & D).Visible = True 'make the field visible ctrl.ControlSource = Full_Date Me("lbl_" & D).Width = 1 * W 'set the label width Me("lbl_" & D).Visible = True 'make the label visible Me("lbl_" & D).Caption = D & "/" & M 'give the label, a caption Full_Cells = Full_Cells + 1 rpt_width = rpt_width + ctrl.Width 'add the width Debug.Print "ON " & ctrl.Name & vbTab & "D:" & D & vbTab & "Full:" & Full_Date & vbTab & "A:" & A End If Next Me.Width = rpt_width + Me("mogh_name").Width 'the final Report width End Sub . جعفر 1001.rpt_Monthly_Crosstab.accdb.zip
-
عدم تسجيل قرض للعضوا اذا كان مسجلا له قرض من قبل
jjafferr replied to محمد قاسم 12's topic in قسم الأكسيس Access
الظاهر انك ما نسخت الكود كاملا ، نسيت شيء منه 🙂 الف مبروك على هذه النسخة، ونطلب منك السر في كيفية الحصول عليها، فلم اسمع من احد انه حصل عليها الى الآن 🙂 اخوي ابو ياسين 🙂 للوصول الى مرحلة الاحتراف، فيجب ان لا تستعمل هذه الجملة إلا نادرا ، ويجب اصطياد الخطأ ، والتعامل معاه فقط ، فهذه الجملة ما بتخلي البرنامج يعطيك ايش الاخطاء اللي فيه 😞 هذه الروابط بتفيدك : و و . وانت المنقذ 🙂 جعفر -
شو رسالة الخطأ ؟
-
انا انزلت المرفق من الرابط اللي في مشاركتك الاولى ، وتم الربط بشكل صحيح 🙂 لوسمحت ترفق صورة من رسالة الخطأ، ومكان توقف الكود باللون الاصفر
-
عفوا ، يجب تغيير الصفر الى واحد ، الكود الصح هو Private Sub Sub_AfterUpdate() Me.LETTERS = Me.SUB.Column(1) End Sub جعفر
-
عدم تسجيل قرض للعضوا اذا كان مسجلا له قرض من قبل
jjafferr replied to محمد قاسم 12's topic in قسم الأكسيس Access
تفضل ، هذا الرابط به الطريقة الصحيحة 🙂 . جعفر -
تسجيل بدلات ومرتبات العاملين بشركة بدون تكرار (عنوان معدل)
jjafferr replied to اوفيسنا احمد's topic in قسم الأكسيس Access
تفضل ، هذا الرابط به الطريقة المطلوبة 🙂 . جعفر -
تسجيل بدلات ومرتبات العاملين بشركة بدون تكرار (عنوان معدل)
jjafferr replied to اوفيسنا احمد's topic in قسم الأكسيس Access
وعليكم السلام اخي احمد 🙂 اهلا وسهلا بك في المنتدى 🙂 رجاء مراعاة شروط المنتدى قبل عمل موضوع جديد: قواعد المشاركة فى الموقع 1- يمنع منعا باتا نشر أية مواد تخالف حقوق الملكية الفكرية و يرجى الابلاغ عن المشاركات المخالفة من خلال زر تقرير اسفل المشاركة 2-يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد. 3-ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال. 4-ممنوع منعا باتاً كتابة عناوين سينمائية مثل عاجل ، نداء الي فلان ، الي الخبراء ، طلب مساعدة ، أريد حلا..... 5-يمكن استعجال الرد باستخدام تعبير -للرفع- و غير مسموح بالالحاح او اللوم فجميع الاعضاء يشاركون تطوعا طبقا لسعة وقتهم. ومخالفة ذلك تعرض الموضوع للحذف تم تعديل العنوان 🙂 جعفر -
السلام عليكم اخي ريباز 🙂 في الواقع ما كنت اعتقد بأن الموضوع يأخذ كل هذا الوقت ، ولكن ما شاء الله فعل ، والحمدلله 🙂 1. الجداول . tbl_Teachers : وهنا نُدخل لكل مدرس/ملاحظ رقمه Teacher_ID ، ورقم المدرسة SID ، ونوع الجنس regaz (ويمكنك حذف الحقل Distributed) ، tbl_Allowed : وهنا نُدخل رقم المدرسة SID ، والقاعات التي يُسمح لمدرسيها ان يراقبوها Allowed_Hall ، tbl_Distributed : وهنا نرى نتائج التوزيع. الاستعلامات: هذه هي الاستعلامات التي تقوم بالعمل ، ورجاء عدم التعديل عليها qry_D_Allowed_Teachers_Halls : من هنا نعرف اي مدرس مسموح له مراقبة اي مدرسة qry_D_Selection : ويقوم الكود بالاعتماد على هذا الاستعلام لإختيار المدرسين ، عشوائيا qry_D_Halls : ومنه نعرف القاعات المطلوب لها ملاحظين (رجاء حذف المعيار الموجود حاليا) qry_D_SID : ومن هنا نختار المدرسة ، عشوائيا . طريقة العمل: افتح النموذج frm_Distribute ، ثم انقر على الزر Distribute (الحقول باللون البرتقالي يمكنك ان تخفيها) ، ويجب ان تحذف بيانات الجدول tbl_Distributed قبل ان تبدأ بإختيار جديد (البرنامج سيسألك) . اذا تم التوزيع بدون اخطاء ، ستحصل على هذه الرسالة . وافتح جدول tbl_Distributed لرؤية الاختيارات العشوائية . اما اذا حصلت على رسالة خطأ مثل هذه . فهذا معناه انه وحسب البيانات اللي في الرسالة (وهي نفسها اللي في النموذج باللون البرتقالي) ، فالاستعلام (شوف اسم الاستعلام) لم يلقى اي سجلات لهذا الاختيار ، وقد تم وقف عمل البرنامج!! وعليه ، يجب ان تعدل في البيانات . يعني مثلا ، لو تحذف بيانات الجدول tbl_Distributed ، ثم تعمل الاختيار عن طريق النموذج ، سترى هذا الخطا (وهذا اللي حصل لي) ، ومن بيانات الرساله عرفت ان المدرسة 5 ، مدرسات إناث ، للقاعة 113 ، لا يوجد احد!! عليه، اذهب الى tbl_Teachers وتأكد من هذا ، ثم اذهب الى الاسم الاخير jjjj ، وغيره من ذكر الى انثى ، ثم ابدأ من الاختيار جديد ، ولن ترى الرسالة 🙂 وهذا هو الكود الذي يقوم بالعمل ، وقد وضعت فيه الملاحظات : Private Sub cmd_Distribute_Click() On Error GoTo err_cmd_Distribute_Click ' If Len(Me.Distribution_ID & "") = 0 Then ' ' MsgBox "رجاء ادخال رقم التوزيع" ' Me.Distribution_ID.SetFocus ' Exit Sub ' ElseIf Len(Me.Distribution_ID & "") = 0 Then ' ' MsgBox "رجاء ادخال تاريخ التوزيع" ' Me.Distribution_Date.SetFocus ' Exit Sub ' End If If DCount("*", "tbl_Distributed") > 0 Then Dim Msg, Style, Title, Response Msg = "هناك بيانات في الجدول، هل تريد حذفها" & vbCrLf & _ "لا يمكن اضافة بيانات جديدة على بيانات سابقة" Style = vbYesNo + vbCritical + vbDefaultButton2 Title = "الجدول tbl_Distributed به بيانات" Response = MsgBox(Msg, Style, Title) If Response = vbYes Then DoCmd.SetWarnings False DoCmd.RunSQL ("Delete * From tbl_Distributed") DoCmd.SetWarnings True Else MsgBox "لم يتم حذف البيانات، ولا عمل اختيارات جديدة" Exit Sub End If End If Dim i As Integer Dim j As Integer Dim How_Many_Instructors As Integer Dim RND_SID As Integer Dim RND_Selection As Integer Dim rs As Integer Dim Which_Regaz As Integer Dim rstD As DAO.Recordset Dim rstH As DAO.Recordset Dim rstSID As DAO.Recordset Dim rstSelection As DAO.Recordset Dim RC_rstH As Integer Dim RC_rstSID As Integer Dim RC_rstSelection As Integer Dim arrSID As Variant Dim arrrstSelection As Variant Dim strSQL As String 'rstD = tbl_Distributed 'rstH = qry_D_Halls 'rstSID = qry_D_SID 'rstSelection = qry_D_Selection rs = 1 strSQL = "Select * From tbl_Distributed" Set rstD = CurrentDb.OpenRecordset(strSQL) rs = 2 strSQL = "Select * From qry_D_Halls" Set rstH = CurrentDb.OpenRecordset(strSQL) 'load the Recordset into memory, and get its number of Records rstH.MoveLast: rstH.MoveFirst: RC_rstH = rstH.RecordCount 'number of schools How_Many_Instructors = 6 / 2 Me.srch_Regaz = 1 'Hall Name For i = 1 To RC_rstH Me.srch_Distribution_Hall = rstH!Allowed_Hall 'Loop through the schools, 3 schools For j = 1 To How_Many_Instructors rs = 3 'info for error 3061 strSQL = "Select * From qry_D_SID Order By SID" 'Recordset SQL Set rstSID = CurrentDb.OpenRecordset(strSQL) 'Get the Remaining SIDs rstSID.MoveLast: rstSID.MoveFirst: RC_rstSID = rstSID.RecordCount 'Load into memory, and Count Records arrSID = rstSID.GetRows(RC_rstSID) 'convert Recordset to array, Min value = arrSID(0, 0) , Max = (arrSID(0, RC_rstSID - 1) Select_SID: 'we give the lowest and highest numbers to get Random Randomize RND_SID = Int((arrSID(0, RC_rstSID - 1) - arrSID(0, 0) + 1) * Rnd + arrSID(0, 0)) 'get a random number between Min & Max Me.srch_SID = RND_SID rstSID.FindFirst "[SID]=" & RND_SID 'but sometimes this number dose not exist, so get another Random If rstSID.NoMatch Then GoTo Select_SID 'SID is good, move on Which_Regaz = 0 Next_Regaz: 'male / female swithing If Me.srch_Regaz = 1 Then Me.srch_Regaz = 2 Else Me.srch_Regaz = 1 End If Which_Regaz = Which_Regaz + 1 'now we have all the data required to pick a teacher rs = 4 strSQL = "Select * From qry_D_Selection Order By Teacher_ID" Set rstSelection = CurrentDb.OpenRecordset(strSQL) rstSelection.MoveLast: rstSelection.MoveFirst: RC_rstSelection = rstSelection.RecordCount arrrstSelection = rstSelection.GetRows(RC_rstSelection) Select_Teacher: Randomize RND_Selection = Int((arrrstSelection(0, RC_rstSelection - 1) - arrrstSelection(0, 0) + 1) * Rnd + arrrstSelection(0, 0)) 'get a random number between Min & Max rstSelection.FindFirst "[Teacher_ID]=" & RND_Selection 'but sometimes this number dose not exist, so get another Random If rstSelection.NoMatch Then GoTo Select_SID 'Teacher_ID is good, make a new Record in tbl_Distributed and save info rstD.AddNew 'rstD!Distribution_ID = Me.Distribution_ID 'rstD!Distribution_Date = Me.Distribution_Date rstD!Teacher_ID = RND_Selection rstD!SID = RND_SID rstD!Distributed_Hall = rstH!Allowed_Hall rstD.Update If Which_Regaz = 1 Then GoTo Next_Regaz Next j rstH.MoveNext Next i MsgBox "Done" Exit_cmd_Distribute_Click: rstD.Close: Set rstD = Nothing rstH.Close: Set rstH = Nothing rstSID.Close: Set rstSID = Nothing rstSelection.Close: Set rstSelection = Nothing Exit Sub err_cmd_Distribute_Click: If Err.Number = 3061 Then 'too few parameters, expected xx 'this error occurs when trying to run a query which needs its parameters from a Form, 'the Form should be open with the parameter, then this code take the values properly Dim qdf As QueryDef Dim prm As Parameter Set qdf = CurrentDb.CreateQueryDef("NewQueryDef", strSQL) For Each prm In qdf.Parameters prm.Value = Eval(prm.Name) Next prm If rs = 1 Then Set rstD = qdf.OpenRecordset(dbOpenDynaset) ElseIf rs = 2 Then Set rstH = qdf.OpenRecordset(dbOpenDynaset) ElseIf rs = 3 Then Set rstSID = qdf.OpenRecordset(dbOpenDynaset) ElseIf rs = 4 Then Set rstSelection = qdf.OpenRecordset(dbOpenDynaset) End If DoCmd.DeleteObject acQuery, "NewQueryDef" Resume Next ElseIf Err.Number = 3021 Then 'No current Record If rs = 1 Then MsgBox "No Records in tbl_Distributed" ElseIf rs = 2 Then MsgBox "No Records in qry_D_Halls" ElseIf rs = 3 Then MsgBox "Hall Number=" & Me.srch_Distribution_Hall & vbCrLf & _ "No Records in qry_D_SID" ElseIf rs = 4 Then MsgBox "Hall Number=" & Me.srch_Distribution_Hall & vbCrLf & _ "SID=" & Me.srch_SID & vbCrLf & _ "Regaz=" & Me.srch_Regaz & vbCrLf & _ "No Records in qry_D_Selection" End If Resume Exit_cmd_Distribute_Click Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر 1008.2021.zip
-
لا وانت الصادق ، اخونا العود ابو خليل يستعمل هذا الكود 🙂 بينما انا استخدم الكود اللي في هذا الملف 🙂 https://www.jstreettech.com/files/JStreetAccessRelinker2.zip جعفر
-
متطلبات تشغيل البرامج التي قمت بتنزيلها
jjafferr replied to عبد اللطيف سلوم's topic in قسم الأكسيس Access
السلام عليكم اخي عبد اللطيف 🙂 شكرا لك على مجهودك 🙂 ملاحظة حول هذا الموضوع ، فالمطلوب اختيار اللغة العربية ، بغض النظر عن الدولة ، لأن اللغة العربية هي المطلوبة لعمل Unicode في الرقم 2 من صورتك الثانية 🙂 جعفر -
وعليكم السلام 🙂 واهلا وسهلا بك في المنتدى 🙂 عملت بعض التعديلات على الجداول ، وحولت الحقول الى ارقام بدل النص، تفضل: Private Sub student_Class_AfterUpdate() 'check if the Student number field exists, if it dose, exit If Len(Me.student_Number & "") > 0 Then Exit Sub Me.student_Number = Nz(DMax("[Student_Number]", "students", "[student_Class]= " & Me.student_Class), Me.student_Class * 10000) + 1 End Sub جعفر 1012.autoNumber.accdb.zip
-
-
السلام عليكم 🙂 رجاء مراعاة كتابة عنوان صحيح للموضوع ، في المرة القادمة 🙂 قواعد المشاركة فى الموقع 1- يمنع منعا باتا نشر أية مواد تخالف حقوق الملكية الفكرية و يرجى الابلاغ عن المشاركات المخالفة من خلال زر تقرير اسفل المشاركة 2-يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد. 3-ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال. 4-ممنوع منعا باتاً كتابة عناوين سينمائية مثل عاجل ، نداء الي فلان ، الي الخبراء ، طلب مساعدة ، أريد حلا..... 5-يمكن استعجال الرد باستخدام تعبير -للرفع- و غير مسموح بالالحاح او اللوم فجميع الاعضاء يشاركون تطوعا طبقا لسعة وقتهم. ومخالفة ذلك تعرض الموضوع للحذف جعفر
-
طريقة فتح ملف (.accdb) علية باسورد ويوزر نيم
jjafferr replied to sayed sergo's topic in قسم الأكسيس Access
وعليكم السلام اخي sayed sergo قوانين المنتدى لا تسمح بهكذا موضوع 🙂 يُقفل الموضوع. جعفر