اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. وانا سأوضح قصد اخوي ابو ابراهيم ، ولكن بالنظر في الملف بطريقة اخرى ، ليست الشفرة ، وانما استيراد البيانات الى جدول مؤقت ، وباستعلامات إلحاقية 🙂 - عملت برنامج اكسس جديد ، ثم استوردت من ملف النص IAS_Out_Cs_Detail.txt ، ثم نتابع طريقة الاكسس التلقائية لإستيراد الملف الى جدول جديد tbl_tmp ، وبدون تنظيف ، - عملت نسخ لجميع بيانات الجدول والصقتها في صفحة اكسل ، حتى يكون التحليل سهل : الحقول الصفراء والبرتقالية والمربع الاحمر ، هي معلومة واحدة ، اي ان جميع هذه الحقول لسجل واحد (رجاء المتابعة لشرح هذا) ، الحقول الصفراء متكررة مرتين ، فمثل ما قال اخوي ابو ابراهيم ، ممكن جعلها في جدول مستقل ، وفي الكود اشار اليه (If row Like) ("مركز*"Then ) ، الحقول البرتقالية كذلك ممكن جعلها في جدول مستقل (ElseIf row Like) ("الحساب*" Then) ، ونلاحظ بأن الحقول ابتداءً من field16 لسنا بحاجة اليها ، لأنها موجودة في المربع الاحمر ، وهذا ما اشار اليه اخوي ابو ابراهيم لما قال: "يوجد في هذا الملف بيانات خارجة عن الصف" ، والبيانات في المربع الاحمر هي للجدول الثالث ، وهذا الجدول يجب ان يحتوي على "رقم سجل" للجدول الاول ، و "رقم سجل" للجدول الثاني : . وبهذه الطريقة ، نعمل استعلام الحاقي لبيانات كل جدول ، واستعمال المعايير المناسبة لتنظيف البيانات قبل ادخالها للجدول 🙂 طريقة العمل تكون : 1. الاكسس يعمل اول جدول تلقائيا ، ونطلب منه ان لا يستورد الحقول التي لا حاجة لنا بها ، ثم في نهاية نطلب منه حفظ طريقة الاستيراد : . 2. نعمل استعلام الحاقي لكل جدول (قد نحتاج الى 3 استعلامات او اكثر) ، وتنظيف البيانات بإستخدام المعايير المناسبة ، 3. ثم عمل كود ليقوم بعمل 1 (طبها الاستيراد سيكون من نفس اسم الملف ولن يتغير ، فلابد لنا من عمل طريقة لهذه النقطة) و 2 🙂 وطبعا كود اخوي ابو ابراهيم جاهز وانظف واسهل للفهم 🙂 جعفر
  2. وعليكم السلام 🙂 بما انك اخترت ان تكون الصورة خلفية للنموذج (وليست كائن مستقل) ، فالصورة سيتغير مكانها بحجم الشاشة اذا استعملت Center (اي انها ستكون في منتصف الشاشة دائما) : . لذا وجب عليك استعمال Top Left بحيث مكانها لا يتغير ، ومن البداية ، العب في الصورة ، واضف المساحات الفارغة التي تحتاج اليها من فوق ومن اليسار ، وعلى اساسها سيكون الزر دائما ثابت 🙂 جعفر
  3. وعليكم السلام 🙂 تحتاج ان تعمل مجلد آمن : جعفر
  4. انت ارفقت 3 ملفات ، بالاضافة الى ملفك الاصل ، فيصبحوا 4 ملفات ، فهل هذا مجموع الملفات ، او ان هناك ملفات اخرى قد تخرج في المستقبل ؟ طلبك في انشاء جدول خاص (وبعدين استعلامات ، ونماذج ، وتقارير لكل جدول) لكل ملف لا يتماشى مع نظام قواعد البيانات ، فالطريقة الصحيحة هي استخدام نفس الجداول الموجودة ، ولكن بإضافة حقل يميز كل نوع من انواع الملفات . جعفر
  5. الظاهر هذه رسالة من اعدادات امان الوندوز ، فانا لا تظهر لي هذه الرسالة لما افتح الملف من : الكمبيوتر المحلي ، من الشبكة ، من الانترنت !! جرب هذه الطريقة ActiveX WebBrowser القديمة ، وطريقتك موجودة ولكنها مخفية ، ويمكنك حذفها لاحقا. جعفر 1360.1.نسخ الملفات.accdb.zip
  6. هممم سؤال غير تقليدي ، بحثت ولم احصل على جواب ، فقمت انا بعمل التجربة : . واوقفت البرنامج لأنه تأخر في اعطائي النتائج 🙂 هل انت راض عن الحجم الى الآن 🙂 جعفر
  7. هذا كل اللي عملته: Option Compare Database Dim web As Object ' Private Sub Form_Current() If Len(Me.txtPath & "") = 0 Then web.Navigate "about:blank" Else web.Navigate Me.txtPath End If End Sub Private Sub Form_Open(Cancel As Integer) Set web = Me.WebBrowser28.Object End Sub جعفر 1360.نسخ الملفات.accdb.zip
  8. بما ان المرفق واضح ، ولكي تستفيد وتعرف مكان الخطأ في كودك ، رجاء ارفاق ما عملته 🙂 جعفر
  9. عفوا الاخ هاني قد تستغرب من قدرة الاساتذة في الرد على الكثير من المواضيع ، وبدون مرفق ، واذا احتاجوا اليه ، فسيطلبونه 🙂 جعفر
  10. وعليكم السلام 🙂 الجواب هنا جعفر
  11. هذا كل اللي تحتاج اليه : dim strQuery as string strQuery="Sale_Daily" DoCmd.OpenQuery strQuery جعفر
  12. حياك الله 🙂 كلامي هنا عن تكرار البصمة بدون فاصل: وبما انك لم ترد علينا بإمكانية استعمال صيغة 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
  13. يمكن كذلك ربط الاكسس بـ SQL Server عن طريق ODBC وتكون الجداول مربوطة بواجهة الاكسس ، وتستعمل الاكسس بطريقة عادية : . جعفر
  14. جميل 🙂 ميزة ADO انك تقدر تعمل Disconnect من الجداول وتبقى البيانات في ذاكرة كمبيوترك 🙂 الطريقة العادية عن طريق LinkChildFields تفي بالغرض ، وبدون دوخة الاكواد 😁 جعفر
  15. اخوي ابو ابراهيم 🙂 انزلت المرفق قبل ان اضع مشاركتي السابقة ، وفي الواقع كنت مستغرب ليش انك عملت جدولين ، مع اني شفت ان بياناتهم مختلفة ، ولكن وبعد تعليقك عن النظر في شفرتك ، قررت ان استورد الملف عن طريق الاكسس تلقائيا ، والذي اكتشف ان الفاصل بين الحقول هو Tab ، ولكني تفاجأت بأن المرفق عبارة عن جدولين مدمجين في ملف واحد ، او كما اسميته انت Header ثم تحته بياناته الخاصة به (مما يجعلني اعتقد بأن صاحب الموضوع لم يصدّر الجداول ، وانما قام بتصدير التقارير) ، فعليه القيت النظر على شفرتك بالتفصيل ، وكانت جدا واضحة وجدا مختصرة (وليست مختزلة فهذا تخصص اخونا @رمهان) ، كعهدنا بعملك 🙂 جعفر
  16. ولكن كيف كنت ستربط النموذجين الرئيسي والفرعي عن طريق Recordset ؟ جعفر
  17. انا اخبركم مشكلتكم ، والوسيلة التي قد استخدمها اخوي أبو إبراهيم (انظر للصورة ادناه) : اذا فتحت ملف txt مباشرة عن طريق برنامج Notepad ، فستجد بيانات غير مرتبه ، بينما اذا استعملت برنامج متخصص لقراءة نصوص البرمجة ، مثل البرنامج المجاني ++Notepad ، فسترى انه يعطيك المعلومات المطلوبة 🙂 . والسؤال هنا ، ولإثراء الموضوع ، يا ترى اي برنامج استعمل اخونا أبو إيراهيم لفك هذا الطلسم 🙂 جعفر
  18. رجاء تعطيني الخطوات بالضبط ، وباسماء الحقول ، لأني حاولت وما صار شيء !! جعفر
  19. وعليكم السلام 🙂 الـ Recordset معناه جلب البيانات من الجدول وتخزينها في الذاكرة المؤقتة Ram (وهنا يجب ان يكون كمبيوتر المستخدم فيه كمية كافية لهذه الاضافة) ، وهذا يأخذ وقتا ، ولكنه بعد ذلك يصبح سريع ، لأن جلب البيانات يكون اسرع ، بينما لو استعملت وحدة التخزين SSD ، فلن تلاحظ فرق كبير بين الطريقة العادية وطريقة Recordset ، ولتجعل الطريقتين اسرع ، يجب ان تعمل فهرسة للحقول التي فيها فرز/تصفية (ثم ضغط واصلاح) ، ولما تستعمل LinkChildFields ، فهذا الحقل يحتاج الى فهرسة (لأنه تصفية 🙂 ) . جعفر
  20. شكرا على المعلومة 🙂 جعفر
  21. السلام عليكم 🙂 نفس عمل اخوي ابوخليل ، ولكن بشكل موسع لخطوة الحذف 🙂 هذا الاستعلام فيه شيئين ، وقت الدخول 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; . جعفر
  22. انا ما كان قصدي اني استسلمت ، ولكن بحاجة الى اعادة التفكير في العمل 🙂
  23. وعليكم السلام 🙂 خليني اشوف لك بخور يناسب هذه المشكلة ، يمكن يفيدك 🙂 او تعطينا معلومات اكثر ، او مرفق 🙂 جعفر
×
×
  • اضف...

Important Information