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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    408

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

  1. رجاء تجرب النتيجة الان 🙂 اصبحت الدالة هكذا: Function Add_RMZ() On Error GoTo err_Add_RMZ Dim rstT As DAO.Recordset Dim rstR As DAO.Recordset Dim rstX As DAO.Recordset Set rstT = CurrentDb.OpenRecordset("Select * From TAB") Set rstR = CurrentDb.OpenRecordset("Select * From TAB_RMZ") Set rstX = CurrentDb.OpenRecordset("Select * From TAB_RMZ_X") rstT.MoveFirst Do Until rstT.EOF rstR.MoveFirst Do Until rstR.EOF 'Debug.Print 'Debug.Print rstR!RMZ, rstT!NASS 'Debug.Print "-----------------" If InStr(rstT!NASS, rstR!RMZ & " ") > 0 Or InStr(rstT!NASS, rstR!RMZ & vbCrLf) > 0 Then 'Found it 'But is it already in TAB_MRZ_X rstX.FindFirst "[MNO]=" & rstT!MNO & " And [RMZno]=" & rstR!RMZno If rstX.NoMatch Then rstX.AddNew rstX!MNO = rstT!MNO rstX!RMZno = rstR!RMZno rstX.Update End If 'rstX.NoMatch End If 'InStr rstR.MoveNext Loop 'rstR rstT.MoveNext Loop 'rstT Exit_Add_RMZ: rstT.Close: Set rstT = Nothing rstR.Close: Set rstR = Nothing rstX.Close: Set rstX = Nothing MsgBox "Done" Exit Function err_Add_RMZ: If Err.Number = 3021 Then Else MsgBox Err.Number & vbCrLf & Err.Description End If Resume Exit_Add_RMZ End Function . جعفر 1361.RMZ02.accdb.zip
  2. استعملت هذه الدالة: Function Add_RMZ() On Error GoTo err_Add_RMZ Dim rstT As DAO.Recordset Dim rstR As DAO.Recordset Dim rstX As DAO.Recordset Set rstT = CurrentDb.OpenRecordset("Select * From TAB") Set rstR = CurrentDb.OpenRecordset("Select * From TAB_RMZ") Set rstX = CurrentDb.OpenRecordset("Select * From TAB_RMZ_X") rstR.MoveFirst rstT.MoveFirst Do Until rstR.EOF Start_Here: 'Debug.Print 'Debug.Print rstR!RMZ, rstT!NASS 'Debug.Print "-----------------" If InStr(rstT!NASS, rstR!RMZ) > 0 Then 'Found it 'But is it already in TAB_MRZ_X rstX.FindFirst "[MNO]=" & rstT!MNO & " And [RMZno]=" & rstR!RMZno If rstX.NoMatch Then rstX.AddNew rstX!MNO = rstT!MNO rstX!RMZno = rstR!RMZno rstX.Update End If End If If rstR.EOF = False And rstT.EOF = False Then rstR.MoveNext ElseIf rstT.EOF Then Exit Do End If Loop If rstR.EOF = True And rstT.EOF = False Then rstR.MoveFirst rstT.MoveNext GoTo Start_Here End If Exit_Add_RMZ: rstT.Close: Set rstT = Nothing rstR.Close: Set rstR = Nothing rstX.Close: Set rstX = Nothing MsgBox "Done" Exit Function err_Add_RMZ: If Err.Number = 3021 Then Else MsgBox Err.Number & vbCrLf & Err.Description End If Resume Exit_Add_RMZ End Function . واعرف فيها ملاحظات 😁 جعفر 1361.RMZ02.accdb.zip
  3. انا فهمي بطيء بعض الاوقات 😁 رجاء اعطني مثالين اثنين ، علشان اقدر اقتدي بهم 🙂 جعفر
  4. على العموم ، هذا عملك وانت ادرى به 🙂 وشو المطلوب الآن ، هل نفس الطلب حسب السؤال ، او الحل الغريب (اللي محتاجين تفاصيله ، ومثال عليه) 🙂 جعفر
  5. وعليكم السلام 🙂 السؤال ، ما فائدة هذا العمل ؟ جعفر
  6. وهنا يأتي الابداع ، كل مبرمج يتفنن في عمله 🙂 للتجربة ، قمت بإستخدام الكود من الرابط ، ونتيجة الجدول كانت غير صحيحة/كاملة : . لذا ، فهذا الميدان يا حميدان ، تستطيع الاستفادة من ذاك الكود وتطوعه لحاجتك ، او بالتحليل تفهم ملف النص ، وتشارك في كود يعمل 🙂 جعفر
  7. وانا سأوضح قصد اخوي ابو ابراهيم ، ولكن بالنظر في الملف بطريقة اخرى ، ليست الشفرة ، وانما استيراد البيانات الى جدول مؤقت ، وباستعلامات إلحاقية 🙂 - عملت برنامج اكسس جديد ، ثم استوردت من ملف النص IAS_Out_Cs_Detail.txt ، ثم نتابع طريقة الاكسس التلقائية لإستيراد الملف الى جدول جديد tbl_tmp ، وبدون تنظيف ، - عملت نسخ لجميع بيانات الجدول والصقتها في صفحة اكسل ، حتى يكون التحليل سهل : الحقول الصفراء والبرتقالية والمربع الاحمر ، هي معلومة واحدة ، اي ان جميع هذه الحقول لسجل واحد (رجاء المتابعة لشرح هذا) ، الحقول الصفراء متكررة مرتين ، فمثل ما قال اخوي ابو ابراهيم ، ممكن جعلها في جدول مستقل ، وفي الكود اشار اليه (If row Like) ("مركز*"Then ) ، الحقول البرتقالية كذلك ممكن جعلها في جدول مستقل (ElseIf row Like) ("الحساب*" Then) ، ونلاحظ بأن الحقول ابتداءً من field16 لسنا بحاجة اليها ، لأنها موجودة في المربع الاحمر ، وهذا ما اشار اليه اخوي ابو ابراهيم لما قال: "يوجد في هذا الملف بيانات خارجة عن الصف" ، والبيانات في المربع الاحمر هي للجدول الثالث ، وهذا الجدول يجب ان يحتوي على "رقم سجل" للجدول الاول ، و "رقم سجل" للجدول الثاني : . وبهذه الطريقة ، نعمل استعلام الحاقي لبيانات كل جدول ، واستعمال المعايير المناسبة لتنظيف البيانات قبل ادخالها للجدول 🙂 طريقة العمل تكون : 1. الاكسس يعمل اول جدول تلقائيا ، ونطلب منه ان لا يستورد الحقول التي لا حاجة لنا بها ، ثم في نهاية نطلب منه حفظ طريقة الاستيراد : . 2. نعمل استعلام الحاقي لكل جدول (قد نحتاج الى 3 استعلامات او اكثر) ، وتنظيف البيانات بإستخدام المعايير المناسبة ، 3. ثم عمل كود ليقوم بعمل 1 (طبها الاستيراد سيكون من نفس اسم الملف ولن يتغير ، فلابد لنا من عمل طريقة لهذه النقطة) و 2 🙂 وطبعا كود اخوي ابو ابراهيم جاهز وانظف واسهل للفهم 🙂 جعفر
  8. وعليكم السلام 🙂 بما انك اخترت ان تكون الصورة خلفية للنموذج (وليست كائن مستقل) ، فالصورة سيتغير مكانها بحجم الشاشة اذا استعملت Center (اي انها ستكون في منتصف الشاشة دائما) : . لذا وجب عليك استعمال Top Left بحيث مكانها لا يتغير ، ومن البداية ، العب في الصورة ، واضف المساحات الفارغة التي تحتاج اليها من فوق ومن اليسار ، وعلى اساسها سيكون الزر دائما ثابت 🙂 جعفر
  9. وعليكم السلام 🙂 تحتاج ان تعمل مجلد آمن : جعفر
  10. انت ارفقت 3 ملفات ، بالاضافة الى ملفك الاصل ، فيصبحوا 4 ملفات ، فهل هذا مجموع الملفات ، او ان هناك ملفات اخرى قد تخرج في المستقبل ؟ طلبك في انشاء جدول خاص (وبعدين استعلامات ، ونماذج ، وتقارير لكل جدول) لكل ملف لا يتماشى مع نظام قواعد البيانات ، فالطريقة الصحيحة هي استخدام نفس الجداول الموجودة ، ولكن بإضافة حقل يميز كل نوع من انواع الملفات . جعفر
  11. الظاهر هذه رسالة من اعدادات امان الوندوز ، فانا لا تظهر لي هذه الرسالة لما افتح الملف من : الكمبيوتر المحلي ، من الشبكة ، من الانترنت !! جرب هذه الطريقة ActiveX WebBrowser القديمة ، وطريقتك موجودة ولكنها مخفية ، ويمكنك حذفها لاحقا. جعفر 1360.1.نسخ الملفات.accdb.zip
  12. هممم سؤال غير تقليدي ، بحثت ولم احصل على جواب ، فقمت انا بعمل التجربة : . واوقفت البرنامج لأنه تأخر في اعطائي النتائج 🙂 هل انت راض عن الحجم الى الآن 🙂 جعفر
  13. هذا كل اللي عملته: 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
  14. بما ان المرفق واضح ، ولكي تستفيد وتعرف مكان الخطأ في كودك ، رجاء ارفاق ما عملته 🙂 جعفر
  15. عفوا الاخ هاني قد تستغرب من قدرة الاساتذة في الرد على الكثير من المواضيع ، وبدون مرفق ، واذا احتاجوا اليه ، فسيطلبونه 🙂 جعفر
  16. وعليكم السلام 🙂 الجواب هنا جعفر
  17. هذا كل اللي تحتاج اليه : dim strQuery as string strQuery="Sale_Daily" DoCmd.OpenQuery strQuery جعفر
  18. حياك الله 🙂 كلامي هنا عن تكرار البصمة بدون فاصل: وبما انك لم ترد علينا بإمكانية استعمال صيغة 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
  19. يمكن كذلك ربط الاكسس بـ SQL Server عن طريق ODBC وتكون الجداول مربوطة بواجهة الاكسس ، وتستعمل الاكسس بطريقة عادية : . جعفر
  20. جميل 🙂 ميزة ADO انك تقدر تعمل Disconnect من الجداول وتبقى البيانات في ذاكرة كمبيوترك 🙂 الطريقة العادية عن طريق LinkChildFields تفي بالغرض ، وبدون دوخة الاكواد 😁 جعفر
  21. اخوي ابو ابراهيم 🙂 انزلت المرفق قبل ان اضع مشاركتي السابقة ، وفي الواقع كنت مستغرب ليش انك عملت جدولين ، مع اني شفت ان بياناتهم مختلفة ، ولكن وبعد تعليقك عن النظر في شفرتك ، قررت ان استورد الملف عن طريق الاكسس تلقائيا ، والذي اكتشف ان الفاصل بين الحقول هو Tab ، ولكني تفاجأت بأن المرفق عبارة عن جدولين مدمجين في ملف واحد ، او كما اسميته انت Header ثم تحته بياناته الخاصة به (مما يجعلني اعتقد بأن صاحب الموضوع لم يصدّر الجداول ، وانما قام بتصدير التقارير) ، فعليه القيت النظر على شفرتك بالتفصيل ، وكانت جدا واضحة وجدا مختصرة (وليست مختزلة فهذا تخصص اخونا @رمهان) ، كعهدنا بعملك 🙂 جعفر
  22. ولكن كيف كنت ستربط النموذجين الرئيسي والفرعي عن طريق Recordset ؟ جعفر
  23. انا اخبركم مشكلتكم ، والوسيلة التي قد استخدمها اخوي أبو إبراهيم (انظر للصورة ادناه) : اذا فتحت ملف txt مباشرة عن طريق برنامج Notepad ، فستجد بيانات غير مرتبه ، بينما اذا استعملت برنامج متخصص لقراءة نصوص البرمجة ، مثل البرنامج المجاني ++Notepad ، فسترى انه يعطيك المعلومات المطلوبة 🙂 . والسؤال هنا ، ولإثراء الموضوع ، يا ترى اي برنامج استعمل اخونا أبو إيراهيم لفك هذا الطلسم 🙂 جعفر
×
×
  • اضف...

Important Information