-
Posts
9910 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
404
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
وعليكم السلام ورحمة الله وبركاته 🙂 لقد قام مجموعة من الاعضاء مشكورين بمشاركة اكوادهم وامثلتهم ، ولا يوجد مانع لنيل المزيد منها 🙂 مع مراعاة عدم نشر أية مواد تخالف حقوق الملكية الفكرية 🙂 جعفر
-
السلام عليكم 🙂 دائما في عمل اي برنامج ، يجب ان تفكر في اسوء الحالات: البرنامج به عشرات الالآف من السجلات ، وعلى شبكة ، وعندك الكثير من المستخدمين 🙂 هناك طريقتين لحل سؤالك: 1. الطريقة المُكلفة ، لأنها يجب ان ترجع للجدول ، وتأخذ القيم منه ، ثم تقوم بعملية الجمع ، بإستعمال DSum ، ومع ان الكود سهل ، ولكني دائما اتفاداه ، 2. وبما ان النموذج (النموذج الفرعي في حالتنا) ، يقوم قد اخذ البيانات من الجدول ، فنستطيع عمل الجمع من واقع بيانات النموذج: أ. عن طريق الامر Me.RecordsetClone ، ونعمل امر دوران لجمع قيم حقل "السعر" ، ب. عن طريق الاستفادة من حقل الجمع t1 في ذيل النموذج الفرعي (بإستعمال الامر Sum) ، وهو كما قمت انت بعمله: صحيح ان حقل الجمع في النموذج الفرعي t1 يقوم بجمع قيم الحقل "السعر" تلقائيا ، ولكنه يحتاج الى وقت لكي يقوم بهذه العملية كل مرة ، فالحيلة هي ان ننتظر الى يتم تعبئة الحقل بالمجموع الجديد ، ثم نعطي هذه القيمة الى الحقل "اجمالي الفاتورة" في النموذج الرئيسي ، وبما انه لديك عمليتين ، اضافة وحذف ، فاليك الكود عند اضافة سجل (بما اننا نستخدم نموذج اضافة مستقل ، فيجب ان ننادي حقل النموذج الفرعي t1 عن طريق نموذجه الرئيسي ثم الفرعي) : Private Sub cmd_Add_Record_Click() 'Save the Record If Me.Dirty Then Me.Dirty = False 'Requery the SubForm to show the new Record Forms!الفاتورة!الاصناف.Requery 'wait until the sum shows in the SubForm Do Until Len(Forms!الفاتورة!الاصناف!t1 & "") <> 0 DoEvents Loop 'transfer the value to the Main Form field Forms!الفاتورة![اجمالي الفاتورة] = Nz(Forms!الفاتورة!الاصناف!t1, 0) 'close the Add Form DoCmd.Close acForm, Me.Name, acSaveNo End Sub . وهذا الكود عند حذف سجل من النموذج الفرعي مباشرة : Private Sub cmd_Delete_Record_Click() 'Delete the Record DoCmd.RunCommand acCmdDeleteRecord 'Requery the Sum Field Me.t1.Requery 'wait until the sum shows in the SubForm Do Until Len(Me.t1 & "") <> 0 DoEvents Loop 'transfer the value to the Main Form field Me.Parent![اجمالي الفاتورة] = Nz(Me.t1, 0) End Sub جعفر 1534.Update_MainForm_with_SubForm_Total.accdb.zip
-
طريقة جميلة ومبتكرة 😞 انا استخدم احد الطابعات الافتراضية المجانية لطباعة ملف pdf من هذا الموقع: https://www.dopdf.com/ واحد الميزات اللي فيها ، بأنك تستطيع عمل الورقة بالحجم الذي تريده (تكتب طول وعرض الورقة). هناك طريقة اخرى استعملتها في احد برامجي ، وهي استخدام ورقة A4 ، ولكني استعملت سطرين او ثلاثة لكل سجل (فكر فيها كأنك تطبع نموذج مفرد ، بحيث توزيع الحقول يكون بطريقة منطقية ، وليس جنب بعضها البعض) 🙂 جعفر
-
وعليكم السلام اخوي حمدي 🙂 انزلت المرفق ، ولكنه غير كامل ولم يعمل عندي بسبب عدم وجود العديد من الكائنات !! للاسف انا حاليا مو متخصص في الايميل (قبل حوالي 12 سنه كنت فيها بالثقيل 🙂 ) ، الهمة في الشباب اللي يشتغلون على الايميل 🙂 جعفر
-
في هذه الحالة اقترح عليك تصدير البيانات الى ورقة اكسل ، ثم برمجيا نقوم بتصغير حجم بيانات الحقول الى الى 70%
-
بالانجليزي هو On Dirty ومعناه عندما تقوم بعمل تغيير في قيمة/بيانات الحقل (او قيم السجل ، اذا استخدمت الحدث في اعدادات النموذج) ، هذا الرابط به معلومة مفصله . و جعفر
-
السلام عليكم اخي حمدي 🙂 لا انصح بهذا العمل ، فعند كشف الايميل ورقم الهاتف في المنتدى المفتوح ، فهذا يعرض صاحبه الى استلامه الى رسائل تخريبية واتصالات هو في غنى عنها !! جعفر
-
وعليكم السلام 🙂 كانت لي محاولة هنا ، قد تستفيد منها جعفر
-
يا هلا ومرحبا jo 🙂 الخطوتين: 1. الالتزام بالقائمة: نعم ، 2. حدث "عند عدم الوجود في القائمة" ، وتضع هذا الكود Private Sub Combo0_NotInList(NewData As String, Response As Integer) MsgBox "لابد من الاختيار من القائمة" Response = acDataErrContinue Me.Combo0.Undo End Sub . وتستطيع الحصول على هذا الكود وغيره من مساعد الاكسس: . جعفر
-
السلام عليكم😊 اخوي ابو أحمد كفيت ووفيت، وفي الواقع وبعد عدة من استفسارات اخونا nssj، كنت اعتقد بأنك ستتوقف، ولكنك كنت تبهرني بإجابة وكود أفضل من سالفها، فهذا عهدنا بك، شكرا جزيلا😊 اخوي rockjones33 لك أسلوب غير متعارف عليه في الرد، فما شاء الله عليك مشرّق ومغرّب في نفس اللحظة، لهذا السبب وبسهولة ممكن الواحد يفهمك غلط، وخصوصا ان كلامك وامثلتك غير محددة الاتجاه، وأنا شخصيا ماني ملحق عليك🤔 اعتقد انكم جميعا توجهون كلامكم لصاحب السؤال، واتمنى من اخوي rockjones33 صياغة ردودة بطريقة مفهومه لنا 😊 جعفر
-
السلام عليكم😊 واهنئك أخي المهندس @Eng.Qassim على هذه الترقية، واهلا وسهلا بك معنا من جديد😊 جعفر
-
السلام عليكم 🙂 اخونا @سامي الحداد له صولات في المواضيع ، و ردود موفقة ، فأهلا وسهلا به خبيرا بيننا 🙂 ولايزال البحث مستمر لترقية بقية الاعضاء 🙂 جعفر
-
تحديث عدة سجلات في جدول 1 من خلال امر من فورم1
jjafferr replied to ابو هاله النبلسي's topic in قسم الأكسيس Access
اخي الفاضل 🙂 كان قصدي بانني ما قادر اتتبع الخطوات للوصول لمشكلتك ، فرجاء تساعدنا علشان نساعدك 🙂 انت صاحب الموضوع ، فرجاء اخذ من وقتك واعمل مرفق آخر فيه بيانات ، ومن واقع مرفقك وبياناتك وحقولك اخبرنا ماذا تريد ان يحدث لأي معلومة ، وكيف يجب ان تكون الصورة النهائية للبيانات 🙂 جعفر -
انا اشتريت نسخة مايكروسوفت اوفيس 2021 Pro Plus الذي يحتوي على مايكروسوفت اكسس بمبلغ 39.99$ يعني حوالي 40$ من هنا : https://store.techspot.com/sales/microsoft-office-professional-plus-2021-for-windows?utm_source=techspot.com&utm_medium=referral&utm_campaign=microsoft-office-professional-090922 جعفر
-
تحديث عدة سجلات في جدول 1 من خلال امر من فورم1
jjafferr replied to ابو هاله النبلسي's topic in قسم الأكسيس Access
وعليكم السلام ورحمة الله وبركاته 🙂 ولا واحد من القائمة اعلاه موجود في ملفك ، فلا نستطيع مساعدتك !! ويجب عليك اعادة النظر في جدولك ، ويجب تقسيمه الى جدولين او ثلاثة تحتوي جميعها على الحقل EmpCode ، ثم ربط الجداول بحقل EmpCode في استعلام ، وعرض النتائج التي تريدها 🙂 وإلا : 1. جدولك سيكون بطيء لما تصبح البيانات التي به تتعدى 10 الآف سجل ، 2. لن يمكنك ادخال بيانات في جميع الحقول ، فمجموع حروف اي سجل في جدول لا تتعدى 4000 حرف ، واليك هذه المعلومة من مايكروسوفت: . من اعدادات الجدول هنا: . جعفر -
شكرا جزيلا على النسخة جعفر
-
السلام عليكم 🙂 انزلت المرفقين ، ولكن الشجرة ما اشتغلت عندي 🙂 بس الحمدلله تجاربي السابقة افادتك 🙂 وما العيب في هذا الكود ، فهو الاسرع في جلب البيانات 🙂 ولكن تأكد في نهاية الكود ان تفرغ الذاكرة العشوائية من هذه البيانات عن طريق: rst.close: set rst=nothing جعفر
-
التنقل بين الحقول والسجلات في النموذج المستمر ، بالاسهم (معدل)
jjafferr replied to moho58's topic in قسم الأكسيس Access
السلام عليكم 🙂 انا استخدم هذه الوحدة النمطية: Option Compare Database Option Explicit '--------------------------------------------------------------------------------------- ' Procedure : EnableArrowsScroll ' Author : Daniel Pineault, CARDA Consultants Inc. ' Website : http://www.cardaconsultants.com ' Purpose : Enable using the up and down arrows to move between records on a ' continuous form ' Req'd Refs: None ' The Form's Key Preview property must be set to True for this code to work. ' ' Input Variables: ' ~~~~~~~~~~~~~~~~ ' iKeyCode : Keycode from the source form from the KeyDown event ' frm : form object to apply the new behavior to ' ' Usage: ' ~~~~~~ ' KeyCode = EnableArrowsScroll(KeyCode, Me) 'This is placed in the KeyDown event ' 'Dont forget to set the Key Preview property to Yes ' ' Revision History: ' Rev Date(yyyy/mm/dd) Description ' ************************************************************************************** ' 1 2011-07-07 Initial Release ' 2 2017-04-08 Added DefaultView check '--------------------------------------------------------------------------------------- Public Function EnableArrowsScroll(ByVal iKeyCode As Integer, frm As Access.Form) As Integer On Error GoTo Error_Handler If frm.DefaultView = 1 Then 'Only process for Continuous forms Select Case iKeyCode Case vbKeyDown ' If CurrentRecord <> RecordsetClone.RecordCount Then 'Restrict to existing records If frm.NewRecord = False Then 'Allow going to new record for data entry DoCmd.GoToRecord , , acNext End If EnableArrowsScroll = 0 Case vbKeyUp If frm.CurrentRecord <> 1 Then DoCmd.GoToRecord , , acPrevious End If EnableArrowsScroll = 0 Case Else EnableArrowsScroll = iKeyCode End Select Else EnableArrowsScroll = iKeyCode End If Error_Handler_Exit: On Error Resume Next If Not frm Is Nothing Then Set frm = Nothing Exit Function Error_Handler: If Err.Number <> 2105 Then MsgBox "The following error has occurred" & vbCrLf & vbCrLf & _ "Error Number: " & Err.Number & vbCrLf & _ "Error Source: EnableArrowsScroll" & vbCrLf & _ "Error Description: " & Err.Description & _ Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _ , vbOKOnly + vbCritical, "An Error has Occurred!" End If Resume Error_Handler_Exit End Function . وتناديها على حدث "الزر الاسفل" للنموذج ، هكذا Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) On Error GoTo Error_Handler KeyCode = EnableArrowsScroll(KeyCode, Me) Error_Handler_Exit: On Error Resume Next Exit Sub Error_Handler: MsgBox "The following error has occurred" & vbCrLf & vbCrLf & _ "Error Number: " & Err.Number & vbCrLf & _ "Error Source: Form_KeyDown" & vbCrLf & _ "Error Description: " & Err.Description & _ Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _ , vbOKOnly + vbCritical, "An Error has Occurred!" Resume Error_Handler_Exit End Sub . جعفر 1532.UseArrow.mdb.zip -
تحويل النصوص إلي أرقام (في النماذج والتقارير)
jjafferr replied to محمود أبوسيف's topic in قسم الأكسيس Access
والاهم ان المستخدم ما يرجع للمبرمج لما يريد اضافة او تغيير في النصوص 🙂 جعفر -
تحويل النصوص إلي أرقام (في النماذج والتقارير)
jjafferr replied to محمود أبوسيف's topic in قسم الأكسيس Access
اتفق مع اخي موسى 🙂 ولكن الافضل عمل جدول وادخال هذه البيانات (وغيرها في المستقبل) في حقل ، وحقل آخر للرقم ، ومن ثم استخدام الاستعلام او دالة لقراءة النصوص وتحويلها لارقام 🙂 جعفر -
كود لفتح وغلق لوحة مفاتيح الويندوز على الشاشة
jjafferr replied to qathi's topic in قسم الأكسيس Access
كفيت ووفيت ، شكرا جزيلا 🙂 الآن مشاركتك اصبحت مرجع للاعضاء 🙂 جعفر -
كود لفتح وغلق لوحة مفاتيح الويندوز على الشاشة
jjafferr replied to qathi's topic in قسم الأكسيس Access
ياريت تكمل جميلك وتخبرنا عن "الملف" اللي حل مشكلتك ، علشان اللي تكون عنده المشكلة يعرف الحل مباشرة 🙂 جعفر