اذهب الي المحتوي
أوفيسنا

jjafferr

أوفيسنا
  • Posts

    9,871
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    403

Community Answers

  1. jjafferr's post in هل من الممكن ان اضيف حجم A3 الى التقرير ؟؟؟ was marked as the answer   
    وعليكم السلام
     
    مقاييس الصفحة الموجودة في التقرير يتم اخذها من الطابعة الافتراضية ، الى ان يقوم المستخدم باختيار طابعة اخرى ،
    لذا ، اذا الطابعة التي يقوم باختيارها المستخدم لا تحتوي على A3 ، فلن تجد هذا الاختيار من القائمة.
     
    يمكنك استخدام طابعة pdf افتراضية ، واجعل حجم الصفحة فيها الذي تريده ، سواء A3 او اكبر ، وستجد هذا الحجم موجود عند اختيارك لطابعة الـ pdf .
     
    انا استعمل هذه الطابعة المجانية :

  2. jjafferr's post in تحويل كود VBA الي ماكرو was marked as the answer   
    تفضل يا سيدي
     
    اعمل اغلق النموذج/التقرير اولا (لاحظ مافيه اسم النموذج) ، ثم افتح النموذج الآخر لاحقا 

    .
    لماذا ؟
    شوف المقطع التالي:
     

    .
    جعفر
  3. jjafferr's post in مطلوب طريقة تجميع محتوى كافة بيانات حقول نصية الى حقل واحد وبترتيب بنود السجل was marked as the answer   
    وعليكم السلام 🙂
    الفرز يجب ان يكون عن طريق حقل المعرف.
     
    الاستعلام:

    .
    والدالة في الوحدة النمطية:
    Function Concat(PR As Double) Dim rst As Recordset Dim i As Long, RC As Long Set rst = CurrentDb.OpenRecordset("select [Category] From PRindex Where [PuReq]=" & PR & " Order by [المعرف]") rst.MoveLast: rst.MoveFirst: RC = rst.RecordCount For i = 1 To RC Concat = Concat & "," & rst!Category rst.MoveNext Next i Concat = Mid(Concat, 2) rst.Close: Set rst = Nothing End Function .
    والنتيجة:

    1617.PRindex.accdb.zip
  4. jjafferr's post in تصحيح كود برنامج was marked as the answer   
    ابدا بالعمل ، ولما تصادف مشكلة ، ارسلها هنا علشان نساعدك
  5. jjafferr's post in ممكن مساعده فى تحويل الاستعلام الى كووووووود was marked as the answer   
    وعليكم السلام 🙂
     
    هذه طريقتي في تفكيك الكود الى اسطر ،
    كما انه مافي داعي لتكرار اسم الجدول لكل حقل ، إلا اذا كان هناك ربط بين اكثر من جدول ، وهناك اسماء حقول متشابهه ، حينها يجب استعمال اسم الجدول واسم الحقل معا :
    Dim mySQL as string mySQL="SELECT ID, tdate, code, age, hgb, hgb_s, rbc, rbc_s, hct, hct_s," mySQL=mySQL & " hgbp, mcv, mcv_s, mch, mch_s, mchc, mchc_s, rdwcv, rdwcv_s," mySQL=mySQL & " rdwsd, rdwsd_s, plt, plt_s, pct, pct_s, pdw, pdw_s, mpv, mpv_s," mySQL=mySQL & " wbc, wbc_s, netp, netp_s, lymp, lymp_s, monp, monp_s, eosp, eosp_s," mySQL=mySQL & " basp, basp_s, net, net_s, lym, lym_s, mon, mon_s, eos, eos_s, bas, bas_s," mySQL=mySQL & " MIDp, MIDp_s, Mid, MID_s, comment, segmp, segmp_s, bandp, bandp_s, segm, segm_s," mySQL=mySQL & " [band], band_s, WBC_HISTOGRAM, RBC_HISTOGRAM, PLT_HISTOGRAM" mySQL=mySQL & " FROM CBC_tbl" mySQL=mySQL & " WHERE ID=" & [Forms]![visit_frm]![ID] Me.RecordSource = mySQL .
     
    .
    لما يكون عندك استعلام ، الاكسس يعمل له Compile ، ويعمل له شيء اسمه Query plan (خطة عمل الاستعلام) ، فيكون اسرع لان الاكسس عمل طريقه تنفيذيه للاستعلام حسب المعايير والفرز (يعني يقوم بعمل اي معبار قبل الآخر ، ووهل يعمل الفرز قبل تطبيق المعيار وفهرسة الحقول لها دور كبير في عمل هذه الخطة) ، (ويمكنك انزال برنامج تستطيع من خلاله رؤية هذه الخطة وطريقة عملها ، وحتى عمل التغيير عليها ، هنا https://isladogs.co.uk/jet-showplan-manager/index.html ، وللعلم ، فانا اعرف عن خطة عمل الاستعلام اكثر من عقدين ولكني لم اتدخل في عملها الى الآن 🙂)،
    بينما لما نعمل الاستعلام عن طريق الكود (وهذا يحدث في كل مرة يقرأ بها الاكسس الكود) ، فيقوم الاكسس بعمل خطة عمل ، ومن ثم تنفيذ الاستعلام.
    ولكن وبعد ان اصبحت الكمبيوترات سريعة ، ففارق الوقت في الفترة التي يأخذها الاكسس في تنفيذ كِلا الاستعلامين ، تُعتبر شبه لا شيء ، ولكن الافضل (ولعدة اسباب ، وخصوصا عند عمل التغيير) والاسرع ، هو عمل الاستعلام شخصيا 🙂
     
    القاعدة الذهبية في فهرسة حقول الاكسس هي:
    كل حقل تعمل معيار او فرز (سواء في الاستعلام او الكود او فلترة في النموذج او التقرير).
    ومن هذه القاعدة ، يجب ان يكون حقل ID في جدولك ، مفهرس 🙂
     
     
    .
    طريقة فلترة (استعمال المعيار في الاستعلام) ، هي افضل وبأقل كود من استعمال التصفية/الفلترة في النموذج (Me.Filter والذي نحتاج الى عدة اسطر كود للتصفية وتشغيله وحذفه ، وفي عدة احداث) ،
    اما طريقة عمل التصفية في الاستعلام ، حسب المتغير الذي في النموذج:
    في الاستعلام ، في الحقل الذي نريد وضع المعيار عليه ، نكتب مسار متغير المعيار كاملا ، مثل Forms!visit_frm!ID ، او اذا كان في نموذج فرعي Forms!visit_frm!SubForm_Name!ID ، ويكون الاستعلام اعلاه مصدر بيانات النموذج visit_frm ، وفي النموذج يكون عندنا سواء مربع نص او مربع سرد او مربع قائمة ، وعلى حدث "بعد التحدبث" للحقل بعد كتابة القيمة فيه او اختيار القيمة ، نكتب me.Requery ، العيب في هذه الطريقة هو ، لا يمكنك استعمال هذا الاستعلام إلا بهذا النموذج ، فلو اردنا استعمال الاستعلام اعلاه مع المسار التالي Forms!myfrm!ID ، فلن يعمل ونظطر لعمل استعلام آخر له.  
    والطريقة التي اتعامل معها في برامجي هي نفس الطريقة اعلاه ، ولكن :
    في برامجي ، هناك دائما نموذج اساسي لا يتم اغلاقه (frm_1 مثلا) ، واعمل فيه حقول نص مخفية ، مثل ID ، وفي الاستعلام اعلاه ، اعمل المعيار بهذا المسار: Forms!frm_1!ID ، ثم في النموذج visit_frm او myfrm ، وفي حدث "بعد التحديث" للحقل ، اكتب قيمة ID الى النموذج frm_1 ، ثم اشغل الاستعلام ، هكذا:  Forms!frm_1!ID = Me.ID Me.Requery بهذه الطريقة يصبح الاستعلام مرن ويمكن استعمال معياره لاكثر من نموذج 🙂
     
     
    جعفر
  6. jjafferr's post in التقرير يتجزأ الى اربعة اقسام في الطباعة was marked as the answer   
    وعليكم السلام 🙂
    حيا الله اخوي محمد 🙂
     
    للتقارير التي تطبع على طابعات خاصة ، مثل طابعة الهويات البلاستيكية ، يجب تخصيص الطابعة ، ولا نجعلها الطابعة الافتراضية ، هكذا
    .
    .

    .
    ثم تجعل مسافات الحواف كلها صفر ، وسستم تغييرها تلقائيا حسب اعدادات الطابعة :
    .
    .
    ودائما استعمل "معاينة الطباعة"
    .
    .
    فيصبح تقريرك هكذا

    .
    جعفر
  7. jjafferr's post in ربط الجداول was marked as the answer   
    .
    ثانيا: عمل جبار لمبتدئ، والشيء الاكثر اعجابا هو ربط الجداول بطريقة محترفة ،
    ثالثا: انا قلت:
    .
    ممكن تبدأ بالعمل بدون علاقات ، وخلال هذه الاثناء تصير الامور واضحة ، وتقدر تعمل العلاقات المتبقية
  8. jjafferr's post in عايزه لما اضغط زرار حذف مايظهرش فى الحقول كلمة deleted was marked as the answer   
    وعليكم السلام 🙂
     
    يجب إعطاء الامر Me.Requery ومعناها اجلب البيانات الجديدة من مصدر بيانات النموذج (Me معناه انا الكائن الذي تتم العمليه من خلاله ، اي مكان الحدث الذي اتى منه امر الحذف مثلا) ، بعد كل عملية تغيير في الجداول ، سواء حذف بيانات (مثل ما عندك) ، او اضافة او تغيير.
     
    وممكن عمل تحديث بيانات نموذج آخر (غير النموذج الذي تم الامر من خلاله) ، فيصبح الامر Forms!frnName.requery
     
    جعفر
     
  9. jjafferr's post in طريقة نقل قيم حقول من فورم الى آخر وعمل فلتره بال ID was marked as the answer   
    وعليكم السلام 🙂
     
    لفتح نموذج اسمه URINE ، ونقل بيانات الحقول ID,CODE, T.date اليه
    DoCmd.OpenForm "URINE", , , "[ID]=" & Me.ID Forms!urine!ID = Me.ID Forms!urine!code = Me.code Forms!urine!T.date = Me.T.date  
    جعفر
  10. jjafferr's post in المطلوب تعديل بيان من تاريخ معين من كل عام was marked as the answer   
    عندك الكود ، واعمل هذا التغيير :
    بدل Me.Results.BackColor = RGB(0, 255, 0) 'green اكتب Me.Results = "اخضر" .
    وهكذا مع بقية الشروط
  11. jjafferr's post in التعديل على دالة dsum was marked as the answer   
    تفضل يا سيدي:
    مصدر بيانات النموذج (تستطيع حذف الاعمدة D_From و D_To) :

    .
    ونتيجة الاستعلام:

    .
    والنموذج اصبح:

    .
    جعفر
     
    نصيحة:
    عندك مشكلة في برنامجك ، فالافضل ان تستورد مائناته الى ملف جديد ، ثم عمل ضغط واصلاح عليه.
     
    Laboratory_2024.zip
  12. jjafferr's post in فلتر التاريخ نصف سنوى was marked as the answer   
    السلام عليكم 
     
    مادمت اخذت طريق الاستعلام CrossTab ، فهناك شئ جدا ضروري يجب ان تعرفه ، ولقد كلفني الكثير من العناء والمشقة والتفكير والتصليح والوقت في سبيل معرفته 
     
    لما تعمل الاستعلام ، فانك تعمل حقل "عناوين الاعمدة" Column Headings ، والعناوين مثل ما ترى هنا ، هي "1-6" و "7-12":

     
     
    واذا القينا النظر الى بيانات الجدول ، سنرى انها تحتوي على بعض الاشهر من 1 الى 12

     
     
    وعليه ، نتيجة الاستعلام ستكون:

     
     
    ونتيجة النموذج (او التقرير) ستكون:

     
     
    ولكن اذا لم تكن هناك قيمة لأحد الاعمدة (لاحظ في الصورة التالية) ، لقد حذفت سجلات الاشهر من 7 الى 12 من الجدول ، لذا فلا توجد بيانات للعمود 7-12 ، اي لا يوجد حقل اسمه 7-12:

     
     
    فنتيجة الاستعلام ستكون بدون ذلك الحقل (لاحظ عدم وجود عمود اسمه 7-12):

     
     
    ولكن نتيجة النموذج (او التقرير) ستكون:

     
     
     
    هناك طرق لحل هذه المشكلة:
    1. برمجيا عن طريق QueryDef ، بحيث تعيد عمل الاستعلام:
    TRANSFORM Sum(Table1.ammount) AS Sumمنammount SELECT Year([dates]) AS السنة FROM Table1 GROUP BY Year([dates]) PIVOT IIf(Month([dates]) Between 1 And 6,"1-6","7-12"); وتعدل في عناوين اعمدة الاشهر ، بحيث اذا الاشهر ما موجودة في الجدول ، فانك لازم تحذفها من الاستعلام ، وتعيد حفظ الاستعلام بمعلوماته ،
    وكود التأكد والتغيير يجب ان تعمله في كل مرة تريد ان تشغل الاستعلام.
     
    2. عند فتح النموذج (او التقرير) :
    بحيث تضع كود يفحص اذا كان هناك حقل اسمه 7-12 ، فاذا لم يوجد ، فيجب ان تحذف مصدر عنصر الحقل.
     
    3. وهذا ما توصلت اليه أخيرا وبعد مشقة وعناء:
    في اعدادات الاستعلام ، اكتب اسماء الاعمدة في اعدادات الاستعلام ، وعليه اسماء الاعمدة ستكون دائما موجودة ، بغض النظر اذا كانت هناك بيانات ام لا:

     
     
    ونتيجة الاستعلام:

     
     
    ونتيجة النموذج (او التقرير):

     
     
     
    جعفر
    87.1.Database1.accdb.zip
  13. jjafferr's post in Shell and Wait for vb7 was marked as the answer   
    السلام عليكم 🙂
    صبحكم الله بالخير اخونا العود ابوخليل 🙂
     
    اعطيك حلين لسؤالك:
    1. ان ترى طريقة حل المشكلة من هنا: https://www.officena.net/ib/topic/107637-اجعل-برنامجك-يعمل-على-النواتين-32بت-و-64بت/
     

    .
     
    2. او ان تستعمل النسخة الاحدث من هذه الدالة ، والتى تقبل الحروف العربية في اسم الملف والمسار:
     
    جعفر
  14. jjafferr's post in سؤال عن كيفية اضافة كود لاكثر من نموذج من خلال زر امر was marked as the answer   
    تفضل وتدلل يا باشا 
     

    .
    الكود
    Private Sub cmd_Add_Command_Button_and_Code_Click() Dim str As String, theForm As String Dim ctl As Control theForm = Me.form_list.Value DoCmd.OpenForm theForm, acDesign, , , , acHidden Set ctl = CreateControl(theForm, acCommandButton, acDetail, , , 1440, 2160, 2880, 600) ctl.Name = Me.Button_Name ctl.Caption = "للتجربة" str = "Private Sub " & Me.Button_Name & "_Click" & vbCrLf & _ DLookup("[CLine]", "tbl_secur_add_code", "[SN]=1") & vbCrLf & _ "End Sub" Forms(theForm).Module.AddFromString str DoCmd.Close acForm, Forms(theForm).Name, acSaveYes End Sub جعفر
    472.اضافة كود فى محرر الاكواد بزر امر.mdb.zip
  15. jjafferr's post in استخراج بيانات من الرقم القومي was marked as the answer   
    السلام عليكم 
     
    رجاء استخدام خاصية البحث في المنتدى قبل طرح السؤال 🙂
     
    اليك الروابط
    https://cse.google.ae/cse?cx=partner-pub-4958585055085854:7791406915&ie=UTF-8&q=استخراج+بيانات+من+الرقم+القومي&sa=Search
     
    يغلق
  16. jjafferr's post in تشغيل استعلام او تقرير باختيار اكثر من كود السجل was marked as the answer   
    وعليكم السلام ورحمة الله وبركاته
     
    العمل سهل للتقرير :
    اعمل تقرير غير مقيد بمعيار ، ولنسميه rpt ، وضع هذا الكود لفتح التقرير :
    Dim strIN As String strIN = InputBox("رجاء ادخل ارقام الدول، بينهم فاصلة") DoCmd.OpenReport "rpt", acViewPreview, , "[ConID] IN(" & strIN & ")"  
  17. jjafferr's post in طلب مساعده في فتح نموذج بالكود عند عدم تحقق الشرط was marked as the answer   
    نعم ممكن ، ولكن لأي سجل؟
    يعني تريد المستخدم يدخل البيانات ، ولما يغلق النموذج ، يعرف اي من بياناته غلط !!
     
    وبعدين اي معلومة تعتبر المعلومة الصحيحة ، num1 او num2 اذا اردتنا ان نغيرها !!
     
    مع وجود الرسالة ، عملت لك تنسيق شرطي ، اذا القيمتين لا يساوون بعض ، فالحقلين يكونون بلون مختلف

    .
     
    يجب عليك تحليل طريقة العمل ، وبعدين ممكن توصل الى الطريقة الاصح للحل 🙂
    1591.تجريبي.accdb.zip
  18. jjafferr's post in اضافة معيار علي جملة select was marked as the answer   
    وعليكم السلام 🙂
     
    الظاهر هذا الكود في VBA ، فخليني اعلمك كيف تصطاد🙂
     
    اجعل كودك هكذا :
    dim mySQL as string mySQL="SELECT * FROM tblVacation where (((tblVacation.emp_code)= " & [TempVars]![EmpIdTemp] & " )) ORDER BY vacationstartdate Asc;" debug.print mySQL .
    في اسفل النافذة بتحصل على كود مثل التالي:
    SELECT * FROM tblVacation where (((tblVacation.emp_code)= 1234 )) ORDER BY vacationstartdate Asc; .
    انسخ الكود ،
    افتح استعلام جديد ، ولما تجيك نافذة اختيار الجداول ، اغلق النافذة ، 
    ثم انقر بالفأرة اليمين في منتصف الاستعلام ، واختار SQL
    الصق الكود اعلاه ،
    ثم اختار Design ، فتحصل على استعلام عادي ،
    واضف الشرط الجديد ،
    ثم انقر الزر اليمين ، و اختار SQL مرة اخرى ، فتحصل على الكود المطلوب :

    .
    والآن يمكن تنظيف الكود كالتالي:
    من SELECT [VacationLife] AS Expr1, * FROM tblVacation WHERE ((([tblVacation].[emp_code])=1234) AND (([VacationLife])="سارية")) ORDER BY vacationstartdate; الى SELECT [VacationLife], * FROM tblVacation WHERE [emp_code]=1234 AND [VacationLife]='سارية' ORDER BY vacationstartdate ثم الى "SELECT [VacationLife], * FROM tblVacation WHERE [emp_code]= " & [TempVars]![EmpIdTemp] & " AND [VacationLife]='سارية' ORDER BY vacationstartdate"  
  19. jjafferr's post in ارجو المساعدة في عمل برنامج لييبل was marked as the answer   
    السلام عليكم 🙂
     
    استعملت برنامج اخوي عمر ضاحي ، وعملت عليه التعديل المطلوب حسب طريقة استخدامي للباركود في برامجي ،
    انا استخدم Code39 ،
    لعمل البرنامج ، ما لك علاقة بخط الباركود ، البرنامج تلقائيا ينصبه عند فتح البرنامج ، ويحذفه عند الانتهاء من البرنامج 🙂
     
    هناك خاصية لعمل الليبلات في تقارير الاكسس ، مجرد تختار من الليبلات العالمية الموجودة ، او تعمل ليبلك الخاص (كما عملته انا بهذه الخطوات) :

    .

    .
    فيقوم الاكسس بتعديل مسافات الحواف

    1587.Label.zip
  20. jjafferr's post in ارجوا المساعدة في عمل اشعار او تنبيه عند تغير البيانات was marked as the answer   
    السلام عليكم اخي يحى 🙂
     
    رجاء لا تفتح اكتر من موضوع لنفس السؤال 🙂
    للإستمرار في هذا الموضوع ، رجاء المتابعة على هذا الرابط :
     
    .
    يُغلق
  21. jjafferr's post in تجميع سجلات was marked as the answer   
    السلام عليكم 🙂
     
    للتجربة والتأكد من اني فهمت الموضوع ، رجاء عمل التالي:
    1. شغل الدالة Make_Groups ،
    وذلك بكتابة اسمها في الاسفل ، ورجاء التأكد ان علامة الاستفهام بالانجليزي ، ثم انقر على زر Enter على الكيبورد 

    .
    عندما تنتهي الدالة من عملها ، ستظهر لك رسالة "Done" ،
    عندها رجاء تشغيل الاستعلام qry_Vacations والتأكد بأن بياناتها كما تريد 🙂
     
    الدالة تضع بياناتها في الجدول tbl_V_Seq ، وهو جدول تجميع الاجازات المستمرة 🙂

    1581.سجل المحضرين_be.accdb.zip
  22. jjafferr's post in تحويل اعمدة الى صفوف من جدول اكسل مرتبط بقاعدة البيانات was marked as the answer   
    السلام عليكم 🙂
    ضع هذا الملف مع ملف الاكسل "Unmanaged.xlsx" في نفس المجلد "D:\nw" ، وإلا ، فيجب تعديل المسار في الاستعلام qry_1_Excel_File (وهذا سيأخذ وقت لفتح الاستعلام 🙂) :

     
    استخدم الزر في النموذج ، حتى تعمل جدول جديد بإسم tbl_Data وبه بيانات الاكسل جاهزة لتحويلها الى اي جدول آخر ، او استعماله مباشرة في الاكسس ،
    ملاحظة ، يتم حذف الجدول tbl_Data ، ويتم عمله من جديد في كل مرة ، حتى نتأكد بأننا حصلنا على جميع حقول ملف الاكسل .
    1569.as_Final.accdb.zip
  23. jjafferr's post in اريد تحديث Text2 و Text3 عندالادخال فى Text1 was marked as the answer   
    وعليكم السلام 🙂
     
    اخي الفاضل ، الكود عندك صحيح وما فيه اي مشكلة 😁
    بس رجاء الانتباه الى ان نموذجك معمول لإدخال البيانات ، وليس لمعاينة البيانات السابقة :

     
     
    وانت لا ترى نتائج الكود ، لأن السجل ينتقل الى السجل التالي ، لهذا اعمل التغيير التالي في اعدادات نموذجك ، حتى ترى رقم السجل الذي انت عليه :

    .

     
  24. jjafferr's post in تقرير احصائى was marked as the answer   
    سيدي الفاضل 🙂
    يا ريت تقرأ الموضوع التالي: https://www.officena.net/ib/topic/113391-لا-تستعمل-dlookup-او-dsum-واخواتها-في-استعلام-،-واليك-البديل/
    انت صحيح ما استعملت الامر في الاستعلام ، ولكنك استعملته في التقرير ، فيكون الموضوع ينطبق عليه ايضا 🙂
     
    تم حذف جميع الكود الموجود في التقرير ehsa_sub_dor_New ، وتم عمل استعلام جديد room_list_New ، كمصدر بيانات للتقرير ، يقوم بالعملية كاملا.
    ما استطعت تكملة حقول التقرير (تعبت 😁) ، فرجاء اكملهم مثل الحقول اللي قبلها.
    1578.1.تقرير احصاء.accdb.zip
  25. jjafferr's post in كيفية طباعة سجل حسب التاريح was marked as the answer   
    نعم، البيانات موجودة في المرفق، ولكن ليس مثال عن طلبك 🙂
     
    استغنيت عن فلتر النموذج ، ووضعت معيار التصفية في الاستعلام مصدر بيانات النموذج ، هكذا :

    .
    وعملت نفس المعيار في الاستعلام مصدر بيانات التقرير.
    1575.1.exemple.accdb.zip
×
×
  • اضف...

Important Information