-
Posts
9,871 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
403
Community Answers
-
jjafferr's post in هل من الممكن ان اضيف حجم A3 الى التقرير ؟؟؟ was marked as the answer
وعليكم السلام
مقاييس الصفحة الموجودة في التقرير يتم اخذها من الطابعة الافتراضية ، الى ان يقوم المستخدم باختيار طابعة اخرى ،
لذا ، اذا الطابعة التي يقوم باختيارها المستخدم لا تحتوي على A3 ، فلن تجد هذا الاختيار من القائمة.
يمكنك استخدام طابعة pdf افتراضية ، واجعل حجم الصفحة فيها الذي تريده ، سواء A3 او اكبر ، وستجد هذا الحجم موجود عند اختيارك لطابعة الـ pdf .
انا استعمل هذه الطابعة المجانية :
-
jjafferr's post in تحويل كود VBA الي ماكرو was marked as the answer
تفضل يا سيدي
اعمل اغلق النموذج/التقرير اولا (لاحظ مافيه اسم النموذج) ، ثم افتح النموذج الآخر لاحقا
.
لماذا ؟
شوف المقطع التالي:
.
جعفر
-
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
-
jjafferr's post in تصحيح كود برنامج was marked as the answer
ابدا بالعمل ، ولما تصادف مشكلة ، ارسلها هنا علشان نساعدك
-
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 بهذه الطريقة يصبح الاستعلام مرن ويمكن استعمال معياره لاكثر من نموذج 🙂
جعفر
-
jjafferr's post in التقرير يتجزأ الى اربعة اقسام في الطباعة was marked as the answer
وعليكم السلام 🙂
حيا الله اخوي محمد 🙂
للتقارير التي تطبع على طابعات خاصة ، مثل طابعة الهويات البلاستيكية ، يجب تخصيص الطابعة ، ولا نجعلها الطابعة الافتراضية ، هكذا
.
.
.
ثم تجعل مسافات الحواف كلها صفر ، وسستم تغييرها تلقائيا حسب اعدادات الطابعة :
.
.
ودائما استعمل "معاينة الطباعة"
.
.
فيصبح تقريرك هكذا
.
جعفر
-
jjafferr's post in ربط الجداول was marked as the answer
.
ثانيا: عمل جبار لمبتدئ، والشيء الاكثر اعجابا هو ربط الجداول بطريقة محترفة ،
ثالثا: انا قلت:
.
ممكن تبدأ بالعمل بدون علاقات ، وخلال هذه الاثناء تصير الامور واضحة ، وتقدر تعمل العلاقات المتبقية
-
jjafferr's post in عايزه لما اضغط زرار حذف مايظهرش فى الحقول كلمة deleted was marked as the answer
وعليكم السلام 🙂
يجب إعطاء الامر Me.Requery ومعناها اجلب البيانات الجديدة من مصدر بيانات النموذج (Me معناه انا الكائن الذي تتم العمليه من خلاله ، اي مكان الحدث الذي اتى منه امر الحذف مثلا) ، بعد كل عملية تغيير في الجداول ، سواء حذف بيانات (مثل ما عندك) ، او اضافة او تغيير.
وممكن عمل تحديث بيانات نموذج آخر (غير النموذج الذي تم الامر من خلاله) ، فيصبح الامر Forms!frnName.requery
جعفر
-
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
جعفر
-
jjafferr's post in المطلوب تعديل بيان من تاريخ معين من كل عام was marked as the answer
عندك الكود ، واعمل هذا التغيير :
بدل Me.Results.BackColor = RGB(0, 255, 0) 'green اكتب Me.Results = "اخضر" .
وهكذا مع بقية الشروط
-
jjafferr's post in التعديل على دالة dsum was marked as the answer
تفضل يا سيدي:
مصدر بيانات النموذج (تستطيع حذف الاعمدة D_From و D_To) :
.
ونتيجة الاستعلام:
.
والنموذج اصبح:
.
جعفر
نصيحة:
عندك مشكلة في برنامجك ، فالافضل ان تستورد مائناته الى ملف جديد ، ثم عمل ضغط واصلاح عليه.
Laboratory_2024.zip
-
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
-
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. او ان تستعمل النسخة الاحدث من هذه الدالة ، والتى تقبل الحروف العربية في اسم الملف والمسار:
جعفر
-
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
-
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
يغلق
-
jjafferr's post in تشغيل استعلام او تقرير باختيار اكثر من كود السجل was marked as the answer
وعليكم السلام ورحمة الله وبركاته
العمل سهل للتقرير :
اعمل تقرير غير مقيد بمعيار ، ولنسميه rpt ، وضع هذا الكود لفتح التقرير :
Dim strIN As String strIN = InputBox("رجاء ادخل ارقام الدول، بينهم فاصلة") DoCmd.OpenReport "rpt", acViewPreview, , "[ConID] IN(" & strIN & ")"
-
jjafferr's post in طلب مساعده في فتح نموذج بالكود عند عدم تحقق الشرط was marked as the answer
نعم ممكن ، ولكن لأي سجل؟
يعني تريد المستخدم يدخل البيانات ، ولما يغلق النموذج ، يعرف اي من بياناته غلط !!
وبعدين اي معلومة تعتبر المعلومة الصحيحة ، num1 او num2 اذا اردتنا ان نغيرها !!
مع وجود الرسالة ، عملت لك تنسيق شرطي ، اذا القيمتين لا يساوون بعض ، فالحقلين يكونون بلون مختلف
.
يجب عليك تحليل طريقة العمل ، وبعدين ممكن توصل الى الطريقة الاصح للحل 🙂
1591.تجريبي.accdb.zip
-
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"
-
jjafferr's post in ارجو المساعدة في عمل برنامج لييبل was marked as the answer
السلام عليكم 🙂
استعملت برنامج اخوي عمر ضاحي ، وعملت عليه التعديل المطلوب حسب طريقة استخدامي للباركود في برامجي ،
انا استخدم Code39 ،
لعمل البرنامج ، ما لك علاقة بخط الباركود ، البرنامج تلقائيا ينصبه عند فتح البرنامج ، ويحذفه عند الانتهاء من البرنامج 🙂
هناك خاصية لعمل الليبلات في تقارير الاكسس ، مجرد تختار من الليبلات العالمية الموجودة ، او تعمل ليبلك الخاص (كما عملته انا بهذه الخطوات) :
.
.
فيقوم الاكسس بتعديل مسافات الحواف
1587.Label.zip
-
jjafferr's post in ارجوا المساعدة في عمل اشعار او تنبيه عند تغير البيانات was marked as the answer
السلام عليكم اخي يحى 🙂
رجاء لا تفتح اكتر من موضوع لنفس السؤال 🙂
للإستمرار في هذا الموضوع ، رجاء المتابعة على هذا الرابط :
.
يُغلق
-
jjafferr's post in تجميع سجلات was marked as the answer
السلام عليكم 🙂
للتجربة والتأكد من اني فهمت الموضوع ، رجاء عمل التالي:
1. شغل الدالة Make_Groups ،
وذلك بكتابة اسمها في الاسفل ، ورجاء التأكد ان علامة الاستفهام بالانجليزي ، ثم انقر على زر Enter على الكيبورد
.
عندما تنتهي الدالة من عملها ، ستظهر لك رسالة "Done" ،
عندها رجاء تشغيل الاستعلام qry_Vacations والتأكد بأن بياناتها كما تريد 🙂
الدالة تضع بياناتها في الجدول tbl_V_Seq ، وهو جدول تجميع الاجازات المستمرة 🙂
1581.سجل المحضرين_be.accdb.zip
-
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
-
jjafferr's post in اريد تحديث Text2 و Text3 عندالادخال فى Text1 was marked as the answer
وعليكم السلام 🙂
اخي الفاضل ، الكود عندك صحيح وما فيه اي مشكلة 😁
بس رجاء الانتباه الى ان نموذجك معمول لإدخال البيانات ، وليس لمعاينة البيانات السابقة :
وانت لا ترى نتائج الكود ، لأن السجل ينتقل الى السجل التالي ، لهذا اعمل التغيير التالي في اعدادات نموذجك ، حتى ترى رقم السجل الذي انت عليه :
.
-
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
-
jjafferr's post in كيفية طباعة سجل حسب التاريح was marked as the answer
نعم، البيانات موجودة في المرفق، ولكن ليس مثال عن طلبك 🙂
استغنيت عن فلتر النموذج ، ووضعت معيار التصفية في الاستعلام مصدر بيانات النموذج ، هكذا :
.
وعملت نفس المعيار في الاستعلام مصدر بيانات التقرير.
1575.1.exemple.accdb.zip