-
Posts
10020 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
408
نوع المحتوي
التقويم
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
عدم ظهور الشعار او الصورة عند طباعة التقرير
jjafferr replied to ABDELRAHMAN ALFAHOUM's topic in قسم الأكسيس Access
وعليكم السلام 🙂 تأكد ان صورة الشعار ليست كبيرة (الطول و العرض) ، فأنت بحاجة الى صورة في حدود 500 - 600 بكسل فقط ، واي حجم كبير قد يسبب لك مشكلة اختفاء الصورة !! جعفر -
وعليكم السلام 🙂 في الرابط التالي فيه مرفق : . المرفق فيه نموذج واستعلام يقومان بطلبك ، اقرأ الموضوع من : جعفر
-
السلام عليكم 🙂 سؤال الموضوع كان: وقد قام الاخ حسام بالرد عليه 🙂 اما الطلب الاضافي ، فقد تستفيد من هذا الموضوع: جعفر
-
وعليكم السلام 🙂 هذا كان مجرد مثال من صاحب الموضوع 🙂 اليك مثال حقيقي ، وقد حصلت على السند عند البحث في الانترنت : انت مسؤول مخزن ، واستلمت قائمة المواد حسب سند الاخراج المرفق: . لما تريد ان تدخل المواد من 1 الى 6 في برنامج المخازن ، فيجب عليك ان تدخل المعلومات التاليه في كل سجل: . لهذا السبب ، وبإستخدام الكود اعلاه ، نضع الحقول اللي في المربع ، في النموذج الرئيسي ، وكلما عملنا سجل جديد في النموذج الفرعي ، تلقائيا يتم تسجيلها في السجل الجديد في النموذج الفرعي ، ويبقى عليك ادخال اسم المادة والوحدة والكمية فقط 🙂 في هذا المثال ، ولأن عدد الحقول هو 10 حقول ، وعدد الحقول التي يتم ادخالها تلقائيا هي 6 حقول ، فأنت وفرت 60% من وقت ادخال البيانات ، وبالدقة المطلوبة 🙂 جعفر
-
السلام عليكم 🙂 اخي محمد أبو عبدالله ، اذا تسمح لي استعمل قاعدة بياناتك ، واعمل تغيير على الكود ، لجلب البيانات بطريقة اخرى ، من النموذج الرئيسي مباشرة 🙂 الكود : Private Sub Command11_Click() If Len(Me.txtName & "") = 0 Then MsgBox "يحب اختيار اسم العميل اولاً", vbInformation, "officena" Me.txtName.SetFocus ElseIf Len(Me.txtTel & "") = 0 Then MsgBox "يحب اختياررقم التليفون اولاً", vbInformation, "officena" Me.txtTel.SetFocus ElseIf Len(Me.txtAddress & "") = 0 Then MsgBox "يحب اختيار العنوان اولاً", vbInformation, "officena" Me.txtAddress.SetFocus Else 'to make a New Record in the SubForm, it has to be in Focus Me.frm2.SetFocus DoCmd.GoToRecord , , acNewRec 'now take the values from the Main Form Me.frm2!XName = Me.txtName Me.frm2!XTel = Me.txtTel Me.frm2!XAddress = Me.txtAddress 'save the SubForm Record so that the Record Count shows correctly If Me.frm2.Form.Dirty Then Me.frm2.Form.Dirty = False MsgBox "تم اضافة البيانات بنجاح ان شاء الله ", , "officena" End If End Sub . اما عدد السجلات ، فنعمل حقل في النموذج الفرعي ، في قسم Form Footer (ولا يعمل العد او الجمع بهذه الطريقة ، إلا في هذا القسم) ، ونجعله يعد عدد اي حقل ، ويمكننا لاحقا ان نجعله مخفي : . وفي النموذج الرئيسي ، يكون لدينا حقل نص ، ومصدر بياناته هو حقل العد الموجود في النموذج الفرعي : . جعفر 1280.DB_test.accdb.zip
-
طلب اضافة عمود ترقيم تلقائي لاستعلام
jjafferr replied to أبو يحيى الجبلاوي's topic in قسم الأكسيس Access
وفي هذا الموضوع اكثر من طريقة : . وسبق ان عملت لك رد عن الترقيم ، هنا 🙂 . جعفر -
وعليكم السلام 🙂 بدل ان تستعمل الرقم الموجب ، استعمل علامة ناقص (-) قبل الرقم ، حتى يعرف البرنامج انك تريد طرح هذه المدة ، هكذا : جعفر
- 1 reply
-
- 1
-
-
السلام عليكم 🙂 انا استعمل اكسس 2010 ، 32بت ، على وندوز 10 64بت ، وبإستعمال المرفق الاخير للأخ @alsihran : 1. عند زيادة البيانات (يعني البيانات الموجودة في المرفق) ، هذه النتيجة : 2. وحين تكون قليلة . والسبب في ظهور عدة اسطر للحقل بدل سطر واحد فقط ، هو تمكين اعدادات الحقول والقسم "قابل للنمو" الى نعم ، بينما لو جعلناها لا . فالنتيجة سطر واحد فقط ، بغض النظر عن كمية البيانات : . جعفر
-
الفائدة الاعم والتي من اجلها تم عمل المنتديات ، هي كما قالها الاستاذ محمد : اما فائدة الدخول متخفي ، فمثلا لما اكون على سفر وادخل المنتدى ، لغرض البحث عن شيء معين ، ولا اريد ان يتتبع الاعضاء وقت دخولي ذلك الوقت ، فأدخل متخفي جعفر
-
شكرا جزيلا دكتور محمد 🙂 جعفر
-
وبدون لمس البرنامج ، وبعد استيراد البيانات الى الجدول meetingAttendanceList ، نعمل استعلام ليكون مصدر بيانات للتقرير ، في هذا الاستعلام نفكك الحقل TimesStamp الى حقل تاريخ D1 وحقل وقت T1 (يعني حقول تاريخ وليس حقول نص) ، وبعدها يمكنك عمل ما تشاء في جمعهما 🙂 . . جعفر 1279.ImportExcel.accdb.zip
-
كيف نأخذ التاريخ من أول سجل وأخر سجل ونضعهم في رأس الصفحة للتقرير
jjafferr replied to alsihran's topic in قسم الأكسيس Access
-
كيف نأخذ التاريخ من أول سجل وأخر سجل ونضعهم في رأس الصفحة للتقرير
jjafferr replied to alsihran's topic in قسم الأكسيس Access
السلام عليكم 🙂 في الواقع ، هذا السؤال من الاسئلة التي تُثار بين الحينه والاخرى ، واليك السبب في عدم امكانية الحصول على قيمة ذيل الصفحة ، في رأس الصفحة : التقرير عندك فيه 3 اقسام : . خلينا نشوف قيم التاريخ لصفحة: . والآن خلينا نشوف التاريخ ، بالطريقة اللي اقسام التقرير تشوفه ، بإستخدام حدث التنسيق لكل قسم: Private Sub PageHeaderSection_Format(Cancel As Integer, FormatCount As Integer) Debug.Print "Header= " & Me.Edate End Sub Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) Debug.Print " Detail= " & Me.Edate End Sub Private Sub PageFooterSection_Format(Cancel As Integer, FormatCount As Integer) Debug.Print "Footer= " & Me.Edate Debug.Print End Sub . والنتيجة لصفحتين : Header= 18-Oct-20 Detail= 18-Oct-20 Detail= 19-Oct-20 Detail= 20-Oct-20 Detail= 21-Oct-20 Detail= 22-Oct-20 Detail= 23-Oct-20 Detail= 24-Oct-20 Detail= 25-Oct-20 Detail= 26-Oct-20 Detail= 27-Oct-20 Detail= 28-Oct-20 Detail= 29-Oct-20 Detail= 30-Oct-20 Detail= 31-Oct-20 Detail= 01-Nov-20 Detail= 02-Nov-20 Detail= 03-Nov-20 Detail= 04-Nov-20 Detail= 05-Nov-20 Detail= 06-Nov-20 Detail= 07-Nov-20 Detail= 08-Nov-20 Footer= 07-Nov-20 Header= 08-Nov-20 Detail= 08-Nov-20 Detail= 09-Nov-20 Detail= 10-Nov-20 Detail= 11-Nov-20 Detail= 12-Nov-20 Detail= 13-Nov-20 Detail= 14-Nov-20 Detail= 15-Nov-20 Detail= 14-Jan-21 Detail= 15-Jan-21 Detail= 16-Jan-21 Detail= 17-Jan-21 Detail= 18-Jan-21 Detail= 19-Jan-21 Detail= 20-Jan-21 Detail= 21-Jan-21 Detail= 22-Jan-21 Detail= 23-Jan-21 Detail= 24-Jan-21 Detail= 25-Jan-21 Detail= 26-Jan-21 Detail= 27-Jan-21 Footer= 26-Jan-21 . من هنا نلاحظ ان رأس الصفحة يرى اول سجل ، بينما ذيل الصفحة يرى آخر سجل ، والتقرير يطبع / يُظهر رأس الصفحة قبل ان تكون البيانات وصلت الى ذيل الصفحة (يعني ذيل الصفحة لا يحتوي على اي قيمة حينها ، لما رأس الصفحة يحصل على القيمة) ، لهذا سبب ما نحصل على التاريخين معا في رأس الصفحة !! ------------------------------------------------------------------------------------------------------- الآن وبعد ان عرفنا طريقة عمل التقرير ، خلينا نستفيد منه في عمل المطلوب : خلينا نفتح التقرير بطريقة مخفية ، نأخذ قيمة سجل رأس صفحة التقرير وذيل صفحة التقرير لكل صفحة ، نحفظهم في مصفوفة Array ، ثم نفتح التقرير بالطريقة العادية ونأخذ بيانات رأس وذيل التقرير من المصفوفة ، ونضعهم في التقرير ، في رأس الصفحة 🙂 1. عمل نموذج لحصر البيانات بين قيمتين (مع اننا لسنا بحاجة الى هذه الخطوة ، ولكن لأن جدولك في سجلات بدون قيم تواريخ ، فهذا يعمل خلل في الكود) ، ونعمل استعلام يصفي بيانات الجدول حسب تواريخ النموذج ، ويكون هذا الاستعلام مصدر بيانات التقرير: . 2. النقر على زر فتح التقرير في النموذج ، يحتوي على هذا الكود : والذي يعمل مصفوفة لـ 100 صفحة في التقرير (اذا تقريرك يحتوي على صفحات اكثر ، فقط اجعل هذا الرقم اكبر ، ما يضر اذا تركته = 200 او اكثر) 'accept adding dates Add_Dates = True 'initilize the arrays with a larg number of pages ReDim Fd(100) 'first E_date ReDim Ld(100) 'last E_date 'open the Report in Hidden mode, to put the E_dates in an array DoCmd.OpenReport "rpt_chfit", acViewPreview, , , acHidden 'close the Hidden Report DoCmd.Close acReport, "rpt_chfit" 'stop adding dates Add_Dates = False 'now open the Report in the normal way DoCmd.OpenReport "rpt_chfit", acViewPreview . وهناك وحدة نمطية تحتفظ بقيم المصفوفة ، حتى تكون متوفرة لجميع كائنات البرنامج: Option Compare Database Option Explicit Public Add_Dates As Boolean Public Fd() As Date 'first E_date Public Ld() As Date 'last E_date . والتقرير فيه هذا الكود: Private Sub PageHeaderSection_Format(Cancel As Integer, FormatCount As Integer) If Add_Dates = True Then 'add the array items, based on the Report page number Fd(Me.Page) = Me.F_Edate Else 'show the results Me.myF_Edate = Fd(Me.Page) Me.myL_Edate = Ld(Me.Page) End If End Sub Private Sub PageFooterSection_Format(Cancel As Integer, FormatCount As Integer) If Add_Dates = True Then 'add the array items Ld(Me.Page) = Me.L_Edate End If End Sub Private Sub Report_Close() If Add_Dates = False Then 'Empty the array ReDim Fd(0) 'first E_date ReDim Ld(0) 'last E_date End If End Sub . فإذا قيمة Add_Dates = True في النموذج ، فيعمل التقرير المخفي لعمل المصفوفة ، بينما عندما تتغير قيمة Add_Dates ، فيقوم التقرير بإظهار قيم المصفوفة في التقرير الغير مخفي ، وعند اغلاق التقرير ، نقوم بحذف بيانات المصفوفة 🙂 لذلك ، وللحصول على النتائج الصحيحة ، يجب تشغيل التقرير من النموذج ، حتى يقوم الكود بما يجب 🙂 . . جعفر 1277.addDateHideRport.accdb.zip -
تفضل طريقة تحويل جملة الاستعلام SQL من الكود الى استعلام ، ومن ثم من الاستعلام الى الكود مرة اخرى : 1. ادخل في نموذج login حتى يكون لدينا اسم المستخدم في المتغير TempVars!mm في ذاكرة الكمبيوتر (وتظل هذه القيمة في ذاكرة الكمبيوتر الى اغلاق برنامج الاكسس) ، ولنختار المستخدم محمد مثلا (ومافي داعي للنقر على زر "دخول") : . 2. نفتح النموذج form2 ، ونذهب الى حدث النقر على الزر "ادفع" حتى نرى الكود : DoCmd.RunSQL "INSERT INTO المبيعات ( [كود الصنف], [اسم الصنف], المورد, [سعر البيع], اللون, المقاس, التاريخ, [نظام الدفع] ) SELECT فرعى.[كود الصنف], فرعى.[اسم الصنف], فرعى.المورد, فرعى.[سعر البيع], فرعى.اللون, فرعى.المقاس, Date() AS D, ""نقدي"" AS s FROM فرعى;" . نريد ان نعمل تغيير في جملة SQL هذه ، ونضيف "اسم المستخدم" فيها ، والموجدو في المتغير TempVars!mm ، أ. نعطي جملة SQL الى متغير ، ولنسميه mySQL ، ثم في اسفل نافذة الكود VBE ، في نافذة Immediate (ولفتح هذه النافذة Ctrl+G) ، نرى جملة الـ SQL كما يراها البرنامج : dim mySQL as string mySQL= "INSERT INTO المبيعات ( [كود الصنف], [اسم الصنف], المورد, [سعر البيع], اللون, المقاس, التاريخ, [نظام الدفع] ) SELECT فرعى.[كود الصنف], فرعى.[اسم الصنف], فرعى.المورد, فرعى.[سعر البيع], فرعى.اللون, فرعى.المقاس, Date() AS D, ""نقدي"" AS s FROM فرعى;" debug.print mySQL DoCmd.RunSQL mySQL . ب. انقر على الزر "ادفع" ، فنرى جملة SQL في النافذة : . ج. ننسخ هذه الجملة (بما ان الجملة فيها كلمات عربية ، فيجب ان تكون لغة لوحة المفاتيح بالعربية ، حتى نرى الكلمات العربية بالطريقة الصحيحة ، وإلا فهذه الكلمات ستتحول الى حروف اغريقية!!) اذا تم نسخ الجملة التي فيها كلمات عربية ، ولوحة المفاتيح بالانجليزي: . فعند لصقها في الاستعلام (او حتى في المنتدى) ، ستكون هكذا: . لذا يتوجب تغيير لوحة المفاتيح الى العربية . د. نفتح استعلام جديد ، ونطلب منه فتح نافذة الاستعلام في وضع SQL . . هـ. ثم نلصق جملة SQL التي نسخناها من نافذة VBE Immediate ، الى هذا الاستعلام: . ثم نعرض الاستعلام بوضع التصميم ، حتى يسهل علينا فهم جملة SQL : . فيصبح الاستعلام هكذا: . و. وبتغيير كلمة "نقدي" الى 'نقدي' (لأننا في الاستعلام نستخدم الخط الواحد ' وليس خطين " للنص) ، واضفنا حقل "اسم المستخدم" . ز. والآن نحول الاستعلام الى جملة SQL ، وننسخه الى الكود في VBE (ولو اني دائما افضل استعمال الاستعلام بدل الكود ، ولكن الامر راجع اليك) : . . ح. ونضعه في الكود : 'mySQL = "INSERT INTO المبيعات ( [كود الصنف], [اسم الصنف], المورد, [سعر البيع], اللون, المقاس, التاريخ, [نظام الدفع] ) SELECT فرعى.[كود الصنف], فرعى.[اسم الصنف], فرعى.المورد, فرعى.[سعر البيع], فرعى.اللون, فرعى.المقاس, Date() AS D, ""نقدي"" AS s FROM فرعى;" mySQL = "INSERT INTO المبيعات ( [كود الصنف], [اسم الصنف], المورد, [سعر البيع], اللون, المقاس, التاريخ, [نظام الدفع], [اسم المستخدم] )" mySQL = mySQL & " SELECT فرعى.[كود الصنف], فرعى.[اسم الصنف], فرعى.المورد, فرعى.[سعر البيع], فرعى.اللون, فرعى.المقاس, Date() AS D, 'نقدي' AS s, '" & [TempVars]![mm] & "' AS T" mySQL = mySQL & " FROM فرعى;" Debug.Print mySQL DoCmd.RunSQL mySQL . مع ملاحظة تغيير المتغير الى نص ، حتى يأخذ قيمته مباشرة من TempVars!mm : . . والآن نستخدم النموذج form2 ونجرب الزر: . والنتيجة : . جعفر 1275.المحل نسخة تجريبية.accdb.zip
-
السلام عليكم 🙂 هذا المنتدى للتبادل العلمي ، حتى يستفيد منه الجميع ، وليس صاحب الموضوع / السؤال فقط 🙂 فيا ريت ان نضع الاجابة بالتفصيل في الرد (سواء الخطوات او الكود او صور من شاشة البرنامج) ، ولا نتوقف عند ارفاق المرفق الذي به الرد / الجواب ، والسبب هو ، حتى يستطيع الجميع رؤية الرد ومعرفته مباشرة ، دون اللجوء الى انزال المرفق وفهمه 🙂 نعم ، هذا عبء إضافي ، ولكن نتائجه ستكون مثمرة ان شاء الله 🙂 وتذكروا ، هذا مجرد طلب ورجاء ، وليس اجباري 🙂 شكرا جزيلا 🙂 جعفر
- 5 replies
-
- 24
-
-
-
وعليكم السلام 🙂 بما انك ادخلت قيمة واحدة في tempVars ، فللحصول عليها ، يمكنك ان تستعمل msgbox TempVars![mm] او msgbox TempVars.Item(0) جعفر
-
وعليكم السلام 🙂 عادة نستخدم الاستعلام لعمل مجاميع ، وبالتالي تكون المعلومة جاهزة وبدون تكرار في التقرير ، او نستخدم مجاميع التقرير (في اسفل التقرير) . جعفر
-
لم استطع معرفة مكان هذا التغيير ، والاخ @husamwahab يسأل عنه ، فياريت تدلنا عليه خطوة بخطوة جعفر
-
السلام عليكم 🙂 ومثل ما قال الاخ Kanory ، وببعض التعديل على الكود ليتناسب مع اسماء الحقول 🙂 جعفر 1274.t_fdate.mdb.zip
-
هل ممكن عمل نافذة بحث لحقل موجود في نموذج فرعي
jjafferr replied to sarah_rose's topic in قسم الأكسيس Access
🙂 -
السلام عليكم 🙂 وهذا شغل اخوي ابا جودي ، بس يأخذ اكثر من ملف دفعة واحدة (يعني تقدر تختار مجموعة ملفات ، ثم تضيف مجموعة اخرى الى القائمة ، دفعة واحدة) 🙂 تقدر بالفأرة تختار اكثر من ملف ، او عند طريق الضغط على الزر shift او ctrl اثناء النقر على اسماء الملفات 🙂 جعفر ImportExcel.accdb