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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. تفضل 🙂 اضف النموذج الفرعي ، ثم قم بالتعديل على البيانات ، ثم انقر على زر تعديل ، وحاول تعديل البيانات. كود عدم السماح بتعديل بيانات النموذج الفرعي: Private Sub x22_Click() Me.frm.Form.AllowEdits = False End Sub 1583.Database32.accdb True يعني اسمح (بالتعديل ، او الاضافة او ... ) False يعني لا تسمح (بالتعديل ، او الاضافة او ... )
  2. عملت لك التعديل في مشاركتي السابقة 🙂
  3. وعليكم السلام 🙂 لما تحدد النموذج الفرعي بالطريقة : me.frm.SourceObject = "frm3" . تستطيع استعمال التالي للتحكم فيه: me.frm.form.AllowEdits = true 'اسمح بتغيير البيانات me.frm.form.AllowDeletions = true 'اسمح بحذف السجل me.frm.form.AllowAdditions = true 'اسمح بإضافة سجلات جديدة
  4. حيا الله اخوي ابوخليل 🙂 نعم ملاحظتي انه دمج قيمتين في حقل واحد ، معرف الطالب - والصف ، لهذا السبب اقترحت عليه ان يفصلهم ويكون لكل واحد منهم حقل مستقل ، اذا الشباب نجحوا جميعا ، فسهل تنقل الصف كله مرة واحدة ، ولكن اذا عندك راسب ، وعندك حقل ناجح/راسب ، وحقل قيمة معرف الطالب ، وحقل الصف ، فببساطة تنقلهم 🙂 بس بما ان اخوي ابوخليل توسط لك ، فاليك الحل بطريقتك : الجدول: . استعلام لتحديث جميع الصفوف ، للناجحين فقط : . والشرح: ناخذ مثلا الرقم 11-002 لا تنسى انك تتعامل مع حقل نص اول حرفين من القيمة (يبدأ باول الحقل ، ويأخذ حرفين) Mid([Class_ID],1,2) وبما ان القيمة نص ، فيجب تحويلها الى رقم Val(Mid([Class_ID],1,2)) ثم نضيف اليها واحد (للانتقال الى الصف التالي) +Val(1) بهذه الطريقة يتم تحويل الرقم 11 الى 12 وتحويل الرقم 13 الى 14 ، وهكذا ثم نريد نستخرج معرّف الطالب (يبدأ من الحرف الثالث ، ويأخذ 4 قيم) Mid([Class_ID],3,4) ولما ندمج جميع الخطوات اعلاه ، تصبح لدينا قيمة التحديث Val(Mid([Class_ID],1,2))+Val(1) & Mid([Class_ID],3,4) 1582.update_student_next_class.accdb.zip
  5. وعليكم السلام اذا البرنامج مقسم عندك الى جزئين: - جزء الجداول (الجزء الخلفي او BE) : فالمنتدى مليء بطرق اخذ النسخ الاحتياطية ، بما لذ وطاب ، فقط استخدم خاصية البحث فيه ، - جزء البرنامج (الجزء امام المستخدم او FE) : فهذا تاخذ منه نسخة واحدة فقط عند عمل تغيير به ، ولا تحتاج الى عمل نسخ اضافية اخرى منه.
  6. اخي الفاضل عبدالعزيز ، اجابتي واجابة الدكتور حسين لا تخص النموذج.
  7. اخي الفاضل ، رجاء تخبرنا وين البيانات ، فلا يوجد تقرير اسمه بيان حالة !!
  8. رجاء تخبرنا وين البيانات
  9. الظاهر من بياناتك في الصورة في او مشاركة ، الاجازة المتصلة: تاريخ بداية الاجازة = تاريخ نهاية الاجازة السابقة + 1 يوم يمكننا عمل كود ليعمل المطلوب ، ولا ارى طريقة لعمله في استعلام !! اذن نحن بحاجة الى بيانات كثيرة ومتنوعة لتحليل وعمل اللازم 🙂
  10. شو تحليلك لهذا المصطلح من واقع بياناتك ؟
  11. وعليكم السلام 🙂 اعمل استعلام تجميعي بنوع الاجازة (Group by) ، واختار الاقل (Min) للتاريخ الاعتباري ، واختار الاكبر (Max) لتاريخ نهاية الاجازة.
  12. وعليكم السلام 🙂 تفضل
  13. السلام عليكم 🙂 او عمل نموذج جدولي ، للنموذج الرئيسي والفرعي: 1579.DataSheet_Form_inside_DS_Form.accdb.zip
  14. وعليكم السلام 🙂 الطريقة الصحيحة هي ، بإعطاء الطالب رقم لا يتغير (حقل رقم الطالب) ، وحقل آخر للصف ، وكلما انتقل الطالب الى الصف التالي ، يمكنك اضافة رقم 1 الى الصف الحالي 🙂 خذها قاعدة: في قواعد البيانات ، وبما ان السرعة مطلوبة ، فإجعل لكل معلومة حقل خاص بها ، وهذا سيسهل عليك ربط الجداول بطريقة مباشرة كذلك.
  15. المنتدى به الكثير من المواضيع لجلب الوقت من الانترنت ، ولكن لم ارى موضوع لتوحيد تاريخ/وقت كمبيوترات الشبكة ، وهذا هو صلب الموضوع 🙂 قمت بإضافة شرح لسبب استخدامي لهذا الموضوع 🙂 جعفر
  16. السلام عليكم 🙂 لما يكون فيه مجموعة كمبيوترات تعمل على نفس البرنامج في الشبكة ، وتكون البيانات/الجداول سواء على السيرفر او على احد الكمبيوترات في الشبكة ، ولأنه تاريخ/وقت هذه الكمبيوترات يختلف من كمبيوتر الى آخر ، فهذا يعمل لنا اختلاف في قيمة وقت ادخال السجل ، من كبيوتر الى آخر. احد المؤسسات تشتغل على برنامج يستخدمه حوالي 6 اشخاص ، ويتم ادخال حوالي 2000 سجل يوميا ، والجدول فيه حقل رقم تلقائي ، وحقل التاريخ/الوقت وفيه قيمة افتراضية Now ، طبعا بالاضافة الى بقية الحقول. حقل الرقم التلقائي ما فيه اشكالية في تسلسل الارقام ، ولكن حقل التاريخ/الوقت لا يأخذ قيمة Now من السيرفر ، وانما يأخذه من الكمبيوتر الذي يعمل السجل ، واذا تاريخ/وقت اي من الكمبيوترات خطأ ، مما يعني انه من الصعب/المستحيل معرفة متى تم ادخال هذا السجل بوقته الصحيح مقارنة مع باقي السجلات. قد لا يشكل هذا مشكلة عند البعض ، ولكنه يشكل مشكلة ومعضله عندما تكون البيانات حساسة ومهمة ، ومعرفة من ادخل المعلومة و متى. توصلت الى الاستعانة بالدوال التالية ، واستعملها اول ما افتح البرنامج (ولمرة واحدة فقط) ، و اضع في المتغير Diff_Sec فرق التاريخ/الوقت بالثواني ، بين السيرفر والكمبيوتر ، ولما اضيف السجل اضيف قيمة هذا المتغير الى Now الكمبيوتر ، مما يعطي السجل وقت السيرفر ، وعليه تكون جميع السجلات تعمل على نفس التوقيت 🙂 اقوم بمناداة الدالة هكذا: call Get_Remote_PC_Time("\\192.168.100.88") Option Compare Database Option Explicit 'Fetch and display Net Remote Time Of Day from a 'remote Windows system. Supply a UNC hostname '(or a DNS name), or empty string for the local 'host's time and date. ' Private Const NERR_SUCCESS As Long = 0 Private Type TIME_OF_DAY_INFO tod_elapsedt As Long tod_msecs As Long tod_hours As Long tod_mins As Long tod_secs As Long tod_hunds As Long tod_timezone As Long tod_tinterval As Long tod_day As Long tod_month As Long tod_year As Long tod_weekday As Long End Type #If Win64 Or VBA7 Then Dim lngBufPtr As LongPtr Private Declare PtrSafe Function NetApiBufferFree Lib "netapi32" _ (ByVal lpBuffer As LongPtr) As Long Private Declare PtrSafe Function NetRemoteTOD Lib "netapi32" _ (UncServerName As Byte, BufferPtr As LongPtr) As Long Private Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _ (pTo As Any, uFrom As Any, ByVal lSize As LongPtr) #Else Dim lngBufPtr As Long Private Declare Function NetApiBufferFree Lib "netapi32" _ (ByVal lpBuffer As Long) As Long Private Declare Function NetRemoteTOD Lib "netapi32" _ (UncServerName As Byte, BufferPtr As Long) As Long Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _ (pTo As Any, uFrom As Any, ByVal lSize As Long) #End If ' Public Diff_Sec As Double ' Public Function GetTOD(ByVal Server As String) As Date Dim bytServer() As Byte 'Dim lngBufPtr As Long Dim todReturned As TIME_OF_DAY_INFO bytServer = Trim$(Server) & vbNullChar If NetRemoteTOD(bytServer(0), lngBufPtr) = NERR_SUCCESS Then CopyMemory todReturned, ByVal lngBufPtr, LenB(todReturned) NetApiBufferFree lngBufPtr With todReturned GetTOD = DateAdd("n", _ -.tod_timezone, _ DateSerial(.tod_year, .tod_month, .tod_day) _ + TimeSerial(.tod_hours, .tod_mins, .tod_secs)) End With Else Err.Raise vbObjectError + 2000, _ "GetTOD", _ "Failed to obtain server time" End If End Function Public Function Get_Remote_PC_Time(txtServer As String) ' ' calling it: 'Get_Remote_PC_Time("\\192.168.100.88") ' Dim dtServerTime As Date 'Dim Diff_Sec As Double On Error Resume Next dtServerTime = GetTOD(txtServer) Diff_Sec = DateDiff("s", Now, dtServerTime) Debug.Print "Diff=" & Diff_Sec Debug.Print "Server=" & dtServerTime Debug.Print "Local ok= " & DateAdd("s", Diff_Sec, Now) ' If Err.Number <> 0 Then ' Debug.Print Err.Description ' Else ' Debug.Print CStr(dtServerTime) ' End If ' On Error GoTo 0 '' txtServer.SetFocus End Function . جعفر
  17. السلام عليكم 🙂 ضع هذا الملف مع ملف الاكسل "Unmanaged.xlsx" في نفس المجلد "D:\nw" ، وإلا ، فيجب تعديل المسار في الاستعلام qry_1_Excel_File (وهذا سيأخذ وقت لفتح الاستعلام 🙂) : استخدم الزر في النموذج ، حتى تعمل جدول جديد بإسم tbl_Data وبه بيانات الاكسل جاهزة لتحويلها الى اي جدول آخر ، او استعماله مباشرة في الاكسس ، ملاحظة ، يتم حذف الجدول tbl_Data ، ويتم عمله من جديد في كل مرة ، حتى نتأكد بأننا حصلنا على جميع حقول ملف الاكسل . 1569.as_Final.accdb.zip
  18. شكرا لك اخوي خالد على التجربة واخبارنا بذلك 🙂
  19. السلام عليكم اخوي خالد 🙂 هل اصبح التقرير اسرع من برنامجك السابق ، وخصوصا لما تنتقل بين الصفحات 😁 وهل اكملت تضبيط بقية حقول التقرير ؟
  20. السلام عليكم اخي بلال هل كان هذا طلبك؟
  21. سيدي الفاضل 🙂 يا ريت تقرأ الموضوع التالي: https://www.officena.net/ib/topic/113391-لا-تستعمل-dlookup-او-dsum-واخواتها-في-استعلام-،-واليك-البديل/ انت صحيح ما استعملت الامر في الاستعلام ، ولكنك استعملته في التقرير ، فيكون الموضوع ينطبق عليه ايضا 🙂 تم حذف جميع الكود الموجود في التقرير ehsa_sub_dor_New ، وتم عمل استعلام جديد room_list_New ، كمصدر بيانات للتقرير ، يقوم بالعملية كاملا. ما استطعت تكملة حقول التقرير (تعبت 😁) ، فرجاء اكملهم مثل الحقول اللي قبلها. 1578.1.تقرير احصاء.accdb.zip
  22. الاستعلام السابق ما كان يقبل اكتب فيه المعيار ، فاعدت كتابته ، وظهرت نتائج الاستعلام حسب تحديد مربع القائمة ، فاعتقدت بأن المشكلة انحلت 🙂 وعمل جميل من الشايب 🙂
  23. شكرا اخوي عمر 🙂 بس علشان الجميع يكون معانا على نفس الموجه ، هذه جميع بيانات الجداول والنماذج من جدول MSysObjects واللي فيها البيانات المطلوبة ، واللي على اساسها قام اخوي عمر بتصفية السجلات
  24. وعليكم السلام 🙂 وهل نتيجة جمع اجمالي هذه الارقام صحيحة ؟
×
×
  • اضف...

Important Information