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

jjafferr

أوفيسنا
  • Posts

    9975
  • تاريخ الانضمام

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

  • Days Won

    406

كل منشورات العضو jjafferr

  1. حياك الله 🙂 كلامي هنا عن تكرار البصمة بدون فاصل: وبما انك لم ترد علينا بإمكانية استعمال صيغة accdb ، والتي بها نستطيع التحكم في الوقت الفاصل بين البصمة والاخرى ، لذا سأعطيك استعلام حذف البيانات الاضافية والذي عملت عليه سابقا: . 1. الاستعلام الذي يعطيك اول قيمة (الدخول T_Min) وآخر قيمة لليوم (الخروج T_Max) ، . 2. نفس بيانات الجدول CHECKINOUT ، ولكن بإضافة حقل للتاريخ ، ولا نستخدمه مباشرة ، وانما استعلام الحذف التالي يستعمله ، . 3. استعلام الحذف : . وقوته في المعيار ليحصر لبيانات المتكررة: Between (SELECT top 1 DateAdd('s','1',[CHECKTIME]) FROM CHECKINOUT As C WHERE C.USERID= [qry_InOut].[USERID] And DateSerial(Year(C.[CHECKTIME]),Month(C.[CHECKTIME]),Day(C.[CHECKTIME]))=[qry_InOut].[D] ORDER BY [CHECKTIME]) And (SELECT TOP 1 DateAdd('s','-1',[CHECKTIME]) FROM CHECKINOUT As C WHERE C.USERID= [qry_InOut].[USERID] And DateSerial(Year(C.[CHECKTIME]),Month(C.[CHECKTIME]),Day(C.[CHECKTIME]))=[qry_InOut].[D] ORDER BY [CHECKTIME] DESC) جعفر 1356.1.att2000.accdb.zip
  2. يمكن كذلك ربط الاكسس بـ SQL Server عن طريق ODBC وتكون الجداول مربوطة بواجهة الاكسس ، وتستعمل الاكسس بطريقة عادية : . جعفر
  3. جميل 🙂 ميزة ADO انك تقدر تعمل Disconnect من الجداول وتبقى البيانات في ذاكرة كمبيوترك 🙂 الطريقة العادية عن طريق LinkChildFields تفي بالغرض ، وبدون دوخة الاكواد 😁 جعفر
  4. اخوي ابو ابراهيم 🙂 انزلت المرفق قبل ان اضع مشاركتي السابقة ، وفي الواقع كنت مستغرب ليش انك عملت جدولين ، مع اني شفت ان بياناتهم مختلفة ، ولكن وبعد تعليقك عن النظر في شفرتك ، قررت ان استورد الملف عن طريق الاكسس تلقائيا ، والذي اكتشف ان الفاصل بين الحقول هو Tab ، ولكني تفاجأت بأن المرفق عبارة عن جدولين مدمجين في ملف واحد ، او كما اسميته انت Header ثم تحته بياناته الخاصة به (مما يجعلني اعتقد بأن صاحب الموضوع لم يصدّر الجداول ، وانما قام بتصدير التقارير) ، فعليه القيت النظر على شفرتك بالتفصيل ، وكانت جدا واضحة وجدا مختصرة (وليست مختزلة فهذا تخصص اخونا @رمهان) ، كعهدنا بعملك 🙂 جعفر
  5. ولكن كيف كنت ستربط النموذجين الرئيسي والفرعي عن طريق Recordset ؟ جعفر
  6. انا اخبركم مشكلتكم ، والوسيلة التي قد استخدمها اخوي أبو إبراهيم (انظر للصورة ادناه) : اذا فتحت ملف txt مباشرة عن طريق برنامج Notepad ، فستجد بيانات غير مرتبه ، بينما اذا استعملت برنامج متخصص لقراءة نصوص البرمجة ، مثل البرنامج المجاني ++Notepad ، فسترى انه يعطيك المعلومات المطلوبة 🙂 . والسؤال هنا ، ولإثراء الموضوع ، يا ترى اي برنامج استعمل اخونا أبو إيراهيم لفك هذا الطلسم 🙂 جعفر
  7. رجاء تعطيني الخطوات بالضبط ، وباسماء الحقول ، لأني حاولت وما صار شيء !! جعفر
  8. وعليكم السلام 🙂 الـ Recordset معناه جلب البيانات من الجدول وتخزينها في الذاكرة المؤقتة Ram (وهنا يجب ان يكون كمبيوتر المستخدم فيه كمية كافية لهذه الاضافة) ، وهذا يأخذ وقتا ، ولكنه بعد ذلك يصبح سريع ، لأن جلب البيانات يكون اسرع ، بينما لو استعملت وحدة التخزين SSD ، فلن تلاحظ فرق كبير بين الطريقة العادية وطريقة Recordset ، ولتجعل الطريقتين اسرع ، يجب ان تعمل فهرسة للحقول التي فيها فرز/تصفية (ثم ضغط واصلاح) ، ولما تستعمل LinkChildFields ، فهذا الحقل يحتاج الى فهرسة (لأنه تصفية 🙂 ) . جعفر
  9. شكرا على المعلومة 🙂 جعفر
  10. السلام عليكم 🙂 نفس عمل اخوي ابوخليل ، ولكن بشكل موسع لخطوة الحذف 🙂 هذا الاستعلام فيه شيئين ، وقت الدخول T_Min (اول قيمة في تاريخ اليوم) والخروج T_Max (آخر قيمة) ، وفيه حقلين T1 , T2 اللي ممكن نعمل استعلام حذف ونستعمل الامر Between لهم فيحذفون بقية قيم اليوم : . SELECT DateSerial(Year([CHECKTIME]),Month([CHECKTIME]),Day([CHECKTIME])) AS D_mm, CHECKINOUT.USERID AS U_mm, Min(CHECKINOUT.CHECKTIME) AS T_Min, Max(CHECKINOUT.CHECKTIME) AS T_Max, Min(DateAdd("s","1",[CHECKTIME])) AS T1, Max(DateAdd("s","-1",[CHECKTIME])) AS T2 FROM CHECKINOUT GROUP BY DateSerial(Year([CHECKTIME]),Month([CHECKTIME]),Day([CHECKTIME])), CHECKINOUT.USERID ORDER BY DateSerial(Year([CHECKTIME]),Month([CHECKTIME]),Day([CHECKTIME])), CHECKINOUT.USERID; . جعفر
  11. انا ما كان قصدي اني استسلمت ، ولكن بحاجة الى اعادة التفكير في العمل 🙂
  12. وعليكم السلام 🙂 خليني اشوف لك بخور يناسب هذه المشكلة ، يمكن يفيدك 🙂 او تعطينا معلومات اكثر ، او مرفق 🙂 جعفر
  13. سؤال: اذا كنت تريد وقت الدخول ووقت الخروج فقط ، فتقدر تأخذ اول سجل وآخر سجل للمستخدم لذلك اليوم ، وخليه يبصم كثر ما يريد 🙂 جعفر
  14. هل تستطيع التحكم ، بأن تجعلها بصيغة mdb او accdb ؟ مو قصدي انك تحولها لاحقا ، وانما قصدي ان تجعل الجهاز يرسل البيانات الى صيغة accdb ؟ جعفر
  15. السلام عليكم 🙂 موضوعك سهل ، ولكن جدا محير ويدوخ !! عندك 3 نماذج (بغض النظر ان بعضهم فرعي داخل فرعي) ، وهاي مو مشكلة ، المشكلة تكمن في مربعات السرد ، لأن منها اللي يأخذ اسم المادة ، واللي يأخذ الاسم المختصر ، ثم الجدول ، اللي يحفظ هذا الحقل ، واللي يحفظ الحقل الآخر ، واذا اخذنا القيمة من النموذج صارت مشكلة ، واذا اخذناه من الجدول ، صارت مشكلة اخرى !! ثم علاقات الجداول اللي تسمح بحفظ هذا الحقل وليس ذاك !! جعفر
  16. وعليكم السلام 🙂 رجاء النظر في هذا الموضوع : جعفر
  17. ممكن تعمله بشكل تلقائي : اعمل نسخة من البرنامج ، واجعل هذه النسخة لهذه التقارير فقط ، ولنسميه Export_pdf.accdb ، اعمل ماكرو بإسم Export_pdf ، وفيه يكون امر للتقرير انه يشغل تقرير تصدير ملفات pdf ، في التقرير اعمل امر لكي يقفل البرنامج (طبعا بعد ان يحفظ قيمة Start_X في الجدول) ، الآن اعمل برنامج آخر خارجي لا علاقة له ببرنامجك اعلاه ، واعمل نموذج بفتح لما يغمل البرنامج ، اعمل حدث عند تحميل النموذج ، وخلي فيه هذا الكود: dim i as integer for i = 1 to 10 shell_n_wait "C:\Program Files\Microsoft Office\OFFICE12\MSACCESS.EXE" "C:\xx\Export_pdf_files.accdb" /x Export_pdf , vbhidden next i docmd.quit الدالة shell_n_wait موجودة في البرنامج الموجود في اول مشاركة لي ، اما الرقم 10 فهي قيمة (LstG.ListCount - 1) جعفر
  18. وعليكم السلام 🙂 ادخال البيانات يكون بهذا الترتيب ، الحقل ID في الجدول يعطي التسلسل الصحيح : . عليه ، هذه نتيجة ادخال البيانات: . ونتيجة Last صحيحة (لاحظ ان ID يحمل اكبر رقم) . مشكلتك انك عملت فرز بالتاريخ 🙂 جعفر
  19. ومثل ما قال اخوي ابوخليل ، نريد مرفق وفيه بيانات (وبيانات حقيقية ، خصوصا اللي فيها مشاكل) ، واذا البرنامج كان يستعمل mdb فلوسمحت تغيّره الى accdb ، لأن به خاصية ستفيدك 🙂 جعفر
  20. وعليكم السلام 🙂 طريقة العمل الصحيحة ان تعمل البرنامج بحجم اصغر شاشة (في اعتقادي شاشات اللابتوب هي الاصغر الآن ، اي 1366x768) . اذا كان قصدك ان يظل حجم ومكان الكائنات نفسه ولا يتغير بتغير حجم الشاشة: اختلاف التنسيق عند تكبير النموذج - قسم الأكسيس Access - أوفيسنا (officena.net) اما اذا اردت تكبير الكائنات بحسب حجم الشاشة: ملاءمة عناصر النموذج في وضع ملأ الشاشة - قسم الأكسيس Access - أوفيسنا (officena.net) جعفر
  21. في المثال اعلاه ، تم اختيار جميع الحقول ، وتم اعطاء الجميع نفس التنسيق ، بينما تستطيع اعطاء كل حقل التنسيق الذي يناسبك 🙂 جعفر
  22. عفوا ، كان المفروض اقول المشكلة في 2016 فأعلى 🙂 وهذا رابط الموضوع: Access 2016 accde "DoCmd.OutputTo acOutputReport, , - Microsoft Community فهل انزلت التحديث الذي اعطيتك رابطه؟ اذا ما بينفعك ، ما بيضرك ، فجربه 🙂 في تصوري ، الموضوع محصور في: 1. البرنامج/الكود ، وما شفنا شيء خاص في الكود اللي ممكن يكون السبب ، 2. الكمبيوتر ، نعم تقدر تستخدم وندوز 64بت واكثر من 4 جيجا رام ، بحيث يصبح للاكسس اكبر قدر من الرام (الاكسس لا يستفيد من الاوفيس 64بت) ، 3. خلل في الاكسس ، وهذا ما تمت الاشارة اليه !! الوقت مثل ما اخبرتك (اقرأ الرابط مال 8 صفحات اللي ارفقته لك ، فستجده مطابق لمشكلتك ، وحتى توقيف الوقت تم استخدامه) : اما اذا تريد تقسيم الطباعة ، فممكن تقسيمه الى: بدل For XG = 0 To LstG.ListCount - 1 For XC = 0 To LstC.ListCount - 1 For XS = 0 To LstS.ListCount - 1 استعمل For XG = Start_XG To LstG.ListCount - 1 For XC = Start_XC To LstC.ListCount - 1 For XS = Start_XS To LstS.ListCount - 1 جرب فقط في اول دوران: XG لأنها الاطول ، احفظ قيمة Start_XG في الجدول ، واعمل في نهاية الكود انه يعمل دورتين/ثلاث (هذا يعتمد على تجربتك) ، ثم يغلق البرنامج ، ثم لما تشغله من جديد كذلك يعمل دورتين/ثلاث ، ثم يغلق البرنامج ، وكل مرة Start_XG يكون فيه الرقم التالي (او اللي بعده) ، او اذا عندك اكثر من كمبيوتر ، فممكن عمل هذا بتوزيع العمل على اكثر من كمبيوتر ، وبنفس الطريقة اعلاه ، بحيث الجدول الذي تكون فيه قيمة Start_XG ، يكون مشارك في الشبكة. هل هذا الحل مثالي ، طبعا لا ، وارجع واقول ، جرب رابط التحديث قبل كل شيء 🙂 جعفر
  23. اخي احمد 🙂 الكود لا يوجد به مشكلة ، فبدأت بالبحث في الانترنت 🙂 الظاهر ان هذه المشكلة موجودة في الاكسس 2016 ، وليس لها علاقة بكمية المواد في التقرير ، وانما بالوقت: - في بعض نسخ 2016 ، من الوقت الذي تفتح فيه البرنامج ، الى تصدير آخر تقرير الى pdf ، اذا وصل الوقت الى 8 دقائق ، يقفل عندك البرنامج !! - وفي نسخة الاكسس في الاوفيس 365 ، الوقت هو 80 دقيقة !! والحل ، يا تنصب اوفيس اقل من 2016 ، او تنصب التحديث من هنا: Description of the security update for Office 2016: June 13, 2017 (microsoft.com) جعفر
×
×
  • اضف...

Important Information